Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在vb6上登录sql server 2005_Sql Server_Vb6 - Fatal编程技术网

Sql server 在vb6上登录sql server 2005

Sql server 在vb6上登录sql server 2005,sql-server,vb6,Sql Server,Vb6,有人能帮助我如何使sub consultationlistviewsource可以使用sub登录中的连接吗?我知道我需要一个变量,但总的来说我没有成功。我总是在sub cn.Open ConsultationListviewSource的行中收到一个错误“无效的权限规范”。 对不起,我英语不好 Option Explicit Private cn As ADODB.Connection Private record As ADODB.Recordset Private list As List

有人能帮助我如何使sub consultationlistviewsource可以使用sub登录中的连接吗?我知道我需要一个变量,但总的来说我没有成功。我总是在sub cn.Open ConsultationListviewSource的行中收到一个错误“无效的权限规范”。 对不起,我英语不好

Option Explicit

Private cn As ADODB.Connection
Private record As ADODB.Recordset
Private list As ListItem

Public Sub ConsultationListviewSource(ByRef objlistview As Object, ByVal          table As String)

cn.Open
record.Open "SELECT *  FROM [" & table & "]", cn, adOpenDynamic,   adLockOptimistic

If record.Fields.Count = 5 Then
    For k = 0 To 4
        With objlistview.ColumnHeaders
            .Add , , record.Fields(k).Name, objlistview.Width / 2
        End With
    Next k

    record.MoveFirst
    While record.EOF = False
        Set list = objlistview.ListItems.Add(, , record.Fields(0))
        list.SubItems(1) = record.Fields(1)
        list.SubItems(2) = record.Fields(2)
        list.SubItems(3) = record.Fields(3)
        list.SubItems(4) = record.Fields(4)
        record.MoveNext
    Wend
End If
record.Close
End Sub

Sub login(textusername As Variant, textpassword As Variant)
On Error GoTo erreur
Set cn = New ADODB.Connection
Set record = New ADODB.Recordset
cn.ConnectionString = "Provider=SQLOLEDB;Data     Source=localhost\SQLExpress;Initial Catalog=bdd_trigger_salarie;User    ID=textusername;Password=textpassword"
cn.Open
MsgBox "bienvenue", vbInformation, "Login"
Exit Sub
erreur:
If Err.Number = -2147217843 Then
    MsgBox "nom d'utilisateur et/ou mot de passe incorrect", vbInformation,   "Login"
End If
End Sub

Private Sub Class_Terminate()
cn.Close
Set cn = Nothing
Set record = Nothing
End Sub

我忘记了很多关于VB6的内容,因此无法100%确定,但我在您的代码中看到一个问题:您在
子登录
中打开了连接,但没有关闭它,然后再次尝试在
子咨询ListViewSource
中打开它。快速修复将删除
ConsultationListviewSource
sub中的
cn.Open


但这不是最佳实践。您应该尽量缩短连接打开的时间,并在使用后立即关闭连接

我忘记了很多关于VB6的内容,因此无法100%确定,但我在您的代码中发现了一个问题:您在
子登录中打开了连接,但没有关闭它,然后再次尝试在
子咨询ListViewSource中打开它。快速修复将删除
ConsultationListviewSource
sub中的
cn.Open

但这不是最佳实践。您应该尽量缩短连接打开的时间,并在使用后立即关闭连接