2010-11-02 40 views
2

我正在寫一個函數,該函數將位於在Web數據庫中創建表的外部文件中。這一切都是通過Javascript和HTML 5本地數據庫完成的。我想在一個變量傳遞到產生像表名:將表名稱設置爲Web數據庫的變量?

mydb.transaction(function(tx) { 
    tx.executeSql('CREATE TABLE IF NOT EXISTS **?** (id INTEGER PRIMARY KEY, name TEXT)', [**DB_Table**]); 
}); 

,但明白問號只能代替literals使用是有沒有解決這個辦法嗎?

回答

0

不,沒有辦法參數化模式名稱。如果您確實需要允許動態名稱,則必須手動將它們編碼爲模式名稱字面值。

模式名字文字的ANSI SQL格式是用雙引號把它們包圍起來,用雙加雙引號替換字符串中的任何雙引號字符。

var txlit= '"'+tc.replace(/"/g, '""')+'"'; 
query= 'CREATE TABLE IF NOT EXISTS '+txlit+' (id INTEGER ...)'; 
0

那麼,有一些原因的SQL參數的限制。

但我認爲你正面臨元編程問題,所以請查看StringTemplate

StringTemplate,它不要強迫你獨佔使用它。它只是一個用於任何目的的String模板語言。

不幸的是,StringTemplate不支持JavaScript,但我認爲它的設計哲學仍然值得一提。

相關問題