2017-11-23 9 views
0

私は既に使用中で使用中のアンドロイドアプリ(コードワで作成)を持っています。デバイスデータベースにはいくつかのデータが格納されています。私は、データベース内のテーブルの1つに追加の列を必要とする更新を行う必要があります。私は、アプリケーションのストレージをクリアする必要なく新しい列を追加したいので、そのテーブルに依存する他の関数を実行する前に新しい列を追加しようとする関数を作成しました。ここにその変更コードのコードがあります。websqlを使用して既存のテーブルに新しい列を追加する方法

var alterEntryTable = function() 
{ 
    qObj = $q.defer(); 

    dbService.db.transaction(function(tx) { 

     tx.executeSql(
      'ALTER TABLE entry ADD created_at TIMESTAMP ', 
      [], 
      function (tx, rss) { 
       qObj.resolve({error: false}); 
      }, function (tx, rss) { 
       qObj.resolve({ error: true}); 
      } 
     ); 
    }); 

    return qObj.promise; 
}; 

問題は常にエラーを返すことです。誰か助けてください。ありがとう

+1

エラーメッセージを投稿してください。 – lin

+0

これは単にsqlErrorオブジェクトを与えます。私はコンソールに表示するオブジェクトの内部の詳細にアクセスする方法を知らない。 –

答えて

0

エラーハンドラの2番目のパラメータはSQLErrorオブジェクトです。メッセージプロパティを記録して、エラーの詳細を取得することができます。

function (tx, rss) { 
    console.log(rss.message); 
    qObj.resolve({ error: true}); 
} 

エラーメッセージはまったく役に立ちましたか?あなたのSQLにはCOLUMNが足りないと思います。 ALTER TABLE entry ADD COLUMN created_at TIMESTAMPである必要があります。

timestampdatatype in SQLiteではありませんが、それを維持することは無害です。

+0

他のデータ型を使用しても同じ問題が発生します –

+0

エラーは何を意味しますか?私はそれを記録する方法の詳細を追加しました – connor

関連する問題