2

事前入力されたデータベースを使用してデスクトップ アプリケーションを開発する際に助けが必要です。Tidesdk の API ( http://tidesdk.multipart.net/docs/user-dev/generated/#!/api/Ti.Database.DB ) と Titanium Desktops oldの両方で言及されている方法を含め、これを機能させるためにさまざまな方法を試しました。ここの API http://developer.appcelerator.com/apidoc/desktop/latest/Titanium.Database-module

後者(TiではなくTitaniumを使用)はappsディレクトリにデータベースを作成する際に機能しますが、アプリのリソースファイルにある事前設定された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() を参照し続けていますが、どちらも機能しません。

Titan デスクトップで事前に入力された sqlite データベースを使用することは可能ですか、それとも作成後にデータを入力する必要がありますか? もしそうなら、どんな指示も役に立ちます(.sqliteファイルをアプリに配置する場所と呼び出す関数)。

私は現在、tidsdk.org から要求された 1.2.0.RC4 のチタン デスクトップ osx SDK で、オープン ソース SDK がリリースされるまで、Titanium Studio を使用しています。

前もって感謝します

4

1 に答える 1

0

これは可能です。最近のデスクトップ アプリでこの機能を使用し、Windows と Mac に正常に展開しました。

私の経験では、データベース ファイルが破損している場合があります。たとえば、Titanium.Database.installコマンドを使用し、プリロードするファイルが見つからない場合 (たとえば、最初にパスを間違って指定した場合など)、ファイル自体が作成されます。以降のインストール コマンドは、このデータベースが既にインストールされていると認識しているため、機能しません。

アプリケーションデータを消去してみましたか? これは、titanium がデータベースをインストールする場所です。Mac の場合、これは/User/Library/Application Support/APPNAMEディレクトリにあります。それらはデータベースのディレクトリです。これを削除して、もう一度やり直してください。

また、Titanium Q&Aに関するこの回答が役立つ場合があります。Mobile SDK のプロセスについて説明していますが、データベースの内容は同じです。

お役に立てれば!

于 2012-09-28T23:35:58.787 に答える