数据库类ADODB命令记录集VB6 ADO文件处理打开

介绍 这基本上是一个数据库类。在这个项目中,我们连接到SQL Server 2000。我们插入、更新、删除和select查询。同时填补网格不使用任何数据控制。在这个项目中,我也使用文件处理。 使用的代码 首先,创建类的私有成员。类的三个成员给出如下: 隐藏,复制Code

Private conConnection As New ADODB.connection
Private cmdCommand As New ADODB.Command
Public rstRecordSet As New ADODB.Recordset

ADODB.connection 首先,初始化adodb连接。这个对象是用来连接数据库。 ADODB.Command 第二,初始化命令。该对象用于执行数据库查询。 ADODB.Recordset 第三,初始化记录集。这个对象有多种用途。我以后会解释。 隐藏,复制Code

Public Sub connection()
On Error GoTo err1:
    Dim txtserver As String
    Dim txtuser As String
    Dim txtpassword As String
        Dim Filename As String
        Filename = "c:Label.txt"
        Open (Filename) For Input As #1
        Line Input #1, txtserver
        Line Input #1, txtuser
        Line Input #1, txtpassword
 Close #1
        conConnection.ConnectionString = "Driver={SQL Server};
        Server=" & txtserver & ";Database=Stock_Management;Uid=" & txtuser & ";Pwd=;"
        Exit Sub
err1:
Close #1

       Exit Sub
 
End Sub 

这个函数与SQL Server 2000建立了联系。这是一个受信任连接,但是它也可以用于非可信连接。这是一个用户友好的联系。因此,在这里,我使用文件处理,它只是打开文件并读取服务器名称、用户名和密码。 为此,我声明这三个变量,txtserver, txtuser txtpassword。首先,打开对象,打开文件读不会写。行输入# 1读取行号的文件和文本txtserver。下两行相同的采取行动。下两个变量保存价值、txtuser txtpassword并关闭对象关闭文件。然后,连接到SQL Server和退出功能。 隐藏,复制Code

Public Function conopen() As Boolean
On Error GoTo err1:
        If conConnection.State = 0 Then
        connection
                
                conConnection.Open
                conopen = True
        End If
 
err1:
If Error <> "" Then
MsgBox "Connect to fail"
conclose

       Exit Function
       End If
        
End Function

这个函数首先检查连接,如果连接打开的状态离开没有任何行动。其他明智如果连接关闭然后打开连接,返回true。 注意:检查连接状态,我使用连接。状态函数。如果状态是一个意味着连接开放状态是零的意思是连接关闭。 隐藏,复制Code

Public Sub insert_query(query As String)
         
        conopen
         
                With cmdCommand
                    .ActiveConnection = conConnection.ConnectionString
                    .CommandText = query
                    .CommandType = adCmdText
                    .Execute (query)
                End With
                
End Sub

这个函数接受一个查询。Conopen是一个函数,我已经解释了这个函数的工作。下一个行动的命令对象。首先cmdCommand变量活跃连接然后查询。cmdCommand.CommandType adCmdText传递。adCmdText评估作为一个文本的定义。和cmdCommand。执行任何查询和插入、选择、删除和更新。 隐藏,复制Code

Public Function rstRecordSetOpen()
        
    Call rstRecordSetclose
    
    If rstRecordSet.State = 0 Then
                
               With rstRecordSet
                        .CursorType = adOpenStatic
                        .CursorLocation = adUseClient
                        .LockType = adLockOptimistic
                        .Open cmdCommand
               End With
     End If

End Function

这个函数打开记录集对象填充数据。首先,它调用rstRecordSetclose函数关闭记录集对象。没有必要关闭记录集。但有时,它会创建问题所以我们每次填充数据,我们必须关闭记录集。如果你想更多的了解记录集,请访问该网站。 隐藏,复制Code

 Function fillcombo(ByRef combo As ComboBox, query As String, field As Integer)
    
     Call conopen
        
            With cmdCommand
                .ActiveConnection = conConnection.ConnectionString
                .CommandText = query
                .CommandType = adCmdText
            End With
            
        Call rstRecordSetOpen
           
    If rstRecordSet.EOF = False Then
        
            rstRecordSet.MoveFirst
            combo.Clear
                    Do
                            combo.AddItem (rstRecordSet.Fields(field))
                            rstRecordSet.MoveNext
                    Loop Until rstRecordSet.EOF = True
    End If
 
End Function

这个函数填充下拉列表框。此函数接受三个参数。 采取一个组合框的名字来查询指定,例如,你写一个查询这样的“选择user_id User_name从user_table”。和你想要的所有的名称显示在组合框,然后通过参数1,完成后,退出功能。 隐藏,复制Code

