能不能不用配置odbc,不安装sqlserver,如何直接用ado连接sqlserver数据库!

时间:2022-09-16 21:55:16
能不能不用配置odbc,不安装sqlserver,如何直接用ado连接sqlserver数据库!

请各位高手赐教。
如果能做请给些相关资料或是代码,多谢!

19 个解决方案

#1


试验成功后立刻给分,在线等待!

#2


SQL Server是一定要装的
至少也要装个简化版的MSDE

DSN less:
Connect = "Provider=SQLOLEDB;" & _
        "Data Source=myServerName;" & _
        "Initial Catalog=myDatabaseName;" & _
        "User ID=myUsername;" & _
        "Password=myPassword;"


oConn.Open "Driver={SQL Server};" & _ 
          "Server=MyServerName;" & _
         "Database=myDatabaseName;" & _
         "Uid=myUsername;" & _
          "Pwd=myPassword;"

#3


Public gobjDatabase As New ADODB.Connection

'//读archive.ini
Public Const gconIniPath = "WuYePro.ini"
Private mcolINI             As New Collection
Private mblngf_strReadINI   As Boolean


'========*=========*=========*=========*=========*=========*=========*=========*
'== 功    能:提取数据库表路径
'== 参    数:strString
'== 返 回 值:strString
'== 过程性质:自定义过程
'== 作    者:郭东风/2001年11月27日
'== 修改记事:
'========*=========*=========*=========*=========*=========*=========*=========*
Public Sub gConnectDatabase()
   '//单机版
    Dim strsql              As String
    Dim strDbServer         As String               '//数据库服务器名
    Dim strDB               As String               '//数据库名
    Dim strUID              As String               '//登陆名
    Dim strPwd              As String               '//密码
    
    Dim RS_Open As New ADODB.Recordset
    On Error GoTo errHandle
    strDbServer = gf_strReadINI("DBSERVER")
    strUID = gf_strReadINI("UID")
    strPwd = gf_strReadINI("PWD")
    strDB = gf_strReadINI("DB")
    '//#
    If gbolDeskTop Then
        '//用ado连接数据库
        gobjDatabase.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "\WuYePro.mdb;Jet OLEDB:Database Password=" & CONPASSWORD
    ElseIf gbolNet Then
        '//直接连Sql server7.0数据库
        gobjDatabase.Open "Provider=SQLOLEDB.1;Persist Security Info=False;UID=" & strUID & ";PWD=" & strPwd & ";Initial Catalog=" & strDB & ";Data Source=" & strDbServer & ""
    End If
Exit Sub
errHandle:
Select Case Err.Number
    Case -2147467259
        MsgBox "连接数据库服务器错误,请确认数据库、网络工作状态!" & Chr(10) & Chr(13) & "用户要有登陆数据库服务器的权限", vbOKOnly + vbCritical, gCONSysTitle
    Case -2147217843
        MsgBox "用户名密码错误!请与管理员联系!", vbOKOnly + vbCritical, gCONSysTitle
    Case Else
        MsgBox "与数据库相关错误!请与管理员联系!", vbOKOnly + vbCritical, gCONSysTitle
End Select
'//错误日志 按月生成
Dim lngFreeFileOUt As Long
lngFreeFileOUt = FreeFile
Open App.Path & "\" & Format(Date, "yyyymm") & "err.log" For Append As lngFreeFileOUt
Print #lngFreeFileOUt, "  err.number " & Err.Number & "    err.desc:  " & Err.Description & "   time:  " & Now
Close #lngFreeFileOUt
Err.Number = 0
End
End Sub


