一个数据库程序已经在本机上测试通过了,使用文件dsn连接数据库,如下:
ConnectString = "FileDSN=SysDB.dsn;UID=sa;PWD=mypassword"
Set cnn = New ADODB.Connection
cnn.Open ConnectString
现在程序要交给用户测试,但用户机器上的数据源、用户名和密码配置是不同的,怎样才能做到送给他们的程序不用修改就可以正确与数据库连接?
请大虾最好给出例子代码。
ConnectString = "FileDSN=SysDB.dsn;UID=sa;PWD=mypassword"
Set cnn = New ADODB.Connection
cnn.Open ConnectString
现在程序要交给用户测试,但用户机器上的数据源、用户名和密码配置是不同的,怎样才能做到送给他们的程序不用修改就可以正确与数据库连接?
请大虾最好给出例子代码。
想修改时,将ini文件的内容修改即可。程序不用变
直接在odbc里面设为以windows用户登陆?那在程序里怎么相应的改?我当时装数据库时是使用用户名和密码验证,现在能改为以windows用户登陆吗?
1)因为你自己机器上肯定有数据源拉,我不知道你是采用什么样的数据库,如果是MS SQL就很方便了,只要你自己的SQL Server开着就行.
2)在用户机器上配置ODBC数据源,在数据源上写入你的服务器IP,采用SQL认证,用Windows认证会有麻烦.然后在客户端配置采用TCP/IP,默认的是按名称.
最后你可测试一下,是否能连的上数据库,我想应该可以的.
'读写INI文件
Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
'读取INI文件的函数
Public Function fGetIni(ByVal sKey$ _
, ByVal sData$ _
, Optional ByVal sDefaltValue$ = "" _
, Optional ByVal sJm As Boolean = True _
, Optional ByVal sIniFileName$ = "" _
) As String
Dim iStr As String * 256, iReturn$
If sIniFileName = "" Then sIniFileName = App.Path & "\config.ini"
GetPrivateProfileString sKey, sData, "{}", iStr, 256, sIniFileName
iReturn = Left(iStr, InStr(iStr, Chr(0)) - 1)
If iReturn = "{}" Then
fGetIni = sDefaltValue
Else
iReturn = Mid(iReturn, 2, Len(iReturn) - 2)
fGetIni = iReturn
End If
End Function'保存INI文件的过程
Public Sub sSetIni(ByVal sKey$ _
, ByVal sData$ _
, ByVal sValue$ _
, Optional ByVal sJm As Boolean = True _
, Optional ByVal sIniFileName$ = "")
If sIniFileName = "" Then sIniFileName = App.Path & "\config.ini"
WritePrivateProfileString sKey, sData, "{" + sValue + "}", sIniFileName
End Sub
函数的声明
Public Declare Function SQLConfigDataSource Lib "odbccp32" (ByVal hwnd As Long, ByVal wRequest As Integer, ByVal lpDriver As String, ByVal lpAttributes As String) As BooleanIf SQLConfigDataSource(0, 1, "Microsoft Access driver (*.mdb)", "dsn=SysDB;description=系统数据源;dbq=" & App.Path & "\InfoDb2000.mdb;fil=MicrosoftAccess;defaultDIR=" & App.Path) = False Then
MsgBox "设置数据源出错!", , "错误"
End默认就把用户和密码设为空然后使用ODBC
Private Sub Form_Load()
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordsetcon.Open "DSN=SysDB;UID="",PWD="""
rs.Open SqlStr, con, adOpenKeyset, adLockOptimistic
End Sub如果你非要设置用户和密码
最好是设计一个输入用户名与密码的界面,让用户输入