预编译前的代码:
// procTest.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include "string.h"//声明sql通信区
#include "sqlca.h"
#include "sqlcpr.h"EXEC SQL INCLUDE sqlca;
EXEC ORACLE OPTION (RELEASE_CURSOR = YES);// 声明宿主变量
EXEC SQL BEGIN DECLARE SECTION;char szProjectId[16];
VARCHAR varProjectName[16];varchar vc_user[0];EXEC SQL END DECLARE SECTION;int _tmain(int argc, _TCHAR* argv[])
{
//SQL中使用c变量时,前面需要加:
char* connectstr;
strcpy(connectstr,"caojj/caojj123@gis");
strcpy((char*)vc_user.arr,connectstr); vc_user.len = 6; // 连接数据库
EXEC SQL CONNECT :vc_user; //判断登陆是否成功
if (sqlca.sqlcode == 0)
{
printf("connect failed!\n");
return 0;
} // 实现查询功能
//EXEC SQL PREPARE select_stmt FROM :sqlCommand;
//EXEC SQL EXECUTE select_stmt INTO :varProjectName; EXEC SQL DECLARE cur_emp CURSOR FOR SELECT PROJECTID,PROJECTNAME FROM PROJECT;
  
EXEC SQL OPEN cur_emp;
while()
{
    EXEC SQL FETCH cur_emp INTO :szProjectId, :varProjectName;
 if( sqlca.sqlcode == 0)
  {
  break;
  }
  printf("projectid=%s projectname=%s\n",szProjectId,varProjectName);
} EXEC SQL CLOSE cur_emp;
//EXEC SQL ROLLBACK WORK RELEASE; // proc iname=procTest1.cpp oname=procTest.cpp INCLUDE=path CODE=ANSI_C CPP_SUFFIX=cpp SQLCHECK=SEMANTICS USERID=caojj/caojj123@gis return 0;
}错误信息:
错误 4 error C2079: 'sqlstm' uses undefined struct 'wmain::sqlexd' e:\oci\proctest\proctest\proctest.cpp 296