c++ - 如何使用游标从查询中获取所有结果?
问题描述
我正在做一些作业,其中我将 SQL 与 ProC/C++ 一起使用,并且我正在使用我的教授在之前的作业中给出的模板。问题是显示查询结果的函数似乎只输出一个元组。我希望它输出所有获取的数据,但语法对我来说有点陌生。
我的查询:
strcat((char *)sqlQueryToRun," select employeeName from Employees");
执行功能:
void prepareAndExecuteIt() {
// Prepare the query
//sqlQueryToRun.len = strlen((char *) sqlQueryToRun.arr);
exec sql PREPARE dbVariableToHoldQuery FROM :sqlQueryToRun;
/* The declare statement, below, associates a cursor with a
* PREPAREd statement.
* The cursor name, like the statement
* name, does not appear in the Declare Section.
* A single cursor name can not be declared more than once.
*/
exec sql declare cursorToHoldResultTuples cursor FOR dbVariableToHoldQuery;
exec sql open cursorToHoldResultTuples ;
exec sql FETCH cursorToHoldResultTuples INTO :outputSupplierName;
printf("\nSupplier name: %s\n", outputSupplierName);
exec sql close cursorToHoldResultTuples;
}
当我知道此表中有更多名称时,这只会输出一个名称。从我读过的内容来看,应该有某种我可以使用的 fetchall() 方法,但我不确定如何使用这种语法应用它。
尝试循环 fetch 语句看起来像这样,并给出以下错误消息:
for (int i = 0; i < 10; i++){
exec sql FETCH cursorToHoldResultTuples INTO :outputSupplierName;
printf("%s\n", outputSupplierName);
}
make[1]: *** [/home/cs/prof/4620/myMake1.mk:104: pc1] Error 1
make: *** [/home/cs/prof/4620/myMake1.mk:110: HW6.o] Error 2
解决方案
推荐阅读
- javascript - 如何一次声明多个对象
- spring-boot - Couchbase:通过 Spring Boot Data Couchbase 超时,但通过 Workbench 快速(预期)响应
- twitter-bootstrap - 使用 VUE 和 Bootstrap 返回第一个选项卡
- angular - (Angular 5)错误:无法读取未定义的属性“setValue”
- azure - parametersLink 选项未将参数传递给 templateLink
- python - 如何根据相同的 ID 比较两个不同数据框中的日期列
- javascript - React:子组件中的父组件道具没有显式传递
- python - int() 参数必须是字符串、类似字节的对象或数字,而不是 'QuerySet'
- python - Pandas:将了解列类型的函数应用于数据框的每一列
- javascript - 将 id 分配给 id 属性名称可配置的通用类型?