Skip to content

��������

��ָ�Ͻ��������������� cDataBase ��⣬�������������ݿ�Ӧ�ó���


? ǰ��׼��

�����ļ�

ȷ�������ļ������ӵ���Ŀ�У�

�ļ�λ��˵��
VBMAN.dll��Ŀ���������� COM ���
Microsoft ActiveX Data Objects 2.8 Library��Ŀ����ADO ���Ŀ�

���ӵ���Ŀ

  1. �� VB6 ��Ŀ
  2. �˵�����Ŀ �� ����
  3. ��ѡ�������ã�
    • ? VBMAN (VBMAN.dll)
    • ? Microsoft ActiveX Data Objects 2.8 Library

? �ͻ��˿�������

���� 1����������

����һ���´��壬�������¿ؼ���

  • 1 �� TextBox (txtLog) - ��ʾ��־��MultiLine = True��
  • 1 �� CommandButton (cmdConnect) - �������ݿ�
  • 1 �� CommandButton (cmdQuery) - ִ�в�ѯ

���� 2�������

vb
Option Explicit

' �������ݿ����ʹ�� VBMAN.dll �е��ࣩ
Private WithEvents m_DB As VBMAN.cDataBase

Private Sub Form_Load()
    ' �������ݿ����
    Set m_DB = New VBMAN.cDataBase
    
    ' ���� SQL Server ���ݿ�
    If m_DB.Connect(VBMAN.enumDbType_MsSql, _
                    "127.0.0.1,1433", _
                    "sa", _
                    "Sa123456", _
                    "master") Then
        LogMessage "���ݿ����ӳɹ�"
    Else
        LogMessage "���ݿ�����ʧ��: " & m_DB.LastErr
    End If
End Sub

Private Sub cmdQuery_Click()
    On Error GoTo EH
    
    ' ִ�в�ѯ
    If m_DB.Sql("SELECT TOP 10 * FROM sys.tables").Query Then
        ' ��ȡ�����
        Dim i As Long
        For i = 1 To m_DB.Rows.Count
            LogMessage "����: " & m_DB.Rows(i)("name")
        Next
    Else
        LogMessage "��ѯʧ��: " & m_DB.LastErr
    End If
    
    Exit Sub
    
EH:
    LogMessage "����: " & Err.Description
End Sub

' ====== �������� ======

Private Sub LogMessage(sMessage As String)
    txtLog.Text = txtLog.Text & Format$(Now, "hh:mm:ss") & " - " & sMessage & vbCrLf
    txtLog.SelStart = Len(txtLog.Text)
End Sub

Private Sub Form_Unload(Cancel As Integer)
    ' �Ͽ�����
    If Not m_DB Is Nothing Then
        m_DB.Disconnect
    End If
End Sub

���� 3�������

  1. �� F5 �����
  2. ���"�������ݿ�"
  3. ���"ִ�в�ѯ"
  4. �鿴��־���

? ����˿�������

���� 1����������

����һ���´��壬�������¿ؼ���

  • 1 �� TextBox (txtPort) - �˿ں�
  • 1 �� CommandButton (cmdStart) - ��������
  • 1 �� ListBox (lstResults) - ��ʾ���
  • 1 �� TextBox (txtLog) - ��ʾ��־

���� 2�������

vb
Option Explicit

Private WithEvents m_DB As VBMAN.cDataBase

Private Sub Form_Load()
    Set m_DB = New VBMAN.cDataBase
    txtPort.Text = "1433"
End Sub

Private Sub cmdStart_Click()
    On Error GoTo EH
    
    ' �������ݿ�
    If m_DB.Connect(VBMAN.enumDbType_MsSql, _
                    "127.0.0.1," & txtPort.Text, _
                    "sa", _
                    "Sa123456", _
                    "master") Then
        LogMessage "���ݿ����������"
        LoadData
    Else
        LogMessage "����ʧ��: " & m_DB.LastErr
    End If
    
    Exit Sub
    
EH:
    LogMessage "����: " & Err.Description
End Sub

Private Sub LoadData()
    ' ��ѯ����
    If m_DB.Sql("SELECT name FROM sys.tables ORDER BY name").Fetch Then
        Dim i As Long
        lstResults.Clear
        For i = 1 To m_DB.Rows.Count
            lstResults.AddItem m_DB.Rows(i)("name")
        Next
        LogMessage "�Ѽ��� " & m_DB.Rows.Count & " ����¼"
    End If
End Sub

' ====== �������� ======

Private Sub LogMessage(sMessage As String)
    txtLog.Text = txtLog.Text & Format$(Now, "hh:mm:ss") & " - " & sMessage & vbCrLf
    txtLog.SelStart = Len(txtLog.Text)
End Sub

Private Sub Form_Unload(Cancel As Integer)
    If Not m_DB Is Nothing Then
        m_DB.Disconnect
    End If
End Sub

? ����ʾ�����û�����

����˴���

vb
Option Explicit

Private WithEvents m_DB As VBMAN.cDataBase

Private Sub Form_Load()
    Set m_DB = New VBMAN.cDataBase
    
    ' �������ݿ�
    m_DB.Connect VBMAN.enumDbType_MsSql, "127.0.0.1,1433", "sa", "pwd", "mydb"
    
    ' �����û�������������ڣ�
    CreateUserTable
    
    ' �����û��б�
    LoadUsers
End Sub

