2

現在、Phonegap 2.0を使用しており、アプリでSQLトランザクションを実行しています。アプリが起動すると、次のコードがあります(特定のプログラマーの後ろを保護するために編集されています)

document.addEventListener("deviceready", onDeviceReady, false);
var db;
function onDeviceReady() {
   db = window.openDatabase('gophersspots','1.0','Gophers Spots',200000);
   db.transaction(function(tx){
      tx.executeSql('CREATE TABLE IF NOT EXISTS search_history (searchval_what VARCHAR (500), searchval_where VARCHAR (500), date TIMESTAMP DEFAULT CURRENT_TIMESTAMP)');
   };
};

そして、私のページの1つのpagebeforechangeコードに、次のトランザクションがあります。

db.transaction(function(tx){

tx.executeSql('SELECT * FROM gophers_search_history ORDER BY date DESC', [], function(tx,results){
          //Do some code here....let's call is Success A.



},function(err){
        alert("Error processing get search SQL: "+err);
        console.log(err.code);
        console.log(err.message);
    },function(){
        //alert("Database SQL query successful!");
    })

これが奇妙なことです。このクエリを実行すると、エラーメッセージが表示されます。私が取得しているコードは0であり、メッセージはステートメントコールバックが例外を発生させたか、ステートメントエラーコールバックがfalseを返さなかったというものです

しかし、成功関数も実行されます!成功関数Aが実行され、結果が得られ、すべてが正常に機能します。私は何かが足りないのですか?

これが適切かどうかはわかりませんが、最近、Phonegap /Cordova1.7.0から2.0.0に移行しました。構文に変更があったかどうかを確認するためにドキュメントをまだチェックしていません。これが次のステップになります。ここの誰かが同様に問題を抱えているかどうかを確認したいだけですか?

私のためにこれを解決する人が不思議なことにビール工場と生涯ストリップクラブの会員資格を継承しますように。アーメン。

4

1 に答える 1

0

なんとか修正できました!結局のところ、SQLの問題ではなかったことがわかりました。代わりに、listviewプラグインの呼び出しが早すぎました(これは、上記のコードのSuccess関数Aの一部でした)。

于 2012-08-10T03:58:02.010 に答える