web-dev-qa-db-ja.com

HTML5データベースストレージ(SQL lite)-いくつかの質問

こんにちは、

HTML5データベースストレージの使用例(CRUD)について、ウェブ上で十分な初心者リソースが見つかりません

私はこのようにDBを開いています(作成しています):

var db;

$(document).ready(function() 
{

    try
    {
      if (!window.openDatabase) {
            alert('Not Supported -> Please try with a WebKit Browser');
      } else {
          var shortName = 'mydatab';
          var version = '1.0';
          var displayName = 'User Settings Database';
          var maxSize = 3072*1024; //  = 3MB            in bytes 65536
          db = openDatabase(shortName, version, displayName, maxSize);      
          }
    } 
    catch(e) 
    {
      if (e == 2) {

          alert("Invalid database version.");
      } else {
          alert("Unknown error "+e+".");
      }return;
    }
});

質問1:1つのドメインでいくつのデータベースを作成して使用できますか?質問2.データベースを削除(ドロップ)する方法。 ->私はまだこれを理解していません。

SQLクエリを作成するには、トランザクションを使用します。

function nullDataHandler(transaction, results) { }
function createTables(db)
{
  db.transaction(function (transaction)
  {
    //first query causes the transaction to (intentionally) fail if the table exists.
    transaction.executeSql('CREATE TABLE people(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL DEFAULT "John Doe", shirt TEXT NOT NULL DEFAULT "Purple");', [], nullDataHandler, errorHandler);
  });
}

質問3:テーブルが存在する場合、上記のトランザクションはどのように失敗しますか?これを行うためにnullDataHandlerが関係していますか? executeSql APIを説明するドキュメントはWebのどこにありますか?引数?

tHX

26
PathOfNeo

お探しの仕様は Web SQL Database です。簡単な読書は提案する:

  1. 制限はありませんが、データベースが一定のサイズ(5MBがデフォルトのようです)を超えると、ブラウザはユーザーにより多くのスペースを許可するように促します。
  2. 現在の仕様では、データベースを削除する方法はありません。
  3. ExecuteSql()関数は、オプションのエラーコールバック引数を取ります。

HTML5 Doctor も紹介しています。

ただし、今後は Indexed DB を参照することをお勧めします。 SQL/SQLiteの標準がないため、Web SQLは基本的に廃止されました。 MicrosoftでさえIndexed DBを支持しています。 主要なWebアプリの標準について合意が得られる を参照してください。

32
Jeffery To
CREATE TABLE IF NOT EXISTS table_name

テーブルを作成しますtable_nameが存在しない場合のみ。

2
Praveen Vijayan

PersistenceJSを使用すると、データベースを完全に消去するpersistence.reset APIがあります。 PersistenceJSサイト

開発/テストの目的で、Chromeの次のURLでドメイン名を検索して、コンテンツを表示し、webSQL、IndexedDB、Cookieなどを削除できます。

chrome://settings/cookies

そこで、ドメインのすべてのストレージまたは特定のローカルストレージエンティティのみを削除できます。はい、URLは単に「Cookie」を意味しますが、このURLのインターフェイスにはすべての種類のオフラインストレージが含まれます。

Chrome開発者ツールインターフェースがコンテンツの検査とともに[リソース]タブでデータストレージエンティティを右クリックして削除する機能を備えていれば素晴らしいと思います。しかし、今のところ、設定/ Cookie URLを知っています。

1
i_a

次のWebSQLチュートリアルが基本的なCRUD操作に役立つことがわかりました。例が含まれていて、コードが何をしているのかを説明しています。

SequelSphereの次のリンク( HTML5 JavaScript SQL Relational Database すべてのブラウザで動作し、LocalStorageおよびIndexedDBにデータを保存するWebSQLの代替):

1
John Fowler

IOS safari、chrome、およびoperaの最新バージョンでサポートされています。..IEおよびFirefoxでまだ採用されていません。 .....リレーショナルDBシステムを備えたブラウザ上のローカルDBよりも多くのことを求めることができるので...簡単にクエリを実行して複雑なデータを処理できます....これは、主要なベールベースのシステムでは非常に困難です。

私は読んだことを覚えています最大1つのGBをサポートしています

注:

1)私は、IDE Dashcodeと呼ばれるものがあり、iOSネイティブのように見えるWebアプリを構築できます。WebSQLも使用されます。

2)実際にはweb SQLはブラウザ上のSQLiteの実装です。

3)SQLiteは、iOSとAndroidの両方で最も好まれていますネイティブコードのdb ..

SQLiteの欠点:

同時実行性サポートの欠如ですが、ブラウザでは一度に1人のユーザーが使用するので問題ありません。これはモバイルでも同様です。

結論:

Web Sqlはw3によって放棄されました。これは悲しいことなので、他のオプションを検討する必要があります。

1
Durai Amuthan.H