' �����û���
Private Sub CreateUserTable()
    Dim sSql As String
    sSql = "IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'users') " & _
           "CREATE TABLE users (id INT IDENTITY(1,1) PRIMARY KEY, " & _
           "name NVARCHAR(50), age INT, email NVARCHAR(100))"
    
    m_DB.Sql(sSql).Exec
End Sub

' �����û��б�
Private Sub LoadUsers()
    If m_DB.Sql("SELECT * FROM users ORDER BY id").Fetch Then
        Dim i As Long
        lstUsers.Clear
        For i = 1 To m_DB.Rows.Count
            lstUsers.AddItem m_DB.Rows(i)("name") & " - " & m_DB.Rows(i)("age")
        Next
    End If
End Sub

' �����û�
Private Sub cmdAddUser_Click()
    ' ʹ�ò�������ѯ��ֹ SQL ע��
    If m_DB.Sql("INSERT INTO users (name, age, email) VALUES (?, ?, ?)") _
        .Param("name", txtName.Text, VBMAN.adVarWChar) _
        .Param("age", CLng(txtAge.Text), VBMAN.adInteger) _
        .Param("email", txtEmail.Text, VBMAN.adVarWChar) _
        .ExecParam Then
        
        LogMessage "�û����ӳɹ���ID: " & m_DB.LastInsertId
        LoadUsers
    Else
        LogMessage "����ʧ��: " & m_DB.LastErr
    End If
End Sub

' ɾ���û�
Private Sub cmdDeleteUser_Click()
    If m_DB.Sql("DELETE FROM users WHERE id = ?") _
        .Param("id", CLng(txtId.Text), VBMAN.adInteger) _
        .ExecParam Then
        
        LogMessage "�û�ɾ���ɹ�"
        LoadUsers
    End If
End Sub

Private Sub LogMessage(sMessage As String)
    txtLog.Text = txtLog.Text & Format$(Now, "hh:mm:ss") & " - " & sMessage & vbCrLf
    txtLog.SelStart = Len(txtLog.Text)
End Sub

�ͻ��˴���

vb
Option Explicit

Private WithEvents m_DB As VBMAN.cDataBase

Private Sub Form_Load()
    Set m_DB = New VBMAN.cDataBase
    m_DB.Connect VBMAN.enumDbType_MsSql, "127.0.0.1,1433", "sa", "pwd", "mydb"
    
    LoadUsers
End Sub

Private Sub LoadUsers()
    ' ʹ�÷�ҳ��ѯ
    If m_DB.Sql("SELECT * FROM users").Page(1, 10).Fetch Then
        Dim i As Long
        lstUsers.Clear
        For i = 1 To m_DB.Rows.Count
            lstUsers.AddItem m_DB.Rows(i)("name") & " - " & m_DB.Rows(i)("age")
        Next
    End If
End Sub

Private Sub cmdSearch_Click()
    ' ʹ�ò�������ѯ����
    If m_DB.Sql("SELECT * FROM users WHERE name LIKE ?") _
        .Param("name", "%" & txtSearch.Text & "%", VBMAN.adVarWChar) _
        .QueryParam Then
        
        Dim i As Long
        lstResults.Clear
        For i = 1 To m_DB.Rows.Count
            lstResults.AddItem m_DB.Rows(i)("name")
        Next
    End If
End Sub

? ��������

Q1: �������"�û���������δ����"

ԭ��: δ���� VBMAN.dll �� Microsoft ActiveX Data Objects 2.8 Library

���:

  1. �˵�����Ŀ �� ����
  2. ��ѡ VBMAN �� Microsoft ActiveX Data Objects 2.8 Library

Q2: ����ʧ��"�޷����ӵ����ݿ�"

ԭ��: �����ַ�����������ݿ����δ����

���:

  • ������ݿ�����Ƿ�����
  • ��֤���Ӳ�������ַ���˿ڡ��û��������룩
  • ������ǽ����

Q3: ��ѯ���ؿս��

ԭ��: SQL ��������������

���:

  • ʹ�� m_DB.LastErr �鿴������Ϣ
  • ��� SQL ����﷨
  • ��֤�������ֶ���

Q4: ���ִ���������

vb
' ��ʼ����
m_DB.TransBegin

' ִ�ж������
m_DB.Sql("INSERT INTO table1 ...").Exec
m_DB.Sql("INSERT INTO table2 ...").Exec

' �ύ����ʧ���Զ��ع���
If m_DB.TransCommit Then
    Debug.Print "�ɹ�"
Else
    Debug.Print "ʧ��: " & m_DB.LastErr
End If

Q5: ��η�ֹ SQL ע��

vb
' ? ����ֱ��ƴ�� SQL������ȫ��
m_DB.Sql("SELECT * FROM users WHERE name = '" & txtName.Text & "'").Query

' ? ��ȷ��ʹ�ò�������ѯ����ȫ��
m_DB.Sql("SELECT * FROM users WHERE name = ?") _
    .Param("name", txtName.Text, VBMAN.adVarWChar) _
    .QueryParam

Q6: ��λ�ȡ������� ID

vb
' ��������
m_DB.Sql("INSERT INTO users (name) VALUES (?)") _
    .Param("name", "����", VBMAN.adVarWChar) _
    .ExecParam

' ��ȡ������� ID
Dim lId As Variant
lId = m_DB.LastInsertId
Debug.Print "���û� ID: " & lId

? ��һ��


������: 2026-01-21

VB6及其LOGO版权为微软公司所有