2011-07-11 13 views
11

私はAndroid、iOS、およびBlackBerry用のクロスプラットフォームアプリを実装しています。 PhoneGapを使って各プラットフォームのネイティブ言語バージョンを作成しています。 SQLiteデータベースを作成、アクセス、検索する方法を知りたい。PhonegapでSQLiteデータベースを実装するには?

私は、Javascriptファイルを使用して作成することができるドキュメントを読みましたが、そのファイルの配置先とコード内の参照方法を知りたいと思います。

答えて

13

は見てみましょうLawnchair(http://brian.io/lawnchair/)は、その使い方が簡単で、あなたが必要としているもののほとんどを(おそらく検索しています)、それはクロスブラウザ、バトルtアダプターの使用によってうまく劣化します。 Blackberry用のアダプタと、クエリをサポートするプラグインがあります。以下は、AndroidとiPhoneに適したwebkitアダプタを使用した簡単な例です。

<script type="text/javascript" src="Lawnchair.js" charset="utf-8"></script> 
<script type="text/javascript" src="webkit-sqlite.js" charset="utf-8"></script> 

// Open local DB connection 
var lawnchair = new Lawnchair({table:'mytable', adaptor:'webkit'}, function(){ 
    // Lawnchair setup! 
}); 

// Getting some data out of the lawnchair database 
lawnchair.get('my_data_key', function(obj) { 
    if (obj !== undefined) { 
     lastSyncDate = obj.lastSync; 
     dataList = obj.dataList; 
    } 
}); 

// Saving to the database 
lawnchair.save({key:'my_data_key', lastSync: currentTime, dataList: someData}); 
+0

ローンチェアはかなり良いです! –

+0

WindowsプラットフォームでLawanchairを使用できますか? –

12

ここでは、PhoneGapのストレージに関するドキュメントがかなり明示されており、いくつかのサンプルコードが含まれています。ストレージAPIは、OperaおよびWebkitで使用されるHTML5で開発されたJavascript APIをモデルにしています。

オリジナル2011リンク:http://docs.phonegap.com/phonegap_storage_storage.md.html

2017アップデート:ここでは、関連するページの今すべての日付のうち、これを参照してください。 http://docs.phonegap.com/en/1.2.0/phonegap_storage_storage.md.html

+0

もはやこの投稿@designedbyscott –

+0

を作業リンクは6歳、そうではない全く意外(とそれが大きく変わったのPhoneGap、はるか以前のバージョンに関係します)。 – Ben

+0

よく知っています。それはまだ顕著なポストのように、ただそれにフラグを立てる。 –

0
**html** 

<input id="show" type="button" value="Show"> 

**js** 

function globalError(tx, error) 
    { 
    alert("Error: " + error.message); 
    } 

var db = window.openDatabase('TabOrder', '', 'Bar Tab Orders', 2500000); 
db.transaction(function(tx) { 
tx.executeSql('DROP TABLE IF EXISTS SubmiteData;', null, null, globalError); 
tx.executeSql('CREATE TABLE IF NOT EXISTS SubmiteData (SubmiteDataId integer 
primary key, UserId text, AuthNo number, LocId number,ProdId number, 
CardId number, OrgLat text, OrgLng text, OrgTime text)', 
      null, 
      function() 
      { 
      SubmiteData("USER1",12345678,23434, 21212, 220232, 
      "9", "45", "23/06/2014"); 

      }, 
      globalError); 
    }); 

function SubmiteData(UserId, AuthNo, LocId,ProdId, CardId, OrgLat, OrgLng, OrgTime){ 
db.transaction(function(tx){ 
tx.executeSql('INSERT INTO SubmiteData(UserId, AuthNo, LocId, ProdId, CardId, 
OrgLat, OrgLng, OrgTime) VALUES (?,?,?,?,?,?,?,?)', [UserId, AuthNo, LocId, 
ProdId, CardId, OrgLat, OrgLng, OrgTime], 
      null, 
      globalError 
      ); 
    }); 
} 


function read(UserId, AuthNo, LocId,ProdId, CardId, OrgLat, OrgLng, OrgTime){ 

db.transaction(function(tx) { 
tx.executeSql('SELECT * FROM SubmiteData', 
     [], 
     function(tx, results) 
     { 
      for (var i=0; i<results.rows.length; i++) 
      { 
       var row=results.rows.item(i); 
       // alert("Id: " + row['UserId']); 
       var stringout = "LocId: " + row['LocId'] + "\n"; 
       alert(stringout); 
      } 
     },     
     globalError 
     ); 
    }); 
}; 

$(function() 
{ 
    $('#show').click(read); 
}); 
関連する問題