我现在设置数据源,是在控制面版中的数据源管理器中手工设置,操作起来非常麻烦,特别是当程序包让客户安装的时候,许多人并不了解如何设置.现想让程序启动时,自动检测并安装数据源,如何才能做到?(具体怎么做?)谢谢各位!

解决方案 »

  1.   


    Private Const ODBC_ADD_DSN = 1 ' Add data sourcePrivate Const ODBC_CONFIG_DSN = 2 ' Configure (edit) data sourcePrivate Const ODBC_REMOVE_DSN = 3 ' Remove data sourcePrivate Const vbAPINull As Long = 0& ' NULL Pointer
    Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" _
    (ByVal hwndParent As Long, ByVal fRequest As Long, _
    ByVal lpszDriver As String, ByVal lpszAttributes As String) As Long
    Public Sub CreateDSN(sDSN As String)Dim nRet As LongDim sDriver As StringDim sAttributes As StringsDriver = "Oracle73 Ver 2.5"sAttributes = "Server=Oracle8" & Chr$(0)sAttributes = sAttributes & "DESCRIPTION=" & sDSN & Chr$(0)'sAttributes = sAttributes & "DSN=" & sDSN & Chr$(0)sAttributes = sAttributes & "DATABASE=DBFinance" & Chr$(0)sAttributes = sAttributes & "Userid=Scott" & Chr$(0)'sAttributes = sAttributes & "PWD=myPassword" & Chr$(0)DBEngine.RegisterDatabase sDSN, sDriver, True, sAttributes '注一'nRet = SQLConfigDataSource(vbAPINull, ODBC_ADD_DSN, sDriver, sAttributes) '注二End Sub
    Public Sub DeleteDSN(sDSN As String)Dim nRet As LongDim sDriver As StringDim sAttributes As StringsDriver = "Oracle73 Ver 2.5"sAttributes = sAttributes & "DSN=" & sDSN & Chr$(0)nRet = SQLConfigDataSource(vbAPINull, ODBC_REMOVE_DSN, sDriver, sAttributes)End Sub'DSN test测试:
    Private Sub Command1_Click()CreateDSN "Test"End Sub
    Private Sub Command2_Click()DeleteDSN "Test"End Sub
      

  2.   

    建议不要使用ODBC设置,做一个ADO连接串,用.INI存储起来,在使用时调用即可,使用起来也方便,针对不会设置的用户很有效.
    ------------
    pSetLink = "driver={SQL Server};" & "server=" & DBServerIP & ";uid=" & DBUserId & ";pwd=" & DBPassWord & ";database=" & DBDataBase & ""其中pSetLink是田连接串变量名;DBServerIP,数据服务器地址;DBUserId,数据库登录名;DBPassWord,密码;DBDataBase,数据库名;
    DBServerIP,DBUserId,DBPassWord,DBDataBase用以下语句取出
    ----------------------------------------------
    FileName = App.Path & "\Set" & "\" & "Setup.ini"
    File = FreeFileOpen FileName For Input As #File
        Line Input #File, line01
        Line Input #File, nSetInfo1
        Line Input #File, nSetInfo2
        Line Input #File, line04
        Line Input #File, line05
        Line Input #File, nSetWeb1
        Line Input #File, nSetWeb2
        Line Input #File, Line08
        Line Input #File, Line09
        Line Input #File, nSetWeb3
        Line Input #File, nSetWeb4Close #File
    ----------------------------------------------
    连接的时候使用以下即可,很方便:
    Dim strSQL As String
    strSQL="select * from main"
    Adodc1.ConnectionString = pSetLink
    Adodc1.RecordSource = strSQL
    Adodc1.Refresh
    'strSQL为数据操作语句.
    '上面是用ADODB控件时的引用,当然还可以用ADO来实现.上面只是例子,如果你的程序已经用ODBC数据源的方式写好了,建议还是改了的好,因为有好些用户可不会设置ODBC.好,完了,记得给我分啊.如果有问题可以MSN:[email protected].