2015-03-13 52 views
1

我是SQLite的新手,但我需要在我的c程序中分析表。
如果我作爲SQL語句中使用:在sql語句中使用變量-c interface

char *sql; 
sql = "SELECT * FROM table;"; 

它完美的作品。但我想要

sql = "SELECT X FROM table;"; 

其中X是一個變量,我每次指定一個不同的列名稱。
我試圖與

sql = "SELECT 'X' FROM table;"; 

,但它不工作。在網絡上看,我不清楚是否可以使用變量來選擇列,以及是否應該注意它。有關如何繼續的任何建議是值得歡迎的

回答

0

你需要的是sprintf()

你可以寫類似[僞代碼]

sprintf(str, "SELECT %c FROM table;", p); 

注:假設str分配,pchar類型。

+0

但是,只有當列是一個字符的長度時纔有效。 – 2015-03-13 19:23:10

+0

對不起@LinusKleen先生,沒有你。 – 2015-03-13 19:24:29

+0

對不起。 *列名*就是我的意思。特別是僞代碼變量'X'中的一個。由於'%c'是*單個*字符的格式化程序,因此'X'必須是代碼才能工作的(無符號)整數。 '%s'將允許字符串。你引用的文檔提到了這一點。 – 2015-03-13 19:25:31