proc开发,从database中取数据,
select出来的字段较多,想自定义一个结构(根据表结构来定义),将select的数据放进去。
预编译总是不过。(编译为cpp文件)。
EXEC SQL INCLUDE sqlca;
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <string.h>EXEC SQL BEGIN DECLARE SECTION;
char *uid = "system@oradb";
char* pwd = "manager";
char* cust="000001";
char* ca;
char* cb;
char* cc;
int i;
EXEC SQL DECLARE cust_cursor CURSOR FOR
select NVL(cust_no,""),NVL(cust_nm,""),NVL(cust_addr,""),NVL(amt,0) from tst_cust;

EXEC SQL END DECLARE SECTION;int HdlDB()
{
EXEC SQL CONNECT :uid IDENTIFIED BY :pwd;
EXEC SQL OPEN cust_cursor;
//EXEC SQL FETCH cust_cursor INTO :tstCust;----tstCust为自定义结构,不能通过预编译
//EXEC SQL FETCH cust_cursor INTO :tstCust.ca,:tstCust.cb,:tstCust.cc,:tstCust.i;--不能通过预编译
EXEC SQL select * into :ca, :cb, :cc, :i from tst_cust where cust_no = :cust;--可以通过
if (sqlca.sqlcode != 0)
{
printf("sqlca.sqlcode = [%d]\n",sqlca.sqlcode);
return 0;
}
else
printf("data=[%s][%s][%s][%d]\n", tstCust.ca, tstCust.cb, tst.cc,tst.i);

EXEC SQL CLOSE cust_cursor;
return 1;
}请高手指点!!