Announcement

Collapse
No announcement yet.

[SQLite Android] Khởi tạo dữ liệu ban đầu khi tạo table

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Originally posted by 08520166 View Post
    Cách này mình chưa hiểu lắm. Bỏ vào Project rồi thì khi project build thành file .apk csdl cũng nằm trong đó luôn. như vậy mình thay đổi trên csdl thì thay đổi file .apk à? :confuse:
    Bỏ vào project đơn thuần thì đâu có chạy được, vẫn phải thực hiện copy file đó vào /data/data/_package_name_/databases/ mới chạy được, khi app được cài đặt và thực thi, nó tương tác với cơ sở dữ liệu đã được copy vào.

    Comment


    • #17
      Originally posted by 08520166 View Post
      Cách này mình chưa hiểu lắm. Bỏ vào Project rồi thì khi project build thành file .apk csdl cũng nằm trong đó luôn. như vậy mình thay đổi trên csdl thì thay đổi file .apk à? :confuse:
      Việc tạo 1 file cơ sở dữ liệu bên ngoài, rồi bỏ vào project thì mình ko ko rõ.
      Chỉ biết thường ng ta sùng SQLite là việc tạo data ngay khi chương trình thực thi và được lưu trong thư mục root/data/data/APP_NAME/database mà thôi.
      Sẵn đây chia sẽ mọi người 1 add-on của firefox giúp mình thao tác với SQLite hoàn toàn miễn phí luôn

      Comment


      • #18
        Originally posted by 08520091 View Post
        Bỏ vào project đơn thuần thì đâu có chạy được, vẫn phải thực hiện copy file đó vào /data/data/_package_name_/databases/ mới chạy được, khi app được cài đặt và thực thi, nó tương tác với cơ sở dữ liệu đã được copy vào.
        mấy bữa nay đón pm yahoo hỏi xíu mà ko thấy hehe

        Comment


        • #19
          Originally posted by 08520472 View Post
          Thực ra mình muốn khi database và table được tạo thì nó sẽ tạo luôn cái record đó, vì database và table chỉ tạo 1 lần --> record đó cũng tạo 1 lần đó luôn. Nếu dùng 1 lệnh insert thì mỗi khi chương trình chạy, thì nó cứ insert vào insert vào.
          Mình đã có giải pháp khác
          Thanks mọi người nhé
          Tìm được giải pháp khác rồi thì chia sẻ lên cho mọi người cùng biết chứ bạn Vũ! Vậy mọi người mới cùng biết thêm được!

          Comment


          • #20
            Originally posted by 08520091 View Post
            Tìm được giải pháp khác rồi thì chia sẻ lên cho mọi người cùng biết chứ bạn Vũ! Vậy mọi người mới cùng biết thêm được!
            À, Sorry, laster: thực ra cũng chẳng hay ho gì, nhưng cũng giải quyết được, đó là insert vào record đầu tiên với ID là 1, và sẽ giữ record này, sau này sẽ thực hiện update record này. Các lần vào ứng dụng sau, nên như có insert thêm record thì sẽ gọi hàm delete các record có ID>1.
            Mục đích của mình là xem lần vào ứng dụng có phải là lần đầu tiên hay ko. ==" :surrender:
            Tất nhiên có cách khác :salute:

            Comment


            • #21
              Originally posted by 08520472 View Post
              Bạn có link tài liệu về phần này ko? Cho mình tham khảo với
              Nếu dùng 1 database ngoài thì lớp nào giao tiếp với nó vậy bạn? Ví như SQLite thì có lớp SQLiteOpenHelper đó.
              Việc dùng 1 CSDL bên ngoài đâu có sự khác biệt gì nhiều so với tạo trong ứng dụng đâu.
              Khi bạn tạo 1 CSDL trong code thì nó sẽ tạo một database trong thư mục mặc định của nó và kết nối đến CSDL trong thư mục này, còn khi bạn muốn kết nối đến 1 CSDL bên ngoài thì bạn có thể copy file CSDL đó vào thư mục trong ứng dụng ( cho luôn vào assests luôn), và kết đến CSDL trong thư mục này. còn kết nối như thế nào bạn có thể tham khảo link dưới: hi,

              Tham khảo:
              ----------------------------------------------------------------------------
              Onemp Music Player : Light and powerful android music player

              My APK : APK Extractor and MORE with friendly UI

              Comment


              • #22
                Originally posted by 08520472 View Post
                À, Sorry, laster: thực ra cũng chẳng hay ho gì, nhưng cũng giải quyết được, đó là insert vào record đầu tiên với ID là 1, và sẽ giữ record này, sau này sẽ thực hiện update record này. Các lần vào ứng dụng sau, nên như có insert thêm record thì sẽ gọi hàm delete các record có ID>1.
                Mục đích của mình là xem lần vào ứng dụng có phải là lần đầu tiên hay ko. ==" :surrender:
                Tất nhiên có cách khác :salute:
                Ủa, mà khúc này làm vậy không được hả Vũ?
                // Creating Tables
                @Override
                public void onCreate(SQLiteDatabase db) {
                String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_FLAG + "("
                + KEY_FLAG + " TEXT DEFAULT \'unactive\'" + ")";
                db.execSQL(CREATE_CONTACTS_TABLE);

                String INS_NEW = "INSERT INTO .... ";
                db.execSQL(CREATE_CONTACTS_TABLE);
                }

                Comment


                • #23
                  Originally posted by 08520091 View Post
                  Ủa, mà khúc này làm vậy không được hả Vũ?
                  đấy đấy, làm như vậy có gì đâu mà không được nhỉ?

                  Originally posted by 08520472 View Post
                  Thực ra mình muốn khi database và table được tạo thì nó sẽ tạo luôn cái record đó, vì database và table chỉ tạo 1 lần --> record đó cũng tạo 1 lần đó luôn. Nếu dùng 1 lệnh insert thì mỗi khi chương trình chạy, thì nó cứ insert vào insert vào.
                  Mình đã có giải pháp khác
                  Thanks mọi người nhé
                  ^ trên kia đọc chả hiểu gì

                  Comment


                  • #24
                    Originally posted by 10520314 View Post
                    Việc dùng 1 CSDL bên ngoài đâu có sự khác biệt gì nhiều so với tạo trong ứng dụng đâu.
                    Khi bạn tạo 1 CSDL trong code thì nó sẽ tạo một database trong thư mục mặc định của nó và kết nối đến CSDL trong thư mục này, còn khi bạn muốn kết nối đến 1 CSDL bên ngoài thì bạn có thể copy file CSDL đó vào thư mục trong ứng dụng ( cho luôn vào assests luôn), và kết đến CSDL trong thư mục này. còn kết nối như thế nào bạn có thể tham khảo link dưới: hi,

                    Tham khảo:
                    http://www.reigndesign.com/blog/usin...-applications/
                    Để mình ngâm cứu cái này :salute:

                    Originally posted by 08520091 View Post
                    Ủa, mà khúc này làm vậy không được hả Vũ?
                    Hôm qua có thử ý này, nhưng dùng lệnh insert của SQLiteOpenHelper, dùng sai nên ko ra, thử lại cách cổ điển INSERT INTO thì được rồi :beatbrick:
                    :surrender:

                    Comment


                    • #25
                      Originally posted by 08520472 View Post
                      Để mình ngâm cứu cái này :salute:


                      Hôm qua có thử ý này, nhưng dùng lệnh insert của SQLiteOpenHelper, dùng sai nên ko ra, thử lại cách cổ điển INSERT INTO thì được rồi :beatbrick:
                      :surrender:
                      Âu da, khúc đó không dùng được db.insert() là đúng rồi, còn tại sao thì bạn Vũ tự tìm hiểu đê, hehe!:funny:

                      Comment

                      LHQC

                      Collapse
                      Working...
                      X