我有一个在我们的MS SQL Server 2000数据库服务器上运行的DTS包,并且需要一种方法让用户从他们自己的机器上执行它. (该包创建文件,然后由我的应用程序传输到客户端计算机.)我已在应用程序中包含“Microsoft DTSPackage对象库”COM引用,但在第一步时仍然出现“无效类字符串”错误包执行.我还尝试注册SQL Server 2000光盘的redist.txt文件中指定的所有DLL.任何想法或建议将不胜感激. DTS包非常简单.它只是将SQL数据库中的数据复制到Visual FoxPro表中.我执行包的代码如下(其中大部分来自Microsoft的知识库文章:
http://support.microsoft.com/kb/321525).
Dim pkg As DTS.Package pkg = New DTS.Package Dim cpContainer As System.Runtime.InteropServices.ComTypes.IConnectionPointContainer cpContainer = CType(pkg,System.Runtime.InteropServices.ComTypes.IConnectionPointContainer) Dim cpPoint As System.Runtime.InteropServices.ComTypes.IConnectionPoint Dim PES As PackageEventsSink = New PackageEventsSink Dim guid As Guid = New Guid("10020605-EB1C-11CF-AE6E-00AA004A34D5") cpPoint = Nothing cpContainer.FindConnectionPoint(guid,cpPoint) Dim intCookie As Integer cpPoint.Advise(PES,intCookie) pkg.LoadFromSQLServer(DTS_SERVER_NAME,DTSSQLServerStorageFlags.DTSSQLStgFlag_UseTrustedConnection,dtsPassword,dtsName,Nothing) If pkg Is Nothing Then Throw New ApplicationException("The DTS Package could not be loaded from the SQL Server.") Dim pkgStep As DTS.Step For Each pkgStep In pkg.Steps pkgStep.Execute() Next pkg.UnInitialize() pkg = Nothing cpPoint.Unadvise(intCookie) cpPoint = Nothing cpContainer = Nothing PES = Nothing
解决方法
如果在用户PC上安装完整的SQL Enterprise Manager客户端工具,作为测试,他们可以成功运行吗?也许你错过了一些要求.请记住,DTS包本身将在用户的PC上本地执行,而不是在服务器上执行.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。