gpt4 book ai didi

c++ - C++ 中的 SQLite SELECT JOIN 和 VIEWS

转载 作者:行者123 更新时间:2023-11-28 08:10:21 26 4
gpt4 key购买 nike

我在 SQLITE 和 View 中有两个表,我尝试在其中合并这两个表(我的想法是从 table1 中获取所有行,其中 table1.field1 和 table2.field99 具有相同的值。

Tables and View are Table1,Table2 and View1
View code is "SELECT * FROM Table1 JOIN Table2 ON UPPER(Field1) LIKE UPPER(Table2.Field99)"

如果我跑

SELECT * FROM View1; 

或者如果我跑

SELECT * FROM Table1 JOIN Table2 ON UPPER(Field1) LIKE UPPER(Field99);

它从 sqlite shell 返回行就好了。

但是如果我尝试使用以下代码在 C++ 中运行这些 SQL 语句:

if(sqlite3_prepare_v2(database,SQLStr,-1,&stmt,0)==SQLITE_OK){
int cols = sqlite3_column_count(stmt);
printf("Query OK: %s \nColumns: %i\n", SQLStr, cols);
while(1) {
status = sqlite3_step(stmt);
if(status == SQLITE_ROW) {
printf("This is a row!\n");
} else if(status == SQLITE_DONE) {
printf("Rows handled!\n");
break;
} else {
printf("Other status!\n");
break;
}
}
}

它只是返回:

Rows handled: SELECT * FROM View1; 
Columns: 7
Rows handled!

但它不像 shell 那样返回任何行。 (应该为查询中的每一行打印“这是一行!”。我试图将表名添加到查询中但没有帮助。我还尝试运行例如 SELECT * FROM Table1; 然后 C++ 返回行。是不是 C++ 中的 SQLITE 无法处理 JOINS 或 Views?

最佳答案

如果你想收集行然后使用 Sqlite3_exec() API 或列 API.sqlite3_step() 只评估准备好的语句它不获取结果,因为你必须使用不同的可用 api 或者你可以使用 sqlite3_exec which是一个包装器。

检查以下链接 http://www.sqlite.org/c3ref/funclist.htmlhttp://www.sqlite.org/cintro.html

祝一切顺利

关于c++ - C++ 中的 SQLite SELECT JOIN 和 VIEWS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9308640/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com