2012-04-30 10 views
-1
私たちはモンゴDBを使用してのようなJavaScriptを使用してServerデータベースを取得することができますどのように多くの方法を知りたい

、SQLiteのかServerデータベースに接続するための任意の他の方法JavaScriptを使用してデータベースサーバを接続する方法はいくつありますか?

+3

[42](http://en.wikipedia.org/wiki/42_(ヒッチハイクの%の27s_Guide_to_the_Galaxy )#Answer_to_the_Ultimate_Question_of_Life.2C_the_Universe.2C_and_Everything_.2842.29)、正確です。 –

答えて

3

あなたはクライアント側のJavaScriptの話をしている場合は、手立て1はありません

データベースに接続するサーバー上で実行されているスクリプトにメッセージ(おそらくAJAXまたはWebSocketsを使用)を送信する必要があります。


実際に、そこHTML5の仕様でローカルのSQLiteエンジンにアクセスするためのWebDBだったが、それは廃止しまいました。私はブラウザに基づいて、ローカルデータベースを使用していた貴重な提案のためのすべての

+0

Rouch APIを提供するので、CouchDBに直接アクセスすることができます。 –

+0

ありがとうAlnitak私に応答するために、私は完全にあなたに同意するクライアントに同じことを説明しようとしましたが、いくつかの彼は私が私は聞いたことがないmonjoあなたはそれがどのように機能するか考えていますか? –

+0

@FelixKling trueですが、クライアントとサーバーの間のアクセスを仲介するためのミドルウェアがないと、実際のアプリケーションでそれを危険にさらしたくありません。 – Alnitak

0

おかげで、次の方法を使用してサポートしています。

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>SQL Storage</title> 
<body> 
    <br /> 
    <br /> 
    <div align="center"> 
     <input type="hidden" id="id" /> First name:<input type="text" 
      id="firstName" /><br /> Last name:<input type="text" id="lastName" /><br /> 
     Phone: <input type="text" id="phone" /><br /> 
     <button onClick="resetForm()">Reset Form</button> 
     <button onClick="updateRecord()">Update</button> 
     <button onClick="insertRecord()">Insert</button> 
     <button onClick="dropTable()">Drop Table</button> 
     <div id="results"></div> 
    </div> 
</body> 

<script> 
    var results = document.getElementById('results'); 
    var id = document.getElementById('id'); 
    var firstName = document.getElementById('firstName'); 
    var lastName = document.getElementById('lastName'); 
    var phone = document.getElementById('phone'); 

    var createStatement = "CREATE TABLE IF NOT EXISTS Contacts (id INTEGER PRIMARY KEY AUTOINCREMENT, firstName TEXT, lastName TEXT, phone TEXT)"; 
    var selectAllStatement = "SELECT * FROM Contacts"; 
    var insertStatement = "INSERT INTO Contacts (firstName, lastName, phone) VALUES (?, ?, ?)"; 
    var updateStatement = "UPDATE Contacts SET firstName = ?, lastName = ?, phone = ? WHERE id = ?"; 
    var deleteStatement = "DELETE FROM Contacts WHERE id=?"; 
    var dropStatement = "DROP TABLE Contacts"; 
    try { 
     var db = openDatabase("AddressBook", "1.0", "Address Book", 200000); 
    } catch (e) { 
     alert(e) 
    } 
    var dataset; 
    createTable(); 

    function onError(tx, error) { 
     alert(error.message); 
    } 

    function showRecords() { 
     results.innerHTML = ''; 
     db.transaction(function(tx) { 
      tx.executeSql(selectAllStatement, [], function(tx, result) { 
       dataset = result.rows; 
       for (var i = 0, item = null; i < dataset.length; i++) { 
        item = dataset.item(i); 
        results.innerHTML += '<li>' + item['lastName'] + ' , ' 
        item['firstName'] + ' <a href="#"  onclick="loadRecord(' 
          + i + ')">edit</a> ' 
          + '<a href="#" onclick="deleteRecord(' + item['id'] 
          + ')">delete</a></li>'; 
       } 
      }); 
     }); 
    } 

    function createTable() { 
     db.transaction(function(tx) { 
      tx.executeSql(createStatement, [], showRecords, onError); 
     }); 
    } 

    function insertRecord() { 
     db.transaction(function(tx) { 
      tx.executeSql(insertStatement, [ firstName.value, lastName.value, 
        phone.value ], loadAndReset, onError); 
     }); 
    } 

    function loadRecord(i) { 
     var item = dataset.item(i); 
     firstName.value = item['firstName']; 
     lastName.value = item['lastName']; 
     phone.value = item['phone']; 
     id.value = item['id']; 
    } 

    function updateRecord() { 
     db.transaction(function(tx) { 
      tx.executeSql(updateStatement, [ firstName.value, lastName.value, 
        phone.value, id.value ], loadAndReset, onError); 
     }); 
    } 

    function deleteRecord(id) { 
     db.transaction(function(tx) { 
      tx.executeSql(deleteStatement, [ id ], showRecords, onError); 
     }); 
     resetForm(); 
    } 

    function dropTable() { 
     db.transaction(function(tx) { 
      tx.executeSql(dropStatement, [], showRecords, onError); 
     }); 
     resetForm(); 
    } 

    function loadAndReset() { 
     resetForm(); 
     showRecords(); 
    } 

    function resetForm() { 
     firstName.value = ''; 
     lastName.value = ''; 
     phone.value = ''; 
     id.value = ''; 
    } 
</script> 
</html> 
関連する問題