环境设定rem VC++ copy c:\oracle\ora92\precomp\public\*.h vc_path\Includerem copy c:\oracle\ora92\precomp\lib\orasql9.lib
*.pc 中增加一句
#pragma comment(lib,"sqllib18.lib")
*.pc 中增加一句
#pragma comment(lib,"sqllib18.lib")
解决方案 »
- Oracle 10g的服务OracleCSService无法启动,提示“fopen failed E:\oeacle10g\css\init\abc.pid.”
- oracle 基础问题 帮忙的叩谢啊!
- 如果系统配置19张共享盘,来安装RAC ORACLE10g产品,RAID方案该如何安排比较合理?
- 我的pro*c预编译器有问题?
- 大数据量的解决办法
- 相加query的求教!
- oracle8i和9i有什么区别????
- oracle8.0.5+win2000,回滚段共有12个,但是只有6个可以自动ONLINE,怎么让它其它的自动ONLINE????
- 每天有万条记录增加的数据表有没有必要分成几个表?
- 帮忙写条SQL语句
- 哪里有oracle8.17 版本的下载!
- imp/exp的简单问题,50分~
#pragma comment(lib,"orasql9.lib") oracle9.0
include=d:\oracle\ora90\precomp\public\*.h
include=d:\学习工具\vc\vc98\include\*.h
include=d:\oracle\ora90\oci\include\*.h
include=d:\oracle\ora90\precomp\lib\orasql9.lib
然后在*.pc中加入了上面的#pragma comment(lib,"sqllib18.lib")
可结果还是一样,不知道哪错了,真的很郁闷也,高手帮忙啊
#pragma comment(lib,"orasql9.lib") ora90
#include <stdio.h>
#include <string.h>
#include <sqlca.h>int main()
{
/*ホスト変数を宣言する。*/
EXEC SQL BEGIN DECLARE SECTION;
char *username = "use1";
char *password = "sys";
char *db_string = "oradb";
char *sqlstmt = "select 'test' from dual";
char outstr [10];
EXEC SQL END DECLARE SECTION;
/* 埋め込みSQLプログラムの実行時に、致命的なエラーが発生したときは、制御を sqlerror の位置に移す。*/
EXEC SQL WHENEVER SQLERROR GOTO sqlerror;
/*データベースに接続する。*/
EXEC SQL CONNECT :username IDENTIFIED BY :password USING :db_string;
/*SQL文を実行する*/
EXEC SQL select 'test'
into :outstr
from dual;
printf("%s\n",outstr);
sqlerror:
if( 0 > sqlca.sqlcode ){
printf("%.*s\n",sqlca.sqlerrm.sqlerrml,sqlca.sqlerrm.sqlerrmc);
}
/*データベースとの接続を切断する。*/
EXEC SQL ROLLBACK RELEASE;
getchar();
return 1;
}
rem make.bat
rem proc 手順
rem 1.*.pc procの元ソースを作成する。
rem 2.proc a.pc コンパイルして、a.c ソースを作成された。
rem proc.exe の path = c:\oracle\ora92\bin
rem 3.a.c コンパイル
rem VC++ copy c:\oracle\ora92\precomp\public\*.h vc_path\Includerem copy c:\oracle\ora92\precomp\lib\orasql9.lib
wait 5
proc a.pc
orasql9.lib 在a.c 同一个目录下c:\oracle\ora92\precomp\public\*.h 在 vc_path\Include
extern void sqlcxt (void **, unsigned long *,
struct sqlexd *, const struct sqlcxp *);
改成
extern "C" void sqlcxt (void **, unsigned long *,
struct sqlexd *, const struct sqlcxp *);extern void sqlbuft(void **, char *);
改成
extern "C" void sqlbuft(void **, char *);
到底是什么原因啊
真他妈 郁闷!
DOS下用 cm.bat
下面的这一部分改编成自己的配置。
set oracle_home=C:\oracle\ora92
set VSCommonDir=C:\PROGRA~1\MICROS~2\Common
set MSDevDir=C:\PROGRA~1\MICROS~2\Common\msdev98
set MSVCDir=C:\PROGRA~1\MICROS~2\VC98 *.pc 中增加一句
#pragma comment(lib,"orasql9.lib") 源文件 a.pc 启动是 cm a cm.bat源文件:******************************************
@echo off
set oracle_home=C:\oracle\ora92
set VSCommonDir=C:\PROGRA~1\MICROS~2\Common
set MSDevDir=C:\PROGRA~1\MICROS~2\Common\msdev98
set MSVCDir=C:\PROGRA~1\MICROS~2\VC98if "%OS%" == "Windows_NT" set VcOsDir=WINNT
if "%OS%" == "Windows_NT" set PATH=%MSDevDir%\BIN;%MSVCDir%\BIN;%VSCommonDir%\TOOLS\%VcOsDir%;%VSCommonDir%\TOOLS;%PATH%
if "%OS%" == "" set PATH="%MSDevDir%\BIN";"%MSVCDir%\BIN";"%VSCommonDir%\TOOLS\%VcOsDir%";"%VSCommonDir%\TOOLS";"%windir%\SYSTEM";"%PATH%"
path =%path%;%oracle_home%\oci;%oracle_home%\bin;%oracle_home%\precomp\publicset INCLUDE=%MSVCDir%\ATL\INCLUDE;%MSVCDir%\INCLUDE;%MSVCDir%\MFC\INCLUDE;%INCLUDE%
set INCLUDE=%INCLUDE%;%oracle_home%\precomp\public;%path%;%oracle_home%\oci\INCLUDE
set LIB=%MSVCDir%\LIB;%MSVCDir%\MFC\LIB;%LIB%
set LIB=%LIB%;%oracle_home%\lib;%oracle_home%\precomp\lib;%oracle_home%\jdk\include;%oracle_home%\jdk\bin
set VcOsDir=
set VSCommonDir=proc %1.pc
cl %1.c************************