回复人: softwing(无人喝彩) ( ) 信誉:100 2002-05-27 22:06:00 得分:0
需要操纵注册表,例子如下:
这儿指明安装了那些odbc驱动程序 HKEY_LOCAL_MACHINE\ODBC\ODBCINST.INI\
要添加的odbc就加在这了 HKEY_LOCAL_MACHINE\ODBC\ODBC.INI
1、先在这加上一个odbc数据源名ab ,指明类型
HKEY_LOCAL_MACHINE\ODBC\ODBC.INI\ODBC Data Sources
ab sqlserver
2、在HKEY_LOCAL_MACHINE\ODBC\ODBC.INI\ 中写入ab的参数
HKEY_LOCAL_MACHINE\ODBC\ODBC.INI\ab
Database abcd //数据库
Driver C:\WINNT\System32\sqlsrv32.dll //驱动程序
读HKEY_LOCAL_MACHINE\ODBC\ODBCINST.INI\驱动程序名\driver 就是了
LastUser sa //登录用户名
Server 192.168.8.163
具体的数据库自己参照已建好的odbc数据源来写注册表就行了
procedure button1click(sener:tobject); //服务器
var
reg: TRegistry;
Driver: string;
begin
//建立和更新odbc数据源
//查找ODBCINST.INI键,如果sql server的驱动程序没有安装,则提示退出
//如果存在,则进行配置
reg := TRegistry.Create;
try
with reg do
begin
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey('Software\ODBC\ODBCINST.INI\SQL Server', False) then
begin //如果存在sql server 驱动程序
Driver := ReadString('Driver');
CloseKey;
if OpenKey('Software\ODBC\ODBC.INI\ODBC Data Sources', True) then
begin //注册一个DSN名称
WriteString(Edit_DataSource.Text, 'SQL Server');
end
else
begin //创建键值失败
Application.MessageBox(pchar('在创建DSN' + edit_datasource.text + '时发生错误'), '创建ODBC数据源失败', MB_ICONINFORMATION or MB_OK);
exit;
end;
CloseKey;
//end 建立dsn
if OpenKey('Software\ODBC\ODBC.INI\' + Edit_DataSource.Text, True) then
begin
WriteString('Database', Edit_DataSource.Text);
WriteString('Driver', Driver);
WriteString('LastUser', Edit_LoginUser.Text);
WriteString('Server', Edit_Ip.Text);
end
else
begin //创建键值失败
Application.MessageBox(pchar('在创建DSN' + edit_datasource.text + '时发生错误'), '创建ODBC数据源失败', MB_ICONINFORMATION or MB_OK);
exit;
end;
CloseKey;
end
else
Application.MessageBox('在当前机器上没有安装 SQL Server的ODBC 驱动程序!,请安装相应的驱动程序', '驱动程序出错', MB_ICONINFORMATION or MB_OK);
CloseKey;
end;
finally
reg.Free;
end;
end;
需要操纵注册表,例子如下:
这儿指明安装了那些odbc驱动程序 HKEY_LOCAL_MACHINE\ODBC\ODBCINST.INI\
要添加的odbc就加在这了 HKEY_LOCAL_MACHINE\ODBC\ODBC.INI
1、先在这加上一个odbc数据源名ab ,指明类型
HKEY_LOCAL_MACHINE\ODBC\ODBC.INI\ODBC Data Sources
ab sqlserver
2、在HKEY_LOCAL_MACHINE\ODBC\ODBC.INI\ 中写入ab的参数
HKEY_LOCAL_MACHINE\ODBC\ODBC.INI\ab
Database abcd //数据库
Driver C:\WINNT\System32\sqlsrv32.dll //驱动程序
读HKEY_LOCAL_MACHINE\ODBC\ODBCINST.INI\驱动程序名\driver 就是了
LastUser sa //登录用户名
Server 192.168.8.163
具体的数据库自己参照已建好的odbc数据源来写注册表就行了
procedure button1click(sener:tobject); //服务器
var
reg: TRegistry;
Driver: string;
begin
//建立和更新odbc数据源
//查找ODBCINST.INI键,如果sql server的驱动程序没有安装,则提示退出
//如果存在,则进行配置
reg := TRegistry.Create;
try
with reg do
begin
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey('Software\ODBC\ODBCINST.INI\SQL Server', False) then
begin //如果存在sql server 驱动程序
Driver := ReadString('Driver');
CloseKey;
if OpenKey('Software\ODBC\ODBC.INI\ODBC Data Sources', True) then
begin //注册一个DSN名称
WriteString(Edit_DataSource.Text, 'SQL Server');
end
else
begin //创建键值失败
Application.MessageBox(pchar('在创建DSN' + edit_datasource.text + '时发生错误'), '创建ODBC数据源失败', MB_ICONINFORMATION or MB_OK);
exit;
end;
CloseKey;
//end 建立dsn
if OpenKey('Software\ODBC\ODBC.INI\' + Edit_DataSource.Text, True) then
begin
WriteString('Database', Edit_DataSource.Text);
WriteString('Driver', Driver);
WriteString('LastUser', Edit_LoginUser.Text);
WriteString('Server', Edit_Ip.Text);
end
else
begin //创建键值失败
Application.MessageBox(pchar('在创建DSN' + edit_datasource.text + '时发生错误'), '创建ODBC数据源失败', MB_ICONINFORMATION or MB_OK);
exit;
end;
CloseKey;
end
else
Application.MessageBox('在当前机器上没有安装 SQL Server的ODBC 驱动程序!,请安装相应的驱动程序', '驱动程序出错', MB_ICONINFORMATION or MB_OK);
CloseKey;
end;
finally
reg.Free;
end;
end;
解决方案 »
- QQ显IP代码
- 调用Delphi生成的DLL,退出程序后出现内存不能read!
- to : 小和
- [Error]: Undeclared identifier: 'TQRExportFilter' ,我要引用哪个类啊???(Quick Report)
- 我要做一个P2P程序,能同时能下载多个软件和同时响应多个用户我我这里下载,请高手给我一点思路,我用哪个控件做方便,我用IdTCPServer,
- 急!D7的建立Corba对象的向导无法执行是什么原因?
- 如何捕抓在一个文件夹中存放一个文件的事件?
- 格式字符串問題!
- 表单上有好些个ADO控件,在关闭此表单时是否需要手动关闭这些控件呢?
- 请教如何用程序动态地将ACCESS数据库中某表某字段的索引属性设为“有索引,有重复”?
- 一个我认为比较棘手的SQL问题(字段值分离统计查询)
- 如何使Delphi程序在光盘中直接运行?
"Provider={Microsoft Acess Database *.mdb},...,USER=me,PWD=a"
中间有一部分我也记不清楚了。
在BDE的Database控件中有一个Parameter属性,你把这个ODBC连接字符串加上去就行了。