'================================================================================
'=== 函数功能:读Archive.ini中的数据库连接设置
'=== 参    数:strKey->键值
'=== 返 回 值:
'===
'=== 开 发 者:郭东风
'=== 修改纪录:孙乃峰2002-3-29
'===
'================================================================================
Public Function gf_strReadINI(ByVal strKey As String) As String
    Dim strText     As String
    Dim strKeyInfo  As String
    Dim strDataInfo As String
    Dim blnKey      As Boolean
    Dim lngFreefile As Long
    On Error GoTo errHandle
    If mblngf_strReadINI = False Then
        blnKey = False
        'INI
        lngFreefile = FreeFile
        Open App.Path & "\" & gconIniPath For Input As lngFreefile

        Do While Not EOF(1)
            Line Input #lngFreefile, strText
            strText = Trim(strText)
            If Left(strText, 1) <> "'" Then
                If Left(strText, 1) = "[" And Right(strText, 1) = "]" Then
                    strKeyInfo = Mid(strText, 2, Len(strText) - 2)
                    blnKey = True
                Else
                    If blnKey = True Then
                        mcolINI.Add strText, UCase(strKeyInfo)
                        blnKey = False
                    End If
                End If
            End If
        Loop

        Close lngFreefile
        mblngf_strReadINI = True
    End If
    
    On Error Resume Next
    gf_strReadINI = mcolINI.Item(UCase(strKey))
    Exit Function
errHandle:
    Select Case Err.Number
    Case 52, 53, 75, 76
        MsgBox gconIniPath & "文件不存在或损坏", vbOKOnly + vbInformation, gCONSysTitle
    Case Else
        MsgBox "程序运行出现" & Err.Description, vbOKOnly + vbInformation, gCONSysTitle
    End Select
    End
End Function

'******WuYePro。ini 文件内容********************************************
'数据库服务器
[DB]
WuYePro

'用户
[UID]
WuYe
'密码
[PWD]
WuYe
'数据库
[DBSERVER]
server

#4


晚上有事明天过来试试看,多谢。

#5


Dim Conn As ADODB.Connection

Set Conn = New ADODB.Connection
Conn.Open "Provider=SQLOLEDB;Data Source=serverName;
Initial Catalog=databaseName;
User ID=userName;Password=userPassword;"
....

#6


借问一下,能不能在98下写SQL语句,或是有什么工具可以写

#7


不需要装,直接连(其实windows已自带了)
Driver={SQL Server};Database=;Server=;uid=;pwd=;

#8


至少要安装一个客户端吧!

#9


如果网内已经有SQL Server服务器,则客户端不用装任何东东。
当然,可以不用ODBC,只见用ADO读配置文件什么的,或者写死,都可以做到连接到数据库。具体的写法可以看看MSDN上的帮助。

Dim Cn As New ADODB.Connection

Cn.Open "Provider=SQLOLEDB;Data Source=ServerName;
Initial Catalog=DatabaseName;
User ID=UserName;Password=Passwd;"

其中
ServerName: 装有SQL Server服务器名称。
DatabaseName:不需要我写吧?
UserName:
Passwd:

这样就连接上数据库了,接下来就是正常的操作了。
试试看巴。

#10


我关注着。

#11


可以直接用ADO控件

#12


不装SQL SERVER2000是不可以的
你可以用ADO直接连接数据库的

#13


各位老兄清仔细看看我的问题,
给我连接字符串的请在一台没有装SQLSERVER的而且也没有用odbc配置此SQLSERVER数据库的别名的机子上(装有MDAC2.5)连接一下试试!
注意是没有装SQLSERVER的客户端或者服务端,简化版的MSDE也没有
ODBC没有配置过(配置过再删除也不行!配置过系统DSN后再手动在ODBC中删除是没有用的,仍然可以用以连接数据库。)

#14


最少也要MSDE!!关于DSN应该不会有太大的影响,可以程序建立

#15


哈哈,那就好! nik_Amis(Azrael) 多谢了,意思是“不用配置odbc,不安装sqlserver,是不能直接用ado连接sqlserver数据库!”
如果是这样,能不能解释一下。
是不是ado只是提供了连接sqlserver的接口,具体实现还是要调用odbc或是sqlserver的dll?

#16


这样的问题还要讨论几天?????????????????

#17


下载mdac2.7
然后用ado控件试一下
如果不行,就没戏了

#18


是啊,问题虽然很简单,但是我只是想知道为什么连接不上。

#19


Public Function GetRConn(Cn As ADODB.Connection) As Boolean
  
  StrConnection = "Provider=SQLOLEDB;PWD=;UID=username;Database=dataname;Server=" & ServerIp
  Set Cn = New ADODB.Connection
  On Error GoTo lExit
  Cn.Open StrConnection
  GetRConn = True
  Exit Function
lExit:
  MsgBox "网 络 中 断 或 网 络 忙!请检查!!!", vbInformation, "网络故障!!"
  GetRConn = False
