请教 ADO ODBC数据源 DSN 问题
时间:2011-08-20
来源:互联网
我的DELPHI程序使用如下代码连接:
try
password := '111111';
user := '111111';
server := 'aaa-PC\SQLEXPRESS';
//server := 'aaa-PC';
database := 'ddddd';
conSQLstr := 'Provider=SQLOLEDB.1; Password='+Password+';Persist Security Info=True;User Id= '+user+ ';Data Source= '+server+ ';Initial Catalog= '+database+ ';';
conSQL := TADOConnection.Create(nil);
conSQL.ConnectionString := conSQLStr;
conSQL.Open;
result := true;
SQLConnectioned := true;
except
result := false;
SQLConnectioned := false;
end;
但,在客户端上运行,连接不上SQL SERVER,而必须在WINDOWS 的 ODBC数据源管理器 里添加上一个 DSN 才能连上?为什么添加上,成功连上,以后,将这个DSN删除掉程序又是正常可以连接的?
我的目的是,用户无须手动添加 DSN,可行吗?谢谢
try
password := '111111';
user := '111111';
server := 'aaa-PC\SQLEXPRESS';
//server := 'aaa-PC';
database := 'ddddd';
conSQLstr := 'Provider=SQLOLEDB.1; Password='+Password+';Persist Security Info=True;User Id= '+user+ ';Data Source= '+server+ ';Initial Catalog= '+database+ ';';
conSQL := TADOConnection.Create(nil);
conSQL.ConnectionString := conSQLStr;
conSQL.Open;
result := true;
SQLConnectioned := true;
except
result := false;
SQLConnectioned := false;
end;
但,在客户端上运行,连接不上SQL SERVER,而必须在WINDOWS 的 ODBC数据源管理器 里添加上一个 DSN 才能连上?为什么添加上,成功连上,以后,将这个DSN删除掉程序又是正常可以连接的?
我的目的是,用户无须手动添加 DSN,可行吗?谢谢
作者: oxboy 发布时间: 2011-08-20
教你一个非常简单的办法:
1、你在桌面上新建一个文本文件(不会创建?),然后将文件扩展名.txt改为.udl,然后双击该文件,打开一个“数据链接属性”对话框。
2、选择“提供程序”选项卡,再选择其中的“Microsoft OLE Provider for SQL Server”,然后“下一步”。
3、在“连接”选项卡下,输入SQL Server数据库服务器名(即: aaa-PC\SQLEXPRESS)与登录密码。再在下面的下拉列表中,选择你要连接的数据库。
4、点击“确定”
5、用“记事本”打开上述.udl文件,将其中的“Provider=SQLOLEDB.1;Persist Security。。。。。”赋值给conSQL.ConnectionString 就行了。
至此,你的目的达到了:用户无须手动添加 DSN 。
最后,建议你不要指定SQL Server数据库服务器名称,而改用(local),因为将你开发的程序安装到别的机器上时,默认的SQL Server数据库服务器名称跟你开发时所用的机器上的名称不同,这样又会出现无法连接数据库的错误。
1、你在桌面上新建一个文本文件(不会创建?),然后将文件扩展名.txt改为.udl,然后双击该文件,打开一个“数据链接属性”对话框。
2、选择“提供程序”选项卡,再选择其中的“Microsoft OLE Provider for SQL Server”,然后“下一步”。
3、在“连接”选项卡下,输入SQL Server数据库服务器名(即: aaa-PC\SQLEXPRESS)与登录密码。再在下面的下拉列表中,选择你要连接的数据库。
4、点击“确定”
5、用“记事本”打开上述.udl文件,将其中的“Provider=SQLOLEDB.1;Persist Security。。。。。”赋值给conSQL.ConnectionString 就行了。
至此,你的目的达到了:用户无须手动添加 DSN 。
最后,建议你不要指定SQL Server数据库服务器名称,而改用(local),因为将你开发的程序安装到别的机器上时,默认的SQL Server数据库服务器名称跟你开发时所用的机器上的名称不同,这样又会出现无法连接数据库的错误。
作者: zhoufs 发布时间: 2011-08-20
谢谢楼上的帮助,也学到了一种新的方法。但,此方法得出来的连接字符串与我本身程序的一样喔。
我的 SQL SERVER 是设置为 TCP/IP ALL端口,TCP动态 50000,TCP:1433
在客户端上,还是要手工在WINDOWS添加 DSN。而且,奇的是在服务器那机器里如果数据库服务器名使用
aaa-PC\SQLEXPRESS 可以直接连接上,但如果使用
aaa-PC 则要添加DSN才能接上。
为什么,DSN添加成功连接后,以后删除了也可以运行?
我的 SQL SERVER 是设置为 TCP/IP ALL端口,TCP动态 50000,TCP:1433
在客户端上,还是要手工在WINDOWS添加 DSN。而且,奇的是在服务器那机器里如果数据库服务器名使用
aaa-PC\SQLEXPRESS 可以直接连接上,但如果使用
aaa-PC 则要添加DSN才能接上。
为什么,DSN添加成功连接后,以后删除了也可以运行?
作者: oxboy 发布时间: 2011-08-20
使用连接字符串来连接数据库,是不需要建立DNS的,这个是毫无疑问的。
“在客户端上,还是要手工在WINDOWS添加 DSN”? 客户机上只需要指定所连接的数据库服务器的IP地址及数据库服务器名称,并保证与服务器网络连通就OK了,根本不需要创建什么DNS !
数据库服务器上倒是要进行一些设置:
1、SQL Server的登录方式:改为SQL Server方式,而不要用Windows NT 认准方式。
2、关闭防火墙。
“在客户端上,还是要手工在WINDOWS添加 DSN”? 客户机上只需要指定所连接的数据库服务器的IP地址及数据库服务器名称,并保证与服务器网络连通就OK了,根本不需要创建什么DNS !
数据库服务器上倒是要进行一些设置:
1、SQL Server的登录方式:改为SQL Server方式,而不要用Windows NT 认准方式。
2、关闭防火墙。
作者: zhoufs 发布时间: 2011-08-20
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28