如何在程序中控制设置ODBC数据源的用户数据源?

wm 2000-04-25 06:43:00
请问各位高手:我是Delphi初学者,我在数据库开发中使用了通过ODBC连接数据
库的方法,但程序移植到别的机器上时,每次都需要重新设置ODBC的用户数据源,
很麻烦。我想有没有方法通过编程直接在程序中自动设置ODBC的用户数据源,还
请各位老师不吝赐教!
...全文
155 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wm 2000-04-28
  • 打赏
  • 举报
回复
Jilimi:这个问题在你的指导下我终于解决了,谢谢你!以后还请多多指教哟!
jilimi 2000-04-25
  • 打赏
  • 举报
回复
上面的const应是:
const
CreateDsnErr:TCreateDnsError =('增加ODBC数据源成功!','增加ODBC数据源失败!','没有安装SQL Server的驱动程序!','读取ODBC驱动程序失败!');
jilimi 2000-04-25
  • 打赏
  • 举报
回复
下面是我写的一个函数,供你参考。请在Uses子句中增加 registry 的引用。
const
CreateDsnErr:TCreateDnsError =('增加ODBC数据源成功!','增加ODBC数据源失败!',

Function CreateDsn(const FDSN,FServer,FUser:String):Integer;
var
RegisterTemp:TRegistry;
s:string;
begin
RegisterTemp:=TRegistry.Create;
with RegisterTemp do
begin
RootKey:=HKEY_LOCAL_MACHINE;
//首先判断此DSN是否已经存在,如在,则不用继续下去
if OpenKey('Software\ODBC\ODBC.INI\'+FDSN,False) then
begin
CloseKey;
Result:=0;
Free;
exit;
end;
CloseKey;
//判断SQL Server的驱动程序是否已经安装
If OpenKey('Software\ODBC\ODBCINST.INI\ODBC Drivers',False) then
begin
s:=ReadString('SQL Server');
if UpperCase(S)<>'INSTALLED' then
begin
CloseKey;
Result:=2;
Free;
exit;
end;
end
else
begin
CloseKey;
Result:=3;
Free;
exit;
end;
CloseKey;
//寻找SQL Server的驱动程序路径
If OpenKey('Software\ODBC\ODBCINST.INI\SQL Server',False) then
begin
s:=ReadString('Driver');
if S='' then
begin
CloseKey;
Result:=2;
Free;
exit;
end;
end
else
begin
CloseKey;
Result:=2;
Free;
exit;
end;
CloseKey;
//注册一个DSN名称
If OpenKey('Software\ODBC\ODBC.INI\ODBC Data Sources',True) then
WriteString(FDSN,'SQL Server')
else
begin
CloseKey;
Result:=1;
Free;
exit;
end;
CloseKey;
if OpenKey('Software\ODBC\ODBC.INI\'+FDSN,True) then
begin
WriteString('Driver',S);
WriteString('LastUser',FUser);
WriteString('Server',FServer);
end
else
begin
CloseKey;
Result:=1;
Free;
exit;
end;
CloseKey;
Free;
end;
Result:=0;
end;

在需要调用的地方:
i:=CreateDsn(FDSN,FServer,FUser);
if i<>0 then
begin
showmessage(CreateDsnErr[i]);
exit;
end;
wm 2000-04-25
  • 打赏
  • 举报
回复
给agui:能举个例子说明吗?
光明山人 2000-04-25
  • 打赏
  • 举报
回复
修改注册表:
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI

先看看你的是什么,记录下来。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