Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用游标从查询中获取所有结果?_C++_Sql_Oracle Pro C - Fatal编程技术网

C++ 如何使用游标从查询中获取所有结果?

C++ 如何使用游标从查询中获取所有结果?,c++,sql,oracle-pro-c,C++,Sql,Oracle Pro C,我正在做一些家庭作业,其中我将SQL与ProC/C++结合使用,我使用的是我的教授在上一次作业中给出的模板。问题在于,显示查询结果的函数似乎只输出一个元组。我希望它输出所有提取的数据,但语法对我来说有点陌生 我的问题是: strcat((char *)sqlQueryToRun," select employeeName from Employees"); 执行功能: void prepareAndExecuteIt() { // Prepare the query

我正在做一些家庭作业,其中我将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);
    }
for(int i=0;i<10;i++){
exec sql FETCH CURSTOHOLDRESULT耦合到:outputSupplierName;
printf(“%s\n”,outputSupplierName);
}
make[1]:***[/home/cs/prof/4620/myMake1.mk:104:pc1]错误1


make:**[/home/cs/prof/4620/myMake1.mk:110:HW6.o]错误2

你不能循环一次获取一个结果,直到光标到达结果集的末尾吗?@paddy当我将fetch语句放入循环时,它会抛出错误。不幸的是,我们正在使用的proc编译器没有提供任何有用的信息来说明哪里出了问题,但我会继续尝试。然而,如果我只是不断地粘贴fetch语句,它就会不断地给我元组。奇怪。你刚才提供的信息,以及抛出的实际错误消息,应该作为关键信息包含在你的问题中。否则,这很容易被视为一个错误。我不知道这个“亲C”是什么,你正在使用,但你的问题被标记为C++。所显示的代码不是C++。抱歉,从我理解的PROC是Oracle数据库中的SQL编程语言。主机语言是C++,但我认为预编译器称为PROC。我不太确定自己,但是我写的语言是C++。我将更改标题并将错误消息添加到帖子中。您是否搜索过Stack Overflow以查找类似问题?