问题描述:
开发环境:VB+SQL 2k+win2k server
数据源连接:ODBC
涉及问题:dtspkg.dll,sqlsvr32.dll
打包软件:wise installation v9.02
现象描述:
由于采用服务器为2k server+sqlserver2k ,程序中使用了sql server2k的dts导出。程序打包后,在win98上安装,发现安装前98能够用odbc连接到sql server2k的数据库上,但程序安装完毕后就不行了!后来自行解决了问题,问题症结在sqlsvr32.dll上。程序安装后,sqlsvr32.dll 变为460k,但如果用vb打包,安装后就为496k,将496k的文件替换460k的文件,98的odbc连通到了sql server的数据库上。但后来发现dts在98上不能创建对象,错误代码为492:activex can't create object.于是,在98上安装sql server2k的客户端,结果安装失败。分析问题后,得出问题还是出在496k的sqlsvr32.dll上,于是替换为461k的文件。sql server客户端安装完成。sql客户端注册服务器到server上。但是出现的问题是连接超时,而且odbc完全不能连接sql server.再次将496k的sqlsvr32.dll替换461k的那个,odbc通
但sql 客户端不通。dts 可以使用,但最后gopackage.excute的时候报错。说无法连接到sql server端!!
两难境地:
即要用odbc,也要用dts(dts导出excel).不知该如何解决这个问题阿。
开发环境:VB+SQL 2k+win2k server
数据源连接:ODBC
涉及问题:dtspkg.dll,sqlsvr32.dll
打包软件:wise installation v9.02
现象描述:
由于采用服务器为2k server+sqlserver2k ,程序中使用了sql server2k的dts导出。程序打包后,在win98上安装,发现安装前98能够用odbc连接到sql server2k的数据库上,但程序安装完毕后就不行了!后来自行解决了问题,问题症结在sqlsvr32.dll上。程序安装后,sqlsvr32.dll 变为460k,但如果用vb打包,安装后就为496k,将496k的文件替换460k的文件,98的odbc连通到了sql server的数据库上。但后来发现dts在98上不能创建对象,错误代码为492:activex can't create object.于是,在98上安装sql server2k的客户端,结果安装失败。分析问题后,得出问题还是出在496k的sqlsvr32.dll上,于是替换为461k的文件。sql server客户端安装完成。sql客户端注册服务器到server上。但是出现的问题是连接超时,而且odbc完全不能连接sql server.再次将496k的sqlsvr32.dll替换461k的那个,odbc通
但sql 客户端不通。dts 可以使用,但最后gopackage.excute的时候报错。说无法连接到sql server端!!
两难境地:
即要用odbc,也要用dts(dts导出excel).不知该如何解决这个问题阿。
解决方案 »
- VB 正则表达式的问题。
- 为什么提示无法找到指定DLL库文件"user32"中的输出文件getforegroundwindow?
- 【散分】英雄会人物小点评
- 我现在想做一个自动删除某个目录,不知道怎样用vb来做,高手请赐教
- 如何实现在结果中再查询?
- 如何控制richtextbox显示内容?(比如我想显示第3行的)
- vb基础题,请各位帮忙看看,谢谢
- vb还有用吗?我的困惑,怎样才能达到一个vb程序员的标准?什么水平公司才会聘我啊?
- help!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!再加100分。。。。。。。
- 怎么设置ADO的提供者
- 各位大师,请帮忙解决一下这个问题
- 请教MS SQL数据库连接,高分相送,不够再加!谢谢!
UP
UP
UP
UP
UP!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
你試試看.用我的方法,也許就沒有你那種問題存在拉.
我尝试一下mike820513的方法
up
next
up
next
msgbox "Give Me Same Points,Thank you!"
所以找不到DLL文件。
才会那样的啊!
不过,用ODBC的解决移动问题,偶到是有一种方法,当然不是用打包setup来配置ODBC这样的确会遇到很多问题,你可以试试改改代码,让程序在启动时,动态配置ODBC以便后面供你使用。
代码如下:'动态配置ODBC的API
Public Declare Function SQLConfigDataSource Lib "odbccp32" (ByVal hwnd As Long, ByVal wRequest As Integer, ByVal lpDriver As String, ByVal lpAttributes As String) As Boolean
下面的放到程序的启动部分
If False = SQLConfigDataSource(0, 1, "Microsoft Access Driver (*.mdb)", "dsn=Equipment;description=VBtest;dbq=" & App.Path & "\InfoDb.mdb;fil=MicrosoftAccess;defaultDIR=" & App.Path) Then
MsgBox "设置数据源出错!", , "错误"
End If
上面的第三个参数你选择Sql Sever的就行了
2、安装SQL2k客户端
3、制作安装程序的时候,只打包主程序(其他乱七八糟的DLL一概不要)因为打包程序经常出现错误判断,导致很多DLL混乱的。没有十足的把握,尽量不要把DLL也打包。
仅提供建议,仅供参考~~~~~~~~
----------------------------------------------
文件名 描述
----------------------------------------------
sqlresld.dll 卫星资源 DLL 装载器
dtsffile.dll DTS 平面文件 OLE DB 提供程序
dtsffile.rll DTS 资源文件
dtspkg.dll DTS 包
dtspkg.rll DTS 资源文件
dtspump.dll DTS 数据抽取
dtspump.rll DTS 资源文件
axscphst.dll DTS ActiveX 脚本主机
axscphst.rll DTS 资源文件
dtsrun.exe 用于执行 DTS 包的命令行实用程序
dtsrun.rll DTS 资源文件
sqlunirl.dll SQL Server Unicode/ANSI 转换层
custtask.dll DTS 自定义任务文件
custtask.rll DTS 自定义任务资源文件数据转换服务 (DTS) 安装说明
---------------------------------------------------------
下列文件须用 regsvr32.exe 实用程序注册:
dtsffile.dll
dtspkg.dll
dtspump.dll
axscphst.dllSqlunirl.dll 文件应驻留在系统文件夹中(即:\winnt\system32 或 \windows\system)。SQLREDIS.EXE(在sql安装盘中)
----------------------------------------------------------------------
此包中含有以下可再发行的组件:
----------------------------------------------------------------------
Jet 4.0
Jet OLE DB 4.0
用于桌面数据库的 ODBC 驱动程序
SQL Server 2000 网络库
SQL ODBC 驱动程序
SQL OLEDB 提供程序
SQL XML 提供程序
Microsoft 数据访问组件 (MDAC) 2.6 版
---------------------------------------
欢迎来我的小站
http://dreamworld2004.yeah.net
这是我负责的论坛
http://www.309s.com/list.asp?boardid=37
可以把系统升级为2000,(这个可是一个笨办法)或者装一下MDAC。2。7以下版本
在2000的软件在98使用要装mdac_type2.7
----------------------
重新用VB打包,重装sql 客户端,odbc和sql server 都没问题了。发现还是在打包问题上。
所以,以上的都有分了。
----------------------
出现新问题:
用dts导出时,报了一个错,
------------------------------
copy data from 结果 to 结果 步骤 failed
Microsoft ole db provider for sql server 用户 'Null' 登陆失败.原因:未与信任 sql server 连接相关联。
------------------------------
我的部分代码
'------------- a new connection defined below.
'For security purposes, the password is never scriptedSet oConnection = goPackage.Connections.New("SQLOLEDB.1")
oConnection.ConnectionProperties("Integrated Security") = "SSPI"
oConnection.ConnectionProperties("Persist Security Info") = True
oConnection.ConnectionProperties("Initial Catalog") = "HR"'数据库名
oConnection.ConnectionProperties("Data Source") = "22.196.72.1"'server地址
oConnection.ConnectionProperties("Application Name") = "DTS 导入/导出向导"
oConnection.Name = "连接1"
oConnection.ID = 1
oConnection.Reusable = True
oConnection.ConnectImmediate = False
oConnection.DataSource = "22.196.72.1" 'server 地址
oConnection.ConnectionTimeout = 60
oConnection.Catalog = "HR"
oConnection.UseTrustedConnection = True
oConnection.UseDSL = False
'If you have a password for this connection, please uncomment and add your password below.
oConnection.UserId = "HR" '特意添加的用户名
oConnection.Password = "HR" '特意添加得密码
'与odbc 及 数据库的用户名和密码都相同。
你换成SQL Server分配的用户名密码看看
1、2000 server 传向 98 或2000 ,客户端开通一个共享目录。权限设定为完全。
csdn中有详细的代码贴出。
2、打包时候,一定要用mdac 2.7以上的.mdac 2.6以下的就会出现本标题的问题!
3、oConnection.ConnectionProperties("Integrated Security") = "SSPI"
以及oConnection.ConnectionProperties("Persist Security Info") = True 注释掉!
98不支持 sspi,如果不注释的话,就会出现用户名为'NULL'使人莫名其妙!
并且 presist security info =true的话,就会报你无权限登陆!
'------------- a new connection defined below.
'For security purposes, the password is never scriptedSet oConnection = goPackage.Connections.New("SQLOLEDB") 'oConnection.ConnectionProperties("Persist Security Info") = True '注释掉
oConnection.ConnectionProperties("User ID") = "hr"
oConnection.ConnectionProperties("Initial Catalog") = "hr"
oConnection.ConnectionProperties("Data Source") = "22.196.72.1"
oConnection.ConnectionProperties("Application Name") = "DTS 导入/导出向导"
oConnection.Name = "连接1"
oConnection.ID = 1
oConnection.Reusable = True
oConnection.ConnectImmediate = False
oConnection.DataSource = "22.196.72.1"
oConnection.UserId = "hr"
oConnection.ConnectionTimeout = 60
oConnection.Catalog = "hr"
oConnection.UseTrustedConnection = False
oConnection.UseDSL = False
'If you have a password for this connection, please uncomment and add your password below.
oConnection.Password = "hr"