我的程序如下 : // oracel.cpp : Defines the entry point for the console application. //#include "stdafx.h" #include "iostream.h"EXEC SQL BEGIN DECLARE SECTION; VARCHAR username[20]; VARCHAR password[20]; EXEC SQL END DECLARE SECTION; EXEC SQL INCLUDE sqlca; void sqlerror();int main(int argc, char* argv[]) { EXEC SQL BEGIN DECLARE SECTION; int emp_number; VARCHAR emp_name[15]; float salary; float commission; EXEC SQL END DECLARE SECTION; int total_number; strcpy(username.arr,"scott"); username.len=strlen(username.arr); strcpy(password.arr,"psusong"); password.len=strlen(password.arr); EXEC SQL WHENEVER SQLERROR DO sqlerror(); EXEC SQL CONNECT :username IDENTIFIED BY :password;
cout<<"I have successed in connecting to the oralce database!"<<endl; total_number=0; while(1) { emp_number=0; cout<<"Please input the employee number (0 to quit) :"); cin>>emp_number; if(emp_number==0) break; EXEC SQL SELECT WHENEVER FOUND GOTO notfound; EXEC SQL SELECT ENAME,SAL,COMM INTO : emp_name,:salary,:commission FROM EMP WHERE EMPNO=: emp_number;
cout<<"\n\nEmployee\tSalary\t Commission\n"); cout<<"---------------\t\------------\t----------------\n"); emp_name.arr[emp_name.len]='\0'; cout<<emm_name.arr<<salary<<commission<<endl; total_number+=1; notfound: cout<<"\n\n Not a valid employee number------try again!\n"; } cout<<"\n\n Total number requeried was :"<<total_number; cout<<"\nHave a good day!"<<endl;EXEC SQL COMMIT WORK RELEASE; return 0;} void sqlerror() { EXEC SQL WHENEVER SQLERROR CONTINUE; COUT<<"\n Oracle error have detected!"<<endl; cout<<"\n"<< sqlca.sqlerrm.sqlerrme<<endl; EXEC SQL ROLLBACK RELEASE; exit(1);}我不知道如何使用oracle 的预编译器????
:
// oracel.cpp : Defines the entry point for the console application.
//#include "stdafx.h"
#include "iostream.h"EXEC SQL BEGIN DECLARE SECTION;
VARCHAR username[20];
VARCHAR password[20];
EXEC SQL END DECLARE SECTION;
EXEC SQL INCLUDE sqlca;
void sqlerror();int main(int argc, char* argv[])
{
EXEC SQL BEGIN DECLARE SECTION;
int emp_number;
VARCHAR emp_name[15];
float salary;
float commission;
EXEC SQL END DECLARE SECTION; int total_number; strcpy(username.arr,"scott");
username.len=strlen(username.arr);
strcpy(password.arr,"psusong");
password.len=strlen(password.arr);
EXEC SQL WHENEVER SQLERROR DO sqlerror();
EXEC SQL CONNECT :username IDENTIFIED BY :password;
cout<<"I have successed in connecting to the oralce database!"<<endl; total_number=0;
while(1)
{
emp_number=0;
cout<<"Please input the employee number (0 to quit) :");
cin>>emp_number;
if(emp_number==0)
break;
EXEC SQL SELECT WHENEVER FOUND GOTO notfound;
EXEC SQL SELECT ENAME,SAL,COMM
INTO : emp_name,:salary,:commission
FROM EMP
WHERE EMPNO=: emp_number;
cout<<"\n\nEmployee\tSalary\t Commission\n");
cout<<"---------------\t\------------\t----------------\n");
emp_name.arr[emp_name.len]='\0';
cout<<emm_name.arr<<salary<<commission<<endl;
total_number+=1;
notfound:
cout<<"\n\n Not a valid employee number------try again!\n";
}
cout<<"\n\n Total number requeried was :"<<total_number;
cout<<"\nHave a good day!"<<endl;EXEC SQL COMMIT WORK RELEASE;
return 0;}
void sqlerror()
{
EXEC SQL WHENEVER SQLERROR CONTINUE;
COUT<<"\n Oracle error have detected!"<<endl;
cout<<"\n"<< sqlca.sqlerrm.sqlerrme<<endl;
EXEC SQL ROLLBACK RELEASE;
exit(1);}我不知道如何使用oracle 的预编译器????
先用proc预编译,再用VC的编译器编译。
或者干脆:
1。在fileview中选择.pc文件,右击选择settings;
2。在.pc文件的custom build的commands中输入proc code=cpp $(ProjDir)\$(InputName).pc;
3。在outputs中输入$(ProjDir)\$(InputName).cpp
4。F7编译;
5。proc预编译参数应当针对具体情况修改,包括上面的code=cpp段
(end)不是高手,没有女朋友,在公司呆了一整天,唉 :-(