2013-10-10 24 views
5

Tôi đang sử dụng cơ sở dữ liệu với Phonegap. Tôi cần biết cơ sở dữ liệu đã được tạo chưa. Tôi đang cố gắng tránh toàn bộ việc tạo bảng và chèn các hàng chức năng nếu db đã tồn tại.Phonegap - nhận nếu cơ sở dữ liệu đã tồn tại

var db = window.openDatabase ("Database", "1.0", "FiltersResults", 50000000);

Điều này mở/tạo db của tôi, ok, nhưng làm cách nào để biết liệu cơ sở dữ liệu này đã tồn tại chưa?

Trả lời

-1

Kiểm tra tài liệu: http://docs.phonegap.com/en/3.0.0/cordova_storage_storage.md.html#Storage

function populateDB(tx) { 
    tx.executeSql('DROP TABLE IF EXISTS DEMO'); 
    tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)'); 
    tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")'); 
    tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")'); 
} 

function errorCB(err) { 
    alert("Error processing SQL: "+err.code); 
} 

function successCB() { 
    alert("success!"); 
} 

var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000); 
db.transaction(populateDB, errorCB, successCB); 
+0

Tôi đã làm, nhưng tôi cần biết là nếu DATABASE tồn tại, không phải bảng. Nếu cơ sở dữ liệu đã tồn tại, điều đó có nghĩa là khối mã đã chạy như vậy, tại sao lại làm như vậy? –

+1

Bạn mở cơ sở dữ liệu một lần trên mỗi lần tải trang, sau đó điều khiển nó. Bạn không cần phải chạy window.openDatabase nhiều hơn một lần cho mỗi trang, phải không? Vì vậy, không cần kiểm tra xem nó có tồn tại hay không. –

+2

@SamThompson: nếu tôi truy cập một trang khác và quay lại trang đó hoặc giết ứng dụng và chạy lại, thì làm cách nào để truy xuất cơ sở dữ liệu đã được tạo. Đó là câu hỏi. –

0

Các var db = window.openDatabase("myDB", "1.0", "FiltersResults", 50000000); kiểm tra nếu bạn có một cơ sở dữ liệu được gọi là myDB nếu nó tồn tại nó sẽ mở ra nó. Nếu không, nó tạo ra một và mở nó. Vì vậy, nếu bạn đang nhìn thấy nó tạo ra nhiều cơ sở dữ liệu, dưới đây có thể có hai lý do tôi có thể nghĩ đến

  • Bạn có thêm rằng một cửa sổ chạy url đó, chỉ cần Thoát khỏi trình duyệt hoàn toàn và mở một góa phụ với URL
  • là một lỗi liên quan đến giao diện người dùng biết được giới thiệu trong Safari 5.1.2, được khắc phục trong các phiên bản sau.
Các vấn đề liên quan