5

iPhone にオフライン アプリケーションを展開し始めましたが、まだ開発中です。クエリ用の単純なエラー ハンドラーがあります。

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

アプリケーションを自分でテストしてエラーが発生すると、エラーを生成したクエリが何であったかを見つけることができます。しかし、それが私のユーザー (もちろん遠く離れたユーザー) の場合は、エラー メッセージが特定されていないため、非常に困難です。

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

4

2 に答える 2

1

Myrne の回答を拡張して、クエリ パラメータとフリー コンテキスト文字列を追加しました。

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 テーブルでステートメントを準備できませんでした (1 そのような列はありません: field3) SET field2 = ?, field3 = ? WHERE フィールド 1 = ? (パラメーター: 1.63、1449、606)

于 2016-05-10T12:47:38.710 に答える