2012-04-05 3 views
0

그래서이 페이지에서 지침을 사용하여 내 전화 갭 프로젝트에서 SQLite는 DB를 만든 : http://docs.phonegap.com/en/1.5.0/phonegap_storage_storage.md.html#Storage설 m SQLite는 DB는 폰갭에서 설정하는 방법을

난 그냥 DB를 채우는 기능에 대한 질문이 하나 데이터.

function populateDB(tx) { 
     tx.executeSql('DROP TABLE IF EXISTS DEMO'); 
     tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)'); 
     tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")'); 
     tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")'); 
    } 

이 기능의 맨 위에는 DEMO 테이블이 삭제 된 다음 실행될 때마다 다시 생성됩니다. 위의 문장에서 테이블을 삭제할 때 테이블이 제거되기 때문에 매번 새로운 테이블을 만들고 채울 것입니다.

응용 프로그램을 열 때마다 데이터를 제거하고 추가하는 요령은 장치에 불필요한 작업을 생성하지 않습니다. 그냥 "DROP TABLE IF EXISTS DEMO"를 제거 할 수 없습니까? "DROP TABLE EXISTS DEMO"만 사용 하시겠습니까?

상단에 "drop table"을 표시하지 않으면 매번 복제 된 데이터가 추가됩니다. 그래서 테이블이 이미 존재한다면 if-sentence 나 something이 필요할 것입니다.

답변

2

이것은 단지 예일뿐입니다. 영리하거나 심지어 논리적 인 것을하기위한 것이 아닙니다. 어떤 준비도없이 실행할 수 있어야합니다.

+0

나는 그것이 예라고 알고있다. 나는 그것이 영리하지 않다는 것을 안다. 나는 그것이 심지어 locigal이 아니라는 것을 안다. 그러나 왜 그것이 무엇을하는지 배우지 않는다면 나는 미래의 더 나은 방법을 진화시키고 사용할 수 없습니다. 나는 이것을 영원히 영리하지 않은 방법으로 계속 사용할 것입니다. :) – TorK

0

나는 항상 비슷한 것을 사용합니다. 개발하는 동안 코드는 처음부터 사용자를 테스트 할 수 있습니다. ,

function populateDB(tx) { 
    //tx.executeSql('DROP TABLE IF EXISTS DEMO'); // Uncomment to test from scratch, comment for production! 
    tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)'); 
    tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")'); 
    tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")'); 
} 

내가 결코 줄을 삭제하지 난 그냥 삭제하거나 다시 전환 할 수있는 신속하고 더러운 방법으로 // 삽입 : 돌아 오는 사용자에 대해 테스트 할 준비가되면 다음, 그래서 같은 두 번째 줄을 주석 것 두 가지 테스트 모드 사이에서 제작을 위해 주석 처리 된 행에 남기 겠지만 원하는 경우 삭제할 수 있습니다.