希望对你有所帮助:
http://www.csdn.net/expert/topic/605/605112.xml?temp=.5527155
http://www.csdn.net/expert/topic/642/642426.xml?temp=.1544001
http://www.csdn.net/expert/topic/605/605112.xml?temp=.5527155
http://www.csdn.net/expert/topic/642/642426.xml?temp=.1544001
解决方案 »
- 紧急!!!如何在TImgEdit控件上的图像上添加文本
- 谁能告诉这个语句是什么意思
- ¥¥求教¥¥ 关于搜索数据库后结果的显示
- 在线升级的实现问题--应用文件的压缩何解压缩
- 如何返回输入键盘的代码?以及如何把asc码换成字符?
- 程序調試和發布的問題,請指教
- delphi记录的刷新,为什么在运行过程中,有时可以更新为最新,有时不行要等重新打开时,才刷新
- 怎么實現用快捷鍵實現調用程序
- 我想用delphi调用一个用VC编写的DLL,并且得到其发出的消息数据(消息数据结构已知),不知是否可行???给分!!!
- 存儲過程小問題
- 在Dll中能否象在EXE程序中一样,调用时自动创建一个数据Form?
- !!!!!!!!!!!!!!!setkeyboardstate!!!!!!!!!!!
1、通过“控制面板”中的“数据源(ODBC)”建立与ORACLE连接的ODBC源2、打开注册表(REGEDIT)查找您将要建立的ODBC源名称(注:您所建立的ODBC源名称在注册表是树节点)2、请将树节点中的内容记下来(可以相应的修改)3、用编程工具开发自动注册ODBC源,以下以DELPHI为例:
Function OpRegister(Path: String; ValuesName: String; OpearteStyle: Integer = 0; Values: String = ''): String;
Var
Reg: TRegistry; //声明
Begin
OpRegister := '';
Try
Reg := TRegistry.Create; //建立
Reg.RootKey := HKEY_LOCAL_MACHINE; //定义根
Reg.OpenKey(Trim(Path), True); //打开主节点,如果节点不存在,则建立
If OpearteStyle = 0 Then
OpRegister := Reg.ReadString(Trim(ValuesName)) //读取节点内指定的名称值
Else
Reg.WriteString(Trim(ValuesName), Trim(Values)); //将变量值写及节点内
Finally
Reg.CloseKey;
Reg.Free;
End;
End;
您可以相应修改。
记住:uses Registry
在HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI下添加odbc信息就是system dsn,在HKEY_CURRENT_USER\Software\ODBC\ODBC.INI下添加就是user dsn!
2.说明:
在这两行中
if OpenKey('Software\ODBC\ODBC.INI\MyOracleConn',True) then
begin
WriteString( 'Driver', 'sqo32_73.dll' );
WriteString( 'Server','jf');
end
'sqo32_73.dll'值取决于你的oracle版本,不要照抄我的,如果你不知道可以到注册表HKEY_LOCAL_MACHINE->Software->odbc->ODBCINST.INI->oracle***下找driver的键值,我的是:C:\ORAWIN95\ODBC250\sqo32_73.dll,你只需要把最后这个dll文件名称添入WriteString( 'Driver', 'sqo32_73.dll' )中即可!
第二句WriteString( 'Server','jf')中jf是我在sql net easy config中配置的别名,你把它改成你的就可以了,OK!3.代码:
procedure TForm1.Button1Click(Sender: TObject);
var
MyRegister:TRegistry;
begin
try
MyRegister := TRegistry.Create;
with MyRegister do
begin
RootKey:=HKEY_LOCAL_MACHINE; try
if OpenKey('Software\ODBC\ODBC.INI\MyOracleConn',True) then
begin
WriteString( 'Driver', 'sqo32_73.dll' );
WriteString( 'Server','jf');
end
except
Raise Exception.Create('向注册表写入自定义dsn失败!');
exit;
end;
CloseKey;
try
if OpenKey('Software\ODBC\ODBC.INI\ODBC Data Sources',false) then
begin
WriteString('MyOracleConn','Oracle73 Ver 2.5');
end
except
Raise Exception.Create('向注册表ODBC Data Sources写入键值失败!');
exit;
end;
CloseKey;
Application.MessageBox('成功添加Oracle数据源!','正常',MB_OK);
end;
finally
MyRegister.Free;
end;
end;