请问大家一个问题,我用VB写了一个程序,数据用了SQL Server 2000的,数据库是网络的,我自己机子安装了SQL,程序能够运行.但是,当我把我的客户端装到一个没有安装SQL数据的机子上时,当运行时系统提示"没发现数据源",请问你能够帮我解决吗?打包是用了SetupFactory7.0.谢谢!!谢谢帮忙!!

解决方案 »

  1.   

    客户端如果是和服务器在一个Lan内,保证客户端能访问服务器,如果你用ADO访问,SetupFactory7.0已经把需要的文件打包进去了,没发现数据源可能是你的连接字符串有问题,或者是网络问题,你可以检查一下字符串或网络
      

  2.   

    连接字符串没有问题,因为我用的是网络数据(虚拟主机),我要求所有未装SQL终端,都能够,运行程序.
     我了解到,要包含以下文件,但是还是出错。
     
    如果你使用的是SQL SERVER
    则下面文件是必须的:
    Sqloledb.dll C:\Program Files\Common Files\System\Ole DB
    Dbmsvinn.dll Windows system folder 
    Dbmsshrn.dll Windows system folder 
    Dbmsadsn.dll Windows system folder 
    Dbmsrpcn.dll Windows system folder 
    Dbnmpntw.dll Windows system folder 
    Dbmssocn.dll Windows system folder 
      

  3.   

    MSDE自动安装使用方法  一、           制作自动安装的SQL已制作完成,程序放在:\\工程项目\安装盘制作\MSDE    说明:自动安装目的是在MSDE安装程序执行时不出现画面,并且自动按配置好的步骤安装;          自动配置文件UNATTEND.ISS的制作方法:用SQL SERVER安装程序开始安装,选择“高级选项”,再选择“无人值守”,接下来为安装所做的选择和配置均被存入c:\windows\SETUP.ISS文件中,该文件就是上面提到的UNATTEND.ISS。          制作为无人值守文件后,执行其中的SETUP.bat文件就能自动安装SQL。只要能在我们应用程序的安装盘中有办法自动执行该文件中的内容即可自动安装SQL。 二、           修改SETUP1.exe为了VB工程打包后,安装程序除了正常执行应用程序的安装功能外,另外再自动执行我们制作的无人值守SQL安装程序,须修改VB的打包工具。修改方法如下:A、打开c:\program files\Microsoft visual studio\vb98\wizards\pdwizard\setup1目录下的setup1工程B、 在basesetup1模块中的exitsetup过程找到以下语句:                Case intExitCod                  ………                Case Else C、在Case Else前增加调动SQL自动安装的语句D、编译成EXE文件E、 将编译好的EXE文件复制到上级目录:c:\program files\Microsoft visual studio\vb98\wizards\pdwizard目前已编译好的程序放在\\CHANCE-SERVER\工程项目\安装盘制作\SETUP1 三、           制作数据库文件因本MSDE是基本SQL SEREVER7的,故须有SQL SERVER7下将应用程序所用的数据库备份成一个文件名(如:DBBACK)。  四、           打包A、工程打印包时,须将SQL的自动安装程序(msde86.exe、unattend.iss)打到包内,打包时指定该2程序的解压路径为:          $(WinSysPath)B、将制作的数据库备份文件(DBBACK)也打到包内,打包时指定该文件的解压路径为:          $(AppPath)C、将应用程序的配置文件、使用说明书等同时打到包内,打包时指定该文件的解压路径为:          $(AppPath)  五、           安装应用程序安装时,执行完标准的安装步骤后,会提问:是否安装数据库?若选择“是”则自动安装SQL(对已有SQL SERVER的机器千万不要安装)。    说明:有时制作的安装程序在Windows2000下安装时,复制完8个初始化程序后,提示“程序过时”要求重新启动再安装。但重新启动后还是同样的问题,无法安装。此时修改安装包中的SETUP.lst文件,在:[email protected],$(WinSysPath),,$(Shared),10/2/00          前增加 REM ,这样重新安装时,只复制前2个文件,安装程序能顺利执行。     六、           运行程序程序安装后,应用程序所须的数据库并未被装入SQL SERVER。应在我们编写的VB的应用程序中增加自动向SQL SERVER添加数据库的功能。    实现方法:每次启动应用程序时,判断SQL SERVER数据库中是否存在我们要的数据库,若无则执行下以操作:1、    将备份文件复制到MASTER数据库对应的目录下;2、    使用数据恢复命令将MASTER目录下的备份文件恢复到指定的数据库名中。                  程序清单见下页:  ===============本函数须在连接数据库前使用================ ===============须在工程中应用SQLDMO================ Public Function sCopyMDF(sSvrName As String, sDBName As String, sUID As String, sPWD As String, sMDFName As String) As String参数说明:  sSvrName:服务器名sDBName :数据库名sUID :用户名sPWD :密码, sMDFName :数据库备份文件名 Dim Fso As Scripting.FileSystemObjectDim strMessage As StringDim db As VariantDim fDataBaseFlag As BooleanDim X, OsvrOn Error Resume Next    sCopyMDF = ""    fDataBaseFlag = False    Set Fso = CreateObject("Scripting.FileSystemObject")    Set Osvr = CreateObject("SQLDMO.SQLServer")    Osvr.Connect sSvrName, sUID, sPWD    Osvr.Start True, sSvrName, sUID, sPWD    X = Osvr.Databases.Count  '如果失败,DMO 需要进行初始化    '通过在本地 MSDE 服务器上循环检查所有数据库名称,    '检查 DemoDatabase 是否存在于该服务器。    For Each db In Osvr.Databases        If db.Name = sDBName Then '该数据库存在            fDataBaseFlag = True            Exit For '退出循环        End If    Next    If Not fDataBaseFlag Then '不存在名为 DemoDatabase 的数据库            Dim oRestore As New SQLDMO.Restore            oRestore.Action = SQLDMORestore_Database            oRestore.Database = sDBName         Fso.CopyFile App.Path & "\" & sMDFName, _             Osvr.Databases("master").PrimaryFilePath & sMDFName, True             oRestore.Files = Osvr.Databases("master").PrimaryFilePath & sMDFName                        oRestore.ReplaceDatabase = True        ‘判断有否”C:\mssql7\Data\”目录,没有则要先建此目录            oRestore.SQLRestore Osvr        Else        sCopyMDF = sMDFName & " 退出 MSDE 服务器"    End IfExitCopyMDF:    Osvr.Disconnect    Set Osvr = NothingExit FunctionsCopyMDFTrap:    If err.Number = -2147216399 Then  'DMO 需进行初始化        Resume Next    Else        sCopyMDF = err.Description    End If    Resume ExitCopyMDFExit FunctionEnd Function
      

  4.   

    你去微软网站下载一个mdac_typ.exe,Microsoft Data Access Compents 2.8,让它在安装的时候一同安装。