2013-11-24 3 views
0

Im이 객체 지향 자바 스크립트 프로그래밍에 새로운 것이 있습니다. 웹에서 삽입 할 때 생성 된 ID를 얻는 방법

html5rocks.webdb.insertuser = function(username){ 
    var db = html5rocks.webdb.db; 
    var id; 
    db.transaction(function(tx){ 
     var addedOn = new Date(); 
     tx.executeSql("INSERT INTO user(name) VALUES (?)", 
      [username], 
      html5rocks.webdb.onSuccess, 
      html5rocks.webdb.onError); 
    }); 
} 

여기에 지금은 이해 일이 "는 onSuccess"다시 전화로 호출입니다 내가 http://www.html5rocks.com/en/tutorials/webdatabase/todo/

에 좋은 튜토리얼을 따라 가지고 내 코드입니다. 그래서 전체 함수의 반환 매개 변수로 값을 얻고 싶다면 나는 어떤 종류의 차단을 사용해야합니다. 삽입 ID 반환 값을 얻는 방법을 알고 싶습니다.

답변

1

대부분의 db 테이블에는 각 행을 식별하는 자동 생성 ID 열이 있습니다. 이 값을 다시 얻으려면 삽입을 수행 한 후 메모리에있는 객체에 할당 할 수 있습니다. 알고 보니 그것은 매우 쉽게 :

db = openDatabase(db_name, ‘1.0’, options.description, size); 

db.transaction(function(tx) { 
    tx.executeSql(“insert into posts (title) VALUES (‘Hear the news’)”, [], function(tx, sql_res) { 
    var lastInsertId = sql_res.insertId; 
    }); 
}); 

출처 :http://scottpersinger.com/post/9638490944/html5-web-database-get-the-last-insert-id

+0

당신이 그것이 JS 기능을 할 수 있습니다. 변수로 설정할 수 있다는 것을 알고 있습니다. 하지만 콜백이 올 때까지 전체 기능을 차단해야합니다. – dinesh707

+0

죄송합니다. 무슨 뜻인지 조용히하지 마십시오. 설명해 주시겠습니까? – Clickbeetle

+0

값 insertId = insertUser ("abc"); 나는 이런 가치를 얻을 필요가있다. 그래서 당신이 저에게 그 위대한 기능을 어떻게 만드는지 보여줄 수 있다면. Tx – dinesh707