【发布时间】:2016-10-16 02:58:48
【问题描述】:
我的代码需要区分Sql语句是否为SELECT。
如果结果大于1,很容易区分select。 但是语句执行的时候没有结果,怎么区分呢?
sqlite_stmt *some_stmt;
//case 1 : (the table has no row)
sqlite3_prepare("select * from some_table", &some_stmt);
//case 2 :
sqlite3_prepare("create table some_table2", &some_stmt);
int result = sqlite3_step(some_stmt);
结果相同:
SQLITE_DONE;
我可以用两种方法区分它,
第一个是从语句中获取子字符串。但我不想这样做,这似乎是错误的方式。
第二个是使用sqlite3_column_count()。如果语句是 SELECT,则 column_count 通常有一个或多个。
使用sqlite3_coulmn_count() 的方式是否正确?在 sqlite 等中没有任何没有列表的东西吗?
我想要正确的方法来区分 Statement 是 SELECT 还是 Not。
【问题讨论】: