原来用的是sqlserver2000,现在想改用oracle,c/s结构时,ado连接方式编的客户端程序在98下可以直接连到数据库吗?不要安装驱动吧
解决方案 »
- 怎么样去掉后面的单位(箱,kg),截取这么样截取它
- 关于自增想不明白的地方
- 运行VB.NET 的时候出现数据库链接错误:DLL 'OraOps10.dll'不能读取
- Oracle存储过程游标问题,数据库表明明有数据,但游标返回的集合为0
- oracle10g倒入dmp文件问题,小弟求各位哥哥们帮帮我啊~
- 笨猫(*),笨猫(*),笨猫(*),笨猫(*)进,关于上次的sql语句!急..在线等!
- 在windows ODBC中如何配置Oracle connection, 使其保护数据库的密码, 不用每次连接时都手动输入密码.
- 100分求一句SQL
- 谢谢rolei(rolei) 、supershb(phenix)、shi8912(時光飛逝) 的帮助,请过来接分!
- 请高手帮忙看看!
- 一个编号的排序问题
- 如何编程实现动态关闭或打开触发器
三层的,中间层需要oracle客户端
nResult = ShowObjWizardPages(nResult);
if (nResult = BACK) goto Dlg_SdComponentTree;
Dlg_IpAddress:
nResult=AskText("请输入数据库服务器IP地址:","130.54.3.174",szIpAdress);
if (nResult = BACK) goto Dlg_SdComponentTree;
Dlg_Port:
nResult=AskText("请输入数据库服务器端口号:","1521",szPort);
if (nResult = BACK) goto Dlg_IpAddress;
Dlg_Sid:
nResult =AskText("请输入数据库SID:","ORCL",szSid);
if (nResult = BACK) goto Dlg_Port;
function SetupRegistry()
STRING szDBprofile,szHHH;
STRING szCompany;
STRING szTemp;
NUMBER nvFileHandle;
STRING szMsg;
begin
//注册BDE,默认路径c:\program files\borland\common files\bde
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);szHHH="SOFTWARE\\BORLAND";
RegDBSetKeyValueEx(szHHH+"\\BLW32","BLAPIPATH",REGDB_STRING,"C:\\Program Files\\Borland\\Common Files\\BDE\\",-1);
RegDBSetKeyValueEx(szHHH+"\\BLW32","LOCALE_LIB0",REGDB_STRING,"C:\\Program Files\\Borland\\Common Files\\BDE\\Fareast.bll",-1);
RegDBSetKeyValueEx(szHHH+"\\BLW32","LOCALE_LIB1",REGDB_STRING,"C:\\Program Files\\Borland\\Common Files\\BDE\\Usa.bll",-1);RegDBSetKeyValueEx(szHHH+"\\Database Engine","CONFIGFILE01",REGDB_STRING,"C:\\Program Files\\Borland\\Common Files\\BDE\\IDAPI32.CFG",-1);
RegDBSetKeyValueEx(szHHH+"\\Database Engine","DLLPath",REGDB_STRING,"C:\\Program Files\\Borland\\Common Files\\BDE\\",-1);
RegDBSetKeyValueEx(szHHH+"\\Database Engine","RESOURCE",REGDB_STRING,"0009",-1);//若数据库引擎没有oracle驱动,配置注册表 szHHH=szHHH+"\\Database Engine\\Settings\\DRIVERS\\ORACLE";
if ( RegDBKeyExist(szHHH) < 0 ) then
RegDBSetKeyValueEx(szHHH+"\\DB OPEN","BATCH COUNT",REGDB_STRING,"200",-1);
RegDBSetKeyValueEx(szHHH+"\\DB OPEN","BLOB SIZE",REGDB_STRING,"32",-1);
RegDBSetKeyValueEx(szHHH+"\\DB OPEN","BLOBS TO CACHE",REGDB_STRING,"64",-1);
RegDBSetKeyValueEx(szHHH+"\\DB OPEN","ENABLE BCD",REGDB_STRING,"FALSE",-1);
RegDBSetKeyValueEx(szHHH+"\\DB OPEN","ENABLE INTEGERS",REGDB_STRING,"FALSE",-1);
RegDBSetKeyValueEx(szHHH+"\\DB OPEN","ENABLE SCHEMA CACHE",REGDB_STRING,"FALSE",-1);
RegDBSetKeyValueEx(szHHH+"\\DB OPEN","LANGDRIVER",REGDB_STRING,"",-1);
RegDBSetKeyValueEx(szHHH+"\\DB OPEN","LIST SYNONYMS",REGDB_STRING,"NONE",-1);
RegDBSetKeyValueEx(szHHH+"\\DB OPEN","NET PROTOCOL",REGDB_STRING,"TNS",-1);
RegDBSetKeyValueEx(szHHH+"\\DB OPEN","OBJECT MODE",REGDB_STRING,"TRUE",-1);
RegDBSetKeyValueEx(szHHH+"\\DB OPEN","OPEN MODE",REGDB_STRING,"READ/WRITE",-1);
RegDBSetKeyValueEx(szHHH+"\\DB OPEN","ROWSET SIZE",REGDB_STRING,"20",-1);
RegDBSetKeyValueEx(szHHH+"\\DB OPEN","SCHEMA CACHE DIR",REGDB_STRING,"",-1);
RegDBSetKeyValueEx(szHHH+"\\DB OPEN","SCHEMA CACHE SIZE",REGDB_STRING,"8",-1);
RegDBSetKeyValueEx(szHHH+"\\DB OPEN","SCHEMA CACHE TIME",REGDB_STRING,"-1",-1);
RegDBSetKeyValueEx(szHHH+"\\DB OPEN","SERVER NAME",REGDB_STRING,"ORA_SERVER",-1);
RegDBSetKeyValueEx(szHHH+"\\DB OPEN","SQLPASSTHRU MODE",REGDB_STRING,"SHARED AUTOCOMMIT",-1);
RegDBSetKeyValueEx(szHHH+"\\DB OPEN","SQLQRYMODE",REGDB_STRING,"",-1);
RegDBSetKeyValueEx(szHHH+"\\DB OPEN","USER NAME",REGDB_STRING,"MYNAME",-1);
RegDBSetKeyValueEx(szHHH+"\\INIT","VERSION",REGDB_STRING,"4.0",-1);
RegDBSetKeyValueEx(szHHH+"\\INIT","TYPE",REGDB_STRING,"SERVER",-1);
RegDBSetKeyValueEx(szHHH+"\\INIT","DLL32",REGDB_STRING,"SQLORA8.DLL",-1);
RegDBSetKeyValueEx(szHHH+"\\INIT","VENDOR INIT",REGDB_STRING,"OCI.DLL",-1);
RegDBSetKeyValueEx(szHHH+"\\INIT","DRIVER FLAGS",REGDB_STRING,"",-1);
RegDBSetKeyValueEx(szHHH+"\\INIT","TRACE MODE",REGDB_STRING,"0",-1);
endif; //注册oracle数据库客户端
szHHH="SOFTWARE\\ORACLE";
szCompany="深圳XXXXXX有限公司"; RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
RegDBSetKeyValueEx(szHHH,"NET80",REGDB_STRING,sPath+"\\orant\\NET80",-1);
RegDBSetKeyValueEx(szHHH,"NLS_LANG",REGDB_STRING,"SIMPLIFIED CHINESE_CHINA.ZHS16GBK",-1);
RegDBSetKeyValueEx(szHHH,"NLSRTL33",REGDB_STRING,sPath+"\\orant\\NLSRTL33",-1);
RegDBSetKeyValueEx(szHHH,"ORA_NLS33",REGDB_STRING,sPath+"\\orant\\NLSRTL33\\DATA",-1);
RegDBSetKeyValueEx(szHHH,"ORACLE_HOME",REGDB_STRING,sPath+"\\orant",-1);
RegDBSetKeyValueEx(szHHH,"ORACLE_HOME_NAME",REGDB_STRING,"DEFAULT_HOME",-1);
RegDBSetKeyValueEx(szHHH,"COMPANY_NAME",REGDB_STRING,szCompany,-1);RegDBSetKeyValueEx(szHHH,"P08",REGDB_STRING,"YES",-1);
RegDBSetKeyValueEx(szHHH,"DBA_AUTHORIZATION",REGDB_STRING,"ORACLE",-1);
RegDBSetKeyValueEx(szHHH,"SHARED_ORACLE_HOME",REGDB_STRING,sPath+"\\orant",-1);
//设置路径 RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
if ( RegDBKeyExist(szDBExe) < 0 ) then
RegDBCreateKeyEx(szDB,"");
RegDBCreateKeyEx(szDBExe,"");
MessageBox("开始创建"+szDBExe,INFORMATION);
MessageBox(sPath,INFORMATION);
szTemp=sPath+"\\orant\\bin;"+sPath+"\\orant\\net80;"+sPath+"\\orant\\nlsrt133;";
RegDBSetKeyValueEx(szDBExe,"PATH",REGDB_STRING,szTemp,-1);
endif; //编辑autoexec.bat文件
OpenFileMode(FILE_MODE_APPEND); //追加模式
if (OpenFile (nvFileHandle, "c:\\", "AUTOEXEC.BAT") < 0) then
//打开文件失败
if (CreateFile (nvFileHandle, "c:\\", "AUTOEXEC.BAT") < 0) then
//创建失败
MessageBox ("AUTOEXEC.BAT 文件文件创建失败!", SEVERE);
abort;
else
szMsg = sPath+"\\orant\\bin;"+sPath+"\\orant\\net80;"+sPath+"\\orant\\nlsrt133;";
// 追加oracle动态连接库的路径
if (WriteLine(nvFileHandle, szMsg) < 0) then
// 写文本出错
MessageBox ("WriteLine failed.", SEVERE);
endif;
endif;
else
szMsg = szTemp ;
// 追加oracle动态连接库的路径
if (WriteLine(nvFileHandle, szMsg) < 0) then
// 写文本出错
MessageBox ("WriteLine failed.", SEVERE);
endif;
endif;
CloseFile(nvFileHandle);
/*
AMIS.WORLD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 130.54.3.174)(PORT = 1521))
(CONNECT_DATA = (SID = ORCL))
)
*/
//配置orant\net80\admin\tnsnames.ora文件
OpenFileMode(FILE_MODE_APPEND); //追加模式
if (OpenFile (nvFileHandle, sPath+"\\orant\\net80\\admin", "TNSNAMES.ORA") < 0) then
//打开文件失败
if (CreateFile (nvFileHandle, sPath+"\\orant\\net80\\admin", "TNSNAMES.ORA") < 0) then
//创建失败
MessageBox ("TNSNAMES.ORA文件文件创建失败!", SEVERE);
abort;
else
// 追加oracle数据库服务配置
szMsg = "AMIS.WORLD =" ;
if (WriteLine(nvFileHandle, szMsg) < 0) then
MessageBox ("WriteLine failed.", SEVERE);
abort;
endif;
szMsg = " (DESCRIPTION =" ;
if (WriteLine(nvFileHandle, szMsg) < 0) then
MessageBox ("WriteLine failed.", SEVERE);
abort;
endif;
szMsg = " (ADDRESS = (PROTOCOL = TCP)(HOST = "+szIpAdress+")(PORT = "+szPort+"))" ;
if (WriteLine(nvFileHandle, szMsg) < 0) then
MessageBox ("WriteLine failed.", SEVERE);
abort;
endif;
szMsg = " (CONNECT_DATA = (SID = "+szSid+"))" ;
if (WriteLine(nvFileHandle, szMsg) < 0) then
MessageBox ("WriteLine failed.", SEVERE);
abort;
endif;
szMsg = " )" ;
if (WriteLine(nvFileHandle, szMsg) < 0) then
MessageBox ("WriteLine failed.", SEVERE);
abort;
endif;
endif;
else
// 追加oracle数据库服务配置
szMsg = "AMIS.WORLD =" ;
if (WriteLine(nvFileHandle, szMsg) < 0) then
MessageBox ("WriteLine failed.", SEVERE);
abort;
endif;
szMsg = " (DESCRIPTION =" ;
if (WriteLine(nvFileHandle, szMsg) < 0) then
MessageBox ("WriteLine failed.", SEVERE);
abort;
endif;
szMsg = " (ADDRESS = (PROTOCOL = TCP)(HOST = "+szIpAdress+")(PORT = "+szPort+"))" ;
if (WriteLine(nvFileHandle, szMsg) < 0) then
MessageBox ("WriteLine failed.", SEVERE);
abort;
endif;
szMsg = " (CONNECT_DATA = (SID = "+szSid+"))" ;
if (WriteLine(nvFileHandle, szMsg) < 0) then
MessageBox ("WriteLine failed.", SEVERE);
abort;
endif;
szMsg = " )" ;
if (WriteLine(nvFileHandle, szMsg) < 0) then
MessageBox ("WriteLine failed.", SEVERE);
abort;
endif;
endif;
CloseFile(nvFileHandle);return 0;
end;