��������
��ָ�Ͻ��������������� cDataBase ��⣬�������������ݿ�Ӧ�ó���
? ǰ����
�����ļ�
ȷ�������ļ������ӵ���Ŀ�У�
| �ļ� | λ�� | ˵�� |
|---|---|---|
VBMAN.dll | ��Ŀ���� | ������ COM ��� |
Microsoft ActiveX Data Objects 2.8 Library | ��Ŀ���� | ADO ���Ŀ� |
���ӵ���Ŀ
- �� VB6 ��Ŀ
- �˵�����Ŀ �� ����
- ��ѡ�������ã�
- ? 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�������
- �� F5 �����
- ���"�������ݿ�"
- ���"ִ�в�ѯ"
- �鿴��־���
? ����˿�������
���� 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
���:
- �˵�����Ŀ �� ����
- ��ѡ 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 IfQ5: ��η�ֹ 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) _
.QueryParamQ6: ��λ�ȡ������� 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