End Function
记住,如果是 98 访问2000 那么要 在2000 上建user用户,如果是2000访问2000
那么要在运行里先访问2000。即是输入\\+Ip 即可

#1


试验成功后立刻给分,在线等待!

#2


SQL Server是一定要装的
至少也要装个简化版的MSDE

DSN less:
Connect = "Provider=SQLOLEDB;" & _
        "Data Source=myServerName;" & _
        "Initial Catalog=myDatabaseName;" & _
        "User ID=myUsername;" & _
        "Password=myPassword;"


oConn.Open "Driver={SQL Server};" & _ 
          "Server=MyServerName;" & _
         "Database=myDatabaseName;" & _
         "Uid=myUsername;" & _
          "Pwd=myPassword;"

#3


Public gobjDatabase As New ADODB.Connection

'//读archive.ini
Public Const gconIniPath = "WuYePro.ini"
Private mcolINI             As New Collection
Private mblngf_strReadINI   As Boolean


'========*=========*=========*=========*=========*=========*=========*=========*
'== 功    能:提取数据库表路径
'== 参    数:strString
'== 返 回 值:strString
'== 过程性质:自定义过程
'== 作    者:郭东风/2001年11月27日
'== 修改记事:
'========*=========*=========*=========*=========*=========*=========*=========*
Public Sub gConnectDatabase()
   '//单机版
    Dim strsql              As String
    Dim strDbServer         As String               '//数据库服务器名
    Dim strDB               As String               '//数据库名
    Dim strUID              As String               '//登陆名
    Dim strPwd              As String               '//密码
    
    Dim RS_Open As New ADODB.Recordset
    On Error GoTo errHandle
    strDbServer = gf_strReadINI("DBSERVER")
    strUID = gf_strReadINI("UID")
    strPwd = gf_strReadINI("PWD")
    strDB = gf_strReadINI("DB")
    '//#
    If gbolDeskTop Then
        '//用ado连接数据库
        gobjDatabase.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "\WuYePro.mdb;Jet OLEDB:Database Password=" & CONPASSWORD
    ElseIf gbolNet Then
        '//直接连Sql server7.0数据库
        gobjDatabase.Open "Provider=SQLOLEDB.1;Persist Security Info=False;UID=" & strUID & ";PWD=" & strPwd & ";Initial Catalog=" & strDB & ";Data Source=" & strDbServer & ""
    End If
Exit Sub
errHandle:
Select Case Err.Number
    Case -2147467259
        MsgBox "连接数据库服务器错误,请确认数据库、网络工作状态!" & Chr(10) & Chr(13) & "用户要有登陆数据库服务器的权限", vbOKOnly + vbCritical, gCONSysTitle
    Case -2147217843
        MsgBox "用户名密码错误!请与管理员联系!", vbOKOnly + vbCritical, gCONSysTitle
    Case Else
        MsgBox "与数据库相关错误!请与管理员联系!", vbOKOnly + vbCritical, gCONSysTitle
End Select
'//错误日志 按月生成
Dim lngFreeFileOUt As Long
lngFreeFileOUt = FreeFile
Open App.Path & "\" & Format(Date, "yyyymm") & "err.log" For Append As lngFreeFileOUt
Print #lngFreeFileOUt, "  err.number " & Err.Number & "    err.desc:  " & Err.Description & "   time:  " & Now
Close #lngFreeFileOUt
Err.Number = 0
End
End Sub


'================================================================================
'=== 函数功能:读Archive.ini中的数据库连接设置
'=== 参    数:strKey->键值
'=== 返 回 值:
'===
'=== 开 发 者:郭东风
'=== 修改纪录:孙乃峰2002-3-29
'===
'================================================================================
Public Function gf_strReadINI(ByVal strKey As String) As String
    Dim strText     As String
    Dim strKeyInfo  As String
    Dim strDataInfo As String
    Dim blnKey      As Boolean
    Dim lngFreefile As Long
    On Error GoTo errHandle
    If mblngf_strReadINI = False Then
        blnKey = False
        'INI
        lngFreefile = FreeFile
        Open App.Path & "\" & gconIniPath For Input As lngFreefile

        Do While Not EOF(1)
            Line Input #lngFreefile, strText
            strText = Trim(strText)
            If Left(strText, 1) <> "'" Then
                If Left(strText, 1) = "[" And Right(strText, 1) = "]" Then
                    strKeyInfo = Mid(strText, 2, Len(strText) - 2)
                    blnKey = True
                Else
                    If blnKey = True Then
                        mcolINI.Add strText, UCase(strKeyInfo)
                        blnKey = False
                    End If
                End If
            End If
        Loop

        Close lngFreefile
        mblngf_strReadINI = True
    End If
    
    On Error Resume Next
    gf_strReadINI = mcolINI.Item(UCase(strKey))
    Exit Function
