0

SQLite データベースの操作を少し簡単にする小さなプラグインを作成しようとしています。データベースからデータを選択することを除いて、基本的な CRUD 機能があります。

選択したデータを executeSql 関数から返したいのですが、データを返すだけでなく、別のメソッドを呼び出すことしかできないようです。

だから私がやりたいことは次のとおりです。

var data = $(window).dbPlugin( 'select', '*', 'tableName', 'conditions' );

次に、「データ」変数をクエリからの SQLResultSet として使用したいと思います。ただし、トランザクションでは、結果を返すだけでなく、データ ハンドラー メソッドを呼び出すことしかできないようです。

testDB.transaction(  
    function ( transaction ) {  
        transaction.executeSql( sql, [], dataHandler, errorHandler);  
    }  
);

function dataHandler( transaction, results ) {
    // Now I can work with the "results" as the SQLResultSet
}

選択したデータを返す方法、またはそれが可能かどうかのアイデアはありますか?

4

1 に答える 1

0

SQLlite は非同期であり、それを回避する方法はありません。コールバックとして呼び出したい関数を .dbPlugin メソッドに渡すことができます。After 条件は、クエリの実行後に呼び出される関数である別の値を渡します。次に、コールバック関数にデータを設定します。

それはかなり面倒です、私は最近、あなたが私の最後のプロジェクトに書いているようなものを書きました. 私は、blockUI と呼ばれる jQuery プラグインを使用しました。これは、SQL 呼び出し中にインターフェイスを本質的にブロックし、もう少し「同期的」に見えるようにしました。

幸運を。

于 2010-11-14T02:08:33.890 に答える