- 论坛徽章:
- 0
|
返回结果集缓缓再说
现在这个程序死循环了
在while(1)那里死循环
怎么搞的
- #include <stdio.h>
- EXEC SQL INCLUDE SQLCA;
- #define USERNAME "fa"
- #define PASSWORD "system"
- int DB_login(void) {
- EXEC SQL WHENEVER SQLERROR GOTO SqlError;
- EXEC SQL CONNECT :USERNAME IDENTIFIED BY :PASSWORD;
- EXEC SQL SET TRANSACTION READ WRITE;
- if (getenv( "NLS_DATE_FORMAT" ) == NULL) {
- EXEC SQL ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD';
- }
- return (0);
- SqlError:
- return(-1);
- }
- char *exec_query(char *sql_str, int *col_len)
- {
- char c1[10],c2[10];
- char *ret = NULL;
- char lsql[128];
-
- /* DB Search */
- exec sql whenever sqlerror continue;
- exec sql whenever not found do break;
- strcpy(lsql, sql_str);
- exec sql prepare psql from :lsql;
- exec sql declare cur3 cursor for psql;
- exec sql open cur3;
-
- ret = malloc(5000);
- while (1) {
- EXEC SQL FETCH cur3 INTO :c1, :c2;
- memcpy(ret, c2, 10);
- }
- return ret;
- }
- int main()
- {
- printf("%d\n",DB_login());
- printf("%s\n",exec_query("select a,b from t1;",NULL));
- }
复制代码 |
|