2013-05-15 5 views
5

私はオフラインアプリケーションをiPhoneにデプロイし始めますが、まだまだ開発が進んでいます。 は私が私のクエリのための単純なエラーハンドラがあります。私は自分自身にアプリケーションをテストし、エラーを取得するとWeb Sqlエラーのコンテキストを取得するには?

db.transaction(tx) { 
    tx.executeSql("SELECT * FROM TABLE",[], successHandler, errorHandler); 
}); 
function errorHandler(transaction, error) { 
    alert("Error : " + error.message); 
} 

を、私は、クエリがエラーを生成したものを見つけるために管理します。しかし、それは私のユーザー(遠方のユーザー、もちろん)、エラーメッセージが特定ではないので、非常に困難です。

sqlクエリやコメントパラメータなど、エラーメッセージにコンテキスト情報を追加する方法はありますか?

答えて

12

あなたはこのようなパターンを使用することができます。

db.transaction(tx) { 
    doQuery(tx, "SELECT * FROM TABLE",[],theSuccessHandler) 
    }); 

    function doQuery(tx, query, values, successHandler) { 
    tx.executeSql(query, values, successHandler, errorHandler); 
    function errorHandler(transaction, error) { 
     alert("Error : " + error.message + " in " + query); 
    } 
    } 
0
私はクエリパラメータと無料のコンテキスト文字列を追加するにはMyrne答えehanced

:これは、この種のエラーが返されます

function doQuery(tx, query, values, successHandler, context) 
{ 
    tx.executeSql(query, values, successHandler, errorHandler); 
    function errorHandler(transaction, error) 
    { 
     var text_context = context != undefined && context != "" ? "(" + context + ") " : ""; 
     alert("Error "+text_context+": " + error.message + " in " + query + " (params : "+values.join(", ")+")"); 
    } 
} 

エラー(関数update_commande):UPDATEテーブルのSET文で文を準備できませんでした(このような列は1つもありません)。field2 =?、field3 =? WHERE field1 =? (params:1.63,1449,606)

関連する問題