2013년 11월 13일 수요일

Writing and Reading from the Database

Writing and Reading from the Database

var firstNameBox = null;
var lastNameBox = null;
var db = null;
var dataTable = null;
/** Called when phonegap javascript is loaded */
function onDeviceReady(){
var addButton = document.getElementById("add");
firstNameBox = document.getElementById("firstName");
lastNameBox = document.getElementById("lastName");
dataTable = document.getElementById("data-table");
db = window.openDatabase("contactDB", "1.0", "ContactDatabase", 1000000);
//name,version,display name, size
}

데이터베이스에 접근 하기.
window.openDatabase(
databaseName,
versionNumber,
displayName,
sizeInBytes);

데이터베이스에 테이블에 데이터를 넣고 읽기 위해서는 ‘transaction()’ 메서드를 사용해야 한다.

db.transaction(
function(tx){ //Function to execute the sql statements
//Use tx to execute sql statements
},
function(err){ // Error callback
//Use err.code and err.message to understand the error
},
function(){ //Success callback
// Update the UI, log a message
}
);
addButton.addEventListener(
"click",
function(){
db.transaction(
//function sql statements
function (tx){
ensureTableExists(tx);
var firstName = firstNameBox.value;
var lastName = lastNameBox.value;
var sql = 'INSERT INTO Contacts( firstName, lastName ) VALUES ("' +
                                                                                 firstName + '","' + lastName + '")';
tx.executeSql(sql);
},
//error callback
function (err){
alert("error callback "+err.code);
},
//success callback
function (){
loadFromDB();
}
);
},
false
);
// Create table
function ensureTableExists(tx){
tx.executeSql('CREATE TABLE IF NOT EXISTS Contacts (id INTEGER PRIMARY KEY, firstName,lastName)');
}

SQL을 실행하는 excuteSql  API
tx.executeSql(
sqlStatement,
options,
successCallbackWithResultSet,
errorCallback);

successCallbackWithResultSet JavaScript에는 ‘tx’, ‘resultset’ 두개의 객체가 전달 된다.

function loadFromDB(){
db.transaction(
//function sql statements
function (tx){
ensureTableExists(tx);
tx.executeSql('SELECT * FROM Contacts',
[],
//success callback
function(tx, results){
var htmlStr="";
for(var index=0;index<results.rows.length;index++){
var item =  results.rows.item(index);
htmlStr = htmlStr +"<tr><td>"+
item.firstName+"</td><td>"+
item.lastName +"</td><td><button onclick=\"deleteEntry('"+
item.id+"');\">X</button></td></tr>";
}
dataTable.innerHTML=htmlStr;
},
//error callback
function(err){
   alert("Unable to fetch result from Contacts   Table");
}
  );
},
//error callback
function (err){
alert("error callback "+err.code+" "+err.message);
},
//success callback
function (){
firstNameBox.value="";   
lastNameBox.value="";  
}
);
}

댓글 없음:

댓글 쓰기

블록체인 개요 및 오픈소스 동향

블록체인(block chain) 블록체인은 공공 거래장부이며 가상 화폐로 거래할때 발생할때 발생할 수 있는 해킹을 막는 기술. 분산 데이터베이스의 한 형태로, 지속적으로 성장하는 데이터 기록 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가...