errHandle:
    Select Case Err.Number
    Case 52, 53, 75, 76
        MsgBox gconIniPath & "文件不存在或损坏", vbOKOnly + vbInformation, gCONSysTitle
    Case Else
        MsgBox "程序运行出现" & Err.Description, vbOKOnly + vbInformation, gCONSysTitle
    End Select
    End
End Function

'******WuYePro。ini 文件内容********************************************
'数据库服务器
[DB]
WuYePro

'用户
[UID]
WuYe
'密码
[PWD]
WuYe
'数据库
[DBSERVER]
server

#4


晚上有事明天过来试试看,多谢。

#5


Dim Conn As ADODB.Connection

Set Conn = New ADODB.Connection
Conn.Open "Provider=SQLOLEDB;Data Source=serverName;
Initial Catalog=databaseName;
User ID=userName;Password=userPassword;"
....

#6


借问一下,能不能在98下写SQL语句,或是有什么工具可以写

#7


不需要装,直接连(其实windows已自带了)
Driver={SQL Server};Database=;Server=;uid=;pwd=;

#8


至少要安装一个客户端吧!

#9


如果网内已经有SQL Server服务器,则客户端不用装任何东东。
当然,可以不用ODBC,只见用ADO读配置文件什么的,或者写死,都可以做到连接到数据库。具体的写法可以看看MSDN上的帮助。

Dim Cn As New ADODB.Connection

Cn.Open "Provider=SQLOLEDB;Data Source=ServerName;
Initial Catalog=DatabaseName;
User ID=UserName;Password=Passwd;"

其中
ServerName: 装有SQL Server服务器名称。
DatabaseName:不需要我写吧?
UserName:
Passwd:

这样就连接上数据库了,接下来就是正常的操作了。
试试看巴。

#10


我关注着。

#11


可以直接用ADO控件

#12


不装SQL SERVER2000是不可以的
你可以用ADO直接连接数据库的

#13


各位老兄清仔细看看我的问题,
给我连接字符串的请在一台没有装SQLSERVER的而且也没有用odbc配置此SQLSERVER数据库的别名的机子上(装有MDAC2.5)连接一下试试!
注意是没有装SQLSERVER的客户端或者服务端,简化版的MSDE也没有
ODBC没有配置过(配置过再删除也不行!配置过系统DSN后再手动在ODBC中删除是没有用的,仍然可以用以连接数据库。)

#14


最少也要MSDE!!关于DSN应该不会有太大的影响,可以程序建立

#15


哈哈,那就好! nik_Amis(Azrael) 多谢了,意思是“不用配置odbc,不安装sqlserver,是不能直接用ado连接sqlserver数据库!”
如果是这样,能不能解释一下。
是不是ado只是提供了连接sqlserver的接口,具体实现还是要调用odbc或是sqlserver的dll?

#16


这样的问题还要讨论几天?????????????????

#17


下载mdac2.7
然后用ado控件试一下
如果不行,就没戏了

#18


是啊,问题虽然很简单,但是我只是想知道为什么连接不上。

#19


Public Function GetRConn(Cn As ADODB.Connection) As Boolean
  
  StrConnection = "Provider=SQLOLEDB;PWD=;UID=username;Database=dataname;Server=" & ServerIp
  Set Cn = New ADODB.Connection
  On Error GoTo lExit
  Cn.Open StrConnection
  GetRConn = True
  Exit Function
lExit:
  MsgBox "网 络 中 断 或 网 络 忙!请检查!!!", vbInformation, "网络故障!!"
  GetRConn = False
End Function
记住,如果是 98 访问2000 那么要 在2000 上建user用户,如果是2000访问2000
那么要在运行里先访问2000。即是输入\\+Ip 即可

#20