欢迎来到天天文库
浏览记录
ID:34725413
大小:56.64 KB
页数:12页
时间:2019-03-10
《proc批量导入导出oracle数据库表》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、最近在开发一个项目中,为了解决数据库IO瓶颈,不得不把数据库中的数据导出为文本文件。文本传到客户端后又要导入到数据库。本人用C++Builder嵌入PROC++写了一个导入导出的DLL。假如对你有用深感荣幸!具体内容如下: 一、预备工作计算机环境:Win2000PRO,Oracle 9i,C++Builder5.5引入必要的ORACLE内部函数:要用的函数在$(ORACEL_HOME)binqlora9.dll链接库中。为了能在C++Builder中使用,先得生成LIB:implib sqlora9.libsqlora
2、9.dll二、源文件分析//-------------------------------------------------------------------------//加入必要的头文件#include#include#include#include#include#include#include#include#include#include3、h>//说明DLL的输出函数extern"C"_declspec(dlleXPort)int_stdcallConnectDB(constchar*Username, constchar*PassWord,constchar*Dbname);extern"C"_declspec(dllexport)int_stdcallImportTxtfile(TList*LengthArray, String*Fi4、eldArray,constchar*TableName, constchar*FileName);extern"C"_declspec(dllexport)int_stdcallExportTxtfile(constchar*Sql, constchar*FileName); #pragmahdrstop//-----------------------------------------------5、-----------------------------#defineMAX_ITEMS20 //定义最大字段数#defineMAX_VNAME_LEN30 //定义选择表项最大长度#defineMAX_INAME_LEN30 //定义指示器变量名字的最大长度 EXECSQLINCLUDE sqlca; //说明SQL通讯区EXECSQLINCLUDEoraca; //说明ORACLE通讯区EXECSQLINCLUDEsqlda; //说明SQL语句描述结构/*SQLDA结构体请查相关资料*/ 6、EXECORACLEOPTION(ORACA=YES);EXECORACLEOPTION(RELEASE_CURSOR=YES); //说明ORACLE外部函数extern"C"_declspec(dllimport)void_stdcallsqlclu(SQLDA*);extern"C"_declspec(dllimport)void_stdcallsqlnul(short*,short*,int*);extern"C"_declspec(dllimport)void_stdcallsqlprc(int*,int*,i7、nt*);extern"C"_declspec(dllimport)strUCtSQLDA*_stdcall sqlald(int,unsignedint,unsignedint); SQLDA*SelectUnit; //定义选择项描述SQLDA*BindUnit; //定义输入项空间//定义变量,以存放连接数据库的参数EXECSQLBEGINDECLARESECTION; charUser[20];//用户名 charPwd[20];//密码 charDB[20];//数据库服务名EXECSQLENDDE8、CLARESECTION; boolbConnect=false;//是否连接标志#pragmahdrstop #pragmaargsused//C++BuilderDLL的主函数BOOLWINAPIDllMain(HINSTANCEhinstDLL,DWORDfwdreason,LPVOIDlpvReserved)
3、h>//说明DLL的输出函数extern"C"_declspec(dlleXPort)int_stdcallConnectDB(constchar*Username, constchar*PassWord,constchar*Dbname);extern"C"_declspec(dllexport)int_stdcallImportTxtfile(TList*LengthArray, String*Fi
4、eldArray,constchar*TableName, constchar*FileName);extern"C"_declspec(dllexport)int_stdcallExportTxtfile(constchar*Sql, constchar*FileName); #pragmahdrstop//-----------------------------------------------
5、-----------------------------#defineMAX_ITEMS20 //定义最大字段数#defineMAX_VNAME_LEN30 //定义选择表项最大长度#defineMAX_INAME_LEN30 //定义指示器变量名字的最大长度 EXECSQLINCLUDE sqlca; //说明SQL通讯区EXECSQLINCLUDEoraca; //说明ORACLE通讯区EXECSQLINCLUDEsqlda; //说明SQL语句描述结构/*SQLDA结构体请查相关资料*/
6、EXECORACLEOPTION(ORACA=YES);EXECORACLEOPTION(RELEASE_CURSOR=YES); //说明ORACLE外部函数extern"C"_declspec(dllimport)void_stdcallsqlclu(SQLDA*);extern"C"_declspec(dllimport)void_stdcallsqlnul(short*,short*,int*);extern"C"_declspec(dllimport)void_stdcallsqlprc(int*,int*,i
7、nt*);extern"C"_declspec(dllimport)strUCtSQLDA*_stdcall sqlald(int,unsignedint,unsignedint); SQLDA*SelectUnit; //定义选择项描述SQLDA*BindUnit; //定义输入项空间//定义变量,以存放连接数据库的参数EXECSQLBEGINDECLARESECTION; charUser[20];//用户名 charPwd[20];//密码 charDB[20];//数据库服务名EXECSQLENDDE
8、CLARESECTION; boolbConnect=false;//是否连接标志#pragmahdrstop #pragmaargsused//C++BuilderDLL的主函数BOOLWINAPIDllMain(HINSTANCEhinstDLL,DWORDfwdreason,LPVOIDlpvReserved)
此文档下载收益归作者所有