0

私は実際にdotnet開発者であり、eclipse androidとphonegapを使用してモバイルアプリケーションの開発を開始しています.docs.phonegap.comでこれらを研究しました.例、つまりカメラデバイスと加速度計に問題はありません. データベースへの接続に成功しました。私の質問は、テーブルの作成で自動インクリメントを適用し、データベースから取得 (最大 ID +1) する方法です。指定されたコードが機能していません
。私のコードは
Javascript コードです#

     function onDeviceReady() {
            var db = window.openDatabase('dbNexTrainer','1.0', 'NexTrainer',2 * 1024 * 1024);
            db.transaction(populateDB, errorCB, successCB);
        }
function populateDB(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS tbl_Excercise  (ExId INTEGER PRIMARY KEY AUTOINCREMENT ,ExName ,ExDescription ,ExPreCondition ,ExImage ,IsActive INTEGER,AddDate DATE)');
tx.executeSql('Delete from tbl_Excercise');
tx.executeSql('INSERT INTO tbl_Excercise  VALUES (1,"Excercise 1","Description 1","Pre Condition 1","image/image1.png",1,"12/09/2012 01:00:00")');
tx.executeSql('INSERT INTO tbl_Excercise  VALUES (2,"Excercise 2","Description 2","Pre Condition 2","image/image2.jpg",1,"12/09/2012 01:00:00")');
tx.executeSql('INSERT INTO tbl_Excercise  VALUES (3,"Excercise 3","Description 3","Pre Condition 3","image/image3.jpg",1,"12/09/2012 01:00:00")');
tx.executeSql('INSERT INTO tbl_Excercise  VALUES (4,"Excercise 4","Description 4","Pre Condition 4","image/image4.jpg",1,"12/09/2012 01:00:00")');


2番目の問題最大ID
Javascriptコードを取得する方法

   function NewExcercise(){
     var db = window.openDatabase('dbNexTrainer','1.0', 'NexTrainer',2 * 1024 * 1024);
          db.transaction(GetNewExId, errorCB);    
    }
var  GetNewExId=function(tx) 
       {
           var db = window.openDatabase('dbNexTrainer','1.0', 'NexTrainer',2 * 1024 * 1024);
          var sql = "SELECT MAX(ExId)+1 as ExId FROM tbl_Excercise";
           tx.executeSql(sql, [], ReturnNewId, errorCB); 
           return  window.localStorage.getItem('NewExId') 
      }

      var  ReturnNewId  = function(transaction, results) {
   try{       
         var row = results.rows.item(i);          
         window.localStorage.setItem('NewExId', row['ExId']);            
    }
    catch(e){
    alert(e);
    }
    }
4

1 に答える 1

1

CREATE TABLE 構文にエラーがあります。すべてのテーブル フィールドのデータ型を定義する必要があります。

このステートメントを試してください。

tx.executeSql('CREATE TABLE IF NOT EXISTS tbl_Excercise  (ExId INTEGER PRIMARY KEY AUTOINCREMENT ,ExName TEXT ,ExDescription TEXT ,ExPreCondition TEXT ,ExImage BLOB ,IsActive INTEGER,AddDate DATE)');
于 2012-09-13T13:08:49.573 に答える