Function getID(query As String, field As Integer) As Integer
    
     Call conopen
        
            With cmdCommand
                .ActiveConnection = conConnection.ConnectionString
                .CommandText = query
                .CommandType = adCmdText
            End With
            
        Call rstRecordSetOpen
        
    If rstRecordSet.EOF = False Then
            rstRecordSet.MoveFirst
            Dim a As Integer
            a = field
                    Do
                            a = rstRecordSet.Fields(field)
                            rstRecordSet.MoveNext
                            
                    Loop Until rstRecordSet.EOF = True
    End If
    
    getID = a

End Function

如果你想要任何查询Id,然后你叫这个: 隐藏,复制Code

Public Function rstRecordSetclose()

    Set rstRecordSet = Nothing

End Function  

关闭记录集,我们使用调用这个函数: 隐藏,复制Code

Public Function conclose()

        Set conConnection = Nothing
        Set cmdCommand = Nothing
        
End Function

这个函数关闭命令以及连接。 这里有一些屏幕截图来使用这个对象。 在这里,我们创建一个对象并建立一个连接。我给这里的代码对象是如何工作的。 隐藏,收缩,复制Code

Private Sub cmdOK_Click()
    
        Dim a As String
        Dim database As New clsDatabase
        
        check
        
    If LoginSucceeded = False Then
          
          Exit Sub
          
        Else
              If database.conopen = True Then
              a = "SELECT * from tbl_user where (
                  user_name = '" & txtUserName.Text & "') and (
                  user_password = '" & txtPassword.Text & "')"
     
      
            If database.getID(a, 0) <> 0 Then
                     LoginSucceeded = True
                   MsgBox "logon sucess full"
                   End
                   
                Else
                     MsgBox "Invalid Password, try again!", , "Login"
                     txtPassword.SetFocus
                     SendKeys "{Home}+{End}"
            End If
            Else
            Unload Me
            Set database = Nothing
            frmDatabase.Show
            
            Exit Sub
            End If
            
    End If
       
End Sub 

这是一个行动cmdOK按钮。当我们点击它时,它会创建一个新的对象在数据库的名称。首先,我们称之为conOpen函数。如果连接是开放的,我们为获得一个特定的行执行查询。为了这个目的,我们称之为getID函数。这个函数的工作是,第一,它执行的查询,然后返回ID特定行。和提示登录成功的消息。这是它的屏幕截图。 有两种,如果conConnection返回false,用户名或密码无效或连接不是构建。和消息提示连接失败。喜欢这里。 如果无法连接到SQL Server 2000数据库对象。然后提示连接失败的消息。当您点击OK,然后会出现一个窗口在屏幕上。你看到这三个文本框,在第一,服务器名称,标签自动检测您的SQL server 2000服务器名称,喜欢这里。 然后你把用户名和密码,如果有,否则你离开空白并单击Test按钮。 隐藏,复制Code

Private Sub btntest_Click()
checkfile
data
If database.conopen = True Then
MsgBox "Connect to successfuly"
Unload Me
frmLogin.Show
Else
MsgBox "Connection fail"
End If
End Sub 

当你点击测试按钮。首先,它去checkfile函数。 隐藏,复制Code

Function checkfile()
Dim fName As String
fName = "c:Label.txt"
Dim oFSO As New FileSystemObject
    
  On Error GoTo ErrorHandler
 oFSO.DeleteFile (fName)
   

ErrorHandler:
On Error Resume Next
Set oFSO = Nothing

End Function

checkfile功能,首先它声明了一个变量在帧的名字。帧需要文件的路径。然后我们声明一个对象FileSystemObject oSFO的名字。它只有一个删除的文件的工作。然后,它可以追溯到在btnTest单击事件。然后,btntest单击事件调用另一个函数数据。我们看看t他跟踪数据函数的工作。 隐藏,复制Code

Function data()
On Error GoTo err1

 Open "c:Label.txt" For Append As #1
    Print #1, Me.txtservername
    Print #1, Me.txtusername
    Print #1, Me.txtpassword
      Close #1

If Error <> "" Then
err1:
Close #1
data
Exit Function
End If
End Function 

注:详细打开 OPEN的主要功能是将文件编号(filenum&)与文件或物理设备相关联,并为读取和/或写入该设备做好准备。然后,在引用该文件的每条语句中使用该文件编号,而不是它的名称。可以使用自由文件函数确定下一个可用文件号,也可以自己选择一个。OPEN语句包含关于文件模式的信息;即访问文件的方法:顺序访问(用于对新文件的输入/输出,或对现有文件的输出)、随机访问和二进制访问。开语句通常由一个匹配的关语句来平衡。 如果文件不存在,则打开文件,然后创建一个新文件。上面,我们声明了三个变量,分别采用服务器名、用户名和密码。print函数将这些值写入文件,Close函数将关闭文件。 以上是对clsDataBase对象的一点概述。 重要提示:如果运行此代码,首先将数据库附加到我提供的SQL服务器中。 如果你对这个话题有任何问题,请在下面的评论区留言。 本文转载于:http://www.diyabc.com/frontweb/news2498.html

原文地址:https://www.cnblogs.com/Dincat/p/13457876.html