高分求救一个ADO和DSN的问题,=============〉

Soft21 2002-03-14 10:09:34
1. 我用ODBC配置了一个DSN,它的连接字符串如下(在程序中看到):
Cn = 'Provider=MSDASQL.1;Password=yangzibin;User ID=sa;Data Source=SalesExpert;Extended Properties="DSN=SalesExpert;UID=sa;PWD=yangzibin;APP=Visual Basic;WSID=WISDOMLINMX;DATABASE=SalesExpert20020307"'

2. 可是,我向一个存储过程中一个参数传入一串XML字符串参数时,它却老报错
错误信息为“[Microsoft][ODBC SQL Server Driver]String data, right truncation”

3. 我查了一下MSDN,它也明确告诉我用这种方式有可能不能被完全传进去。

4. 我想换一种连接方式,利用Oledb,但我好像必须得通过该DSN得到数据库的Server和DataBase名称,是必须的吗?

5. 问题是:我如何从该DSN中得到数据库服务器所在的IP或名称呢?

6. 或者您有其它的意见?

7. 来者有分.


...全文
63 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Soft21 2002-03-28
  • 打赏
  • 举报
回复
OK,all over
xhuangp 2002-03-25
  • 打赏
  • 举报
回复
你只要传UDL文件名就可以啦.

xhuangp 2002-03-25
  • 打赏
  • 举报
回复
换一种方法,
用UDL文件试试看.

SAMPLE:
[oledb]
; Everything after this line is an OLE DB initstring
Provider=SQLOLEDB.1;Password=;Persist Security Info=True;User ID=sa;Initial Catalog=SalesExpert20020307;Data Source=172.16.4.1
warning 2002-03-25
  • 打赏
  • 举报
回复
同意楼上的意见,变量宽度设大一些
N_chow 2002-03-25
  • 打赏
  • 举报
回复
4、我想應該不用再通過DSN來得到Server名字跟Database的名稱,用SQL里的@@ServerName跟DB_name就可以了。
N_chow 2002-03-25
  • 打赏
  • 举报
回复
問題可能是出在你的存儲過程的參數上,
你試著把參數的寬度設長一些,如:
@strParameter varchar(8000)
8992026 2002-03-25
  • 打赏
  • 举报
回复
呵呵,给分我吧!
Soft21 2002-03-25
  • 打赏
  • 举报
回复
没人跟进,我怎么结贴啊?
Soft21 2002-03-14
  • 打赏
  • 举报
回复
补充:
我用Oledb连接,需要的连接字符串如下:
"provider=sqloledb;server=172.16.4.1;UID=sa;PWD=yangzibin;database=SalesExpert20020307"
Soft21 2002-03-14
  • 打赏
  • 举报
回复
大家怎么不回答呢?

一种方法如下:
1. 利用DSN创建一ADODB.Connection对象Cn(在我的项目中,原来就有)

2. 利用cn.Properties.item("Server Name").Value就可以得到该DSN对应的数据库所在的服务器的计算机名了

3. 再建立一个基于Oledb的连接对象

把问题想得太复杂了,我甚至想用Win32函数了,呵呵

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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