環境:
WinXPSP2 + VC6 + ORACLE10g
步驟:
1)建立demo.pc,內容如下:
#include <stdio.h><br />#include <string.h></p><p>typedef char asciz;<br />EXEC SQL BEGIN DECLARE SECTION;<br />EXEC SQL TYPE asciz IS STRING(20);<br />asciz username[20];<br />asciz password[20];<br />int dept_number;<br />char dept_name[50];<br />char location[50];<br />EXEC SQL END DECLARE SECTION;</p><p>EXEC SQL INCLUDE sqlca;</p><p>main()<br />{<br />strcpy(username,"SCOTT");<br />strcpy(password,"x");<br />EXEC SQL WHENEVER SQLERROR GOTO sql_error;<br />EXEC SQL CONNECT :username IDENTIFIED BY :password;<br />printf("/n Connect to ORACLE");</p><p>while(1)<br />{<br />printf("/n Enter department Number(0 to end)?");<br />scanf("%d",&dept_number);<br />if(dept_number==0)<br />{<br />EXEC SQL COMMIT WORK RELEASE;<br />printf("/n Exiting program");<br />exit(0);<br />}<br />//---------------PLSQL塊開始---------------<br />EXEC SQL EXECUTE<br />BEGIN<br />SELECTDNAME,LOC<br />INTO:dept_name,:location<br />FROMDEPT<br />WHEREDEPTNO=:dept_number;<br />// NULL; --IS OK<br />END;<br />END-EXEC;<br />//---------------PLSQL塊結束---------------<br />printf("/n Dept No./t Dept Name/t Location");<br />printf("/n ------------------------------------");<br />printf("/n %d/t%s/t%s",dept_number,dept_name,location);<br />}<br />sql_error:<br />EXEC SQL WHENEVER SQLERROR CONTINUE;<br />EXEC SQL ROLLBACK WORK RELEASE;<br />printf("/n processing error!");<br />printf("/n Exiting program!");<br />exit(1);<br />}<br />
2)將demo.pc先行編譯為demo.c:
proc demo.pc SQLCHECK=SEMANTICS userid="scott/x@orcl"
3)將demo.c編譯為demo.obj:
cl demo.c /nologo /c /I E:/oracle/product/10.2.0/db_1/precomp/public
4)將demo.obj連結為demo.exe:
link demo.obj /nologo /LIBPATH:E:/oracle/product/10.2.0/db_1/precomp/LIB orasql10.lib
5)運行demo.exe進行測試。