2012-09-28 77 views
2

我需要一些幫助開發與預填充數據庫的桌面應用程序。我已經嘗試了很多方法來實現這一目標,包括Tidesdk的API http://tidesdk.multipart.net/docs/user-dev/generated/#!/api/Ti.Database.DB和Titanium Desktops的舊API API http://developer.appcelerator.com/apidoc/desktop/latest/Titanium.Database-module如何使用預先填充的數據庫與tidesdk /鈦桌面

而後來(使用鈦鈦不)創建的應用程序目錄,並不安裝我這是位於我的應用程序的資源文件預填充的SQLite數據庫數據庫工作。

下方

var db = Titanium.Database.openFile('test_db.sqlite', 'test_db'); 

var db = Titanium.Database.openFile(Ti.Filesystem.getFile(
          Ti.Filesystem.getApplicationDataDirectory(), 'test_db.sqlite')); 

var db = Ti.Database.open('test_db'); 

如前所述大多數的這些一對夫婦我嘗試管理創建具有給定名稱的數據庫,但試圖運行作爲db.execute簡單的事情時(SELECT)的東西我知道我的預填充將存在分貝,我收到一個錯誤,說明

Exception executing: SELECT name, id FROM people ORDER BY name COLLATE NOCASE, Error was: SQL Statement invalid or database missing 

我已搜查高和低的東西來回答這個問題,但大家繼續參考前述的API或移動API的Ti.database .install()不起作用呃。

鈦桌面可以使用預先填充的sqlite數據庫嗎?或者我創建它後必須填充它嗎?如果有的話,任何方向都會有幫助(在應用程序中放置.sqlite文件的位置以及要調用的函數)。

我目前使用鈦工作室的1.2.0.RC4鈦桌面OSX SDK通過tidesdk.org的要求,直到他們已經發布了有開源SDK。

在此先感謝

回答

0

這是可能的,我只是用這個功能在最近的桌面應用程序,部署它成功地在Windows和Mac。

根據我的經驗,有時您的數據庫文件可能會損壞,例如,如果您使用Titanium.Database.install命令,並且無法找到要預加載的文件(可能是您第一次指定路徑錯誤),它會創建文件本身,任何後續的安裝命令將不起作用,因爲它已經認爲已經安裝了該數據庫。

您是否嘗試清除應用程序數據?這是鈦安裝數據庫的地方。對於Mac,這是在您的/User/Library/Application Support/APPNAME目錄中。他們是數據庫的目錄,刪除它並重試。

而且,這個答案就Titanium Q&A可能會有幫助,它談論的過程中與移動SDK,但數據庫的東西是一樣的。

希望這會有所幫助!

+0

感謝您的回答約西亞我會在這裏給它一點點了一槍 – Niccs1286

+0

我已經無法使用'Titanium.Database.install'。當我嘗試使用它時,它正在打破我的JavaScript。我也清除了我的所有應用程序數據。即使當我清除信息並通過代碼動態添加並填充數據庫時恢復爲「Titanium.Database.openFile」,我也能夠檢索信息。你能想到的任何其他事情可能會有幫助嗎?這些數據庫是否位於我的計算機上的其他位置,我可以繼續提供這些信息?再次感謝 – Niccs1286

+0

檢查這個文件夾(如果你在Mac上,不知道它在Windows上是什麼)'Users/YOURUSERNAME/Library/Application Support/Titanium/appdata/com.company.project.desktop /' –

相關問題