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="";  
}
);
}

댓글 없음:

댓글 쓰기

ETL 솔루션 환경

ETL 솔루션 환경 하둡은 대용량 데이터를 값싸고 빠르게 분석할 수 있는 길을 만들어줬다. 통계분석 엔진인 “R”역시 하둡 못지 않게 관심을 받고 있다. 빅데이터 역시 데이터라는 점을 볼때 분산처리와 분석 그 이전에 데이터 품질 등 데이...