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