Maison >base de données >tutoriel mysql >Problèmes d'établissement de base de données et de liaison

Problèmes d'établissement de base de données et de liaison

黄舟
黄舟original
2017-02-28 14:01:131293parcourir

Après avoir terminé le système de gestion des étudiants, après l'acceptation du master, j'ai constaté que le concept original n'était pas profondément compris ! Ensuite j'ai regardé brièvement les 5 exemples. Le professeur disait souvent que la chose la plus importante dans l'apprentissage est la répétition. Grâce à cette observation, j'ai retrouvé ma compréhension des concepts de base.

Premier coup d'oeil à quelques termes professionnels : ADO --- objet de données ActiveX objet de données dynamique via OLE DB (liaison d'objets et intégration Chinois : connexion et intégration d'objets, qui est l'interface de programme inférieure) pour accéder à différentes données.

Lorsque le maître m'a interrogé sur les objets d'ADO, j'étais confus. Il s'est avéré que la connexion, le jeu d'enregistrements, etc. l'établissement était tous des objets d'ado. Il a un total de 7 objets. Les plus courants dans ce système de gestion de l'information des étudiants sont les deux ci-dessus, 3 objets indépendants : jeu d'enregistrements, connexion, commande ! Il existe également 4 objets subsidiaires : champ, paramètre, propriété, erreur

OLE DB est composé de 3 parties : fournisseur de données, Données consommateur, composant de service. Un fournisseur de données est un programme qui fournit des données similaires à SQL Serser ou ODBC. Le programme créé par VB est un consommateur de données typique. Il s'agit d'une application de données créée à l'aide des données fournies par le fournisseur de données. Le composant de service est responsable de la connexion des fournisseurs de données et des consommateurs de données.

Dans les cinq exemples, la base de données Microsoft Access (le suffixe du fichier est .mdb) créée par le gestionnaire visuel du programme externe vb est utilisée, et le système de gestion des informations sur les étudiants La base de données est créée à l'aide de SQL Server (le suffixe est .sql La première étape pour une application de base de données est de créer une base de données ! La deuxième étape consiste à établir une référence ADO. Dans le programme VB, cliquez directement sur la référence sous le projet et sélectionnez la bibliothèque Microsoft ActiveX Data Objects 2.6 ! La troisième étape consiste à établir une connexion à l’aide de code. Jetons un coup d'œil à la comparaison des différentes méthodes de connexion à la base de données :

1. Connectez-vous directement à la base de données d'accès

.
dim Objcn as new connection,objRs as new recordset
objcn.connectionstring="Prvider=Microsoft.jet.OLEDB.3.5.1;" & _
"data sourse=数据远文件路径"         '连接数据提供者与数据源
objcn.open
       strSQL=“select ……from …… where……”
set objrs.activeconnection=objcn   '将数据库记录集与数据源相匹配
objrs.open(strSQL)      '记录集打开
       .                       ‘进行数据库的增删改查操作
objcn.close         ‘关闭数据库
set objrs=Nothing
set objcn=Nothing


2. Utilisez ODBC pour vous connecter à la base de données d'accès. ODBC dispose de trois méthodes de connexion à la source de données, à savoir le DNS de l'utilisateur, DNS système et DNS de fichiers Le système de gestion des informations sur les étudiants utilise l'ajout de DNS de fichiers.

set objcn=new connection
objcn.open="dsn=数据库文件名"
set objrs=new recordset
                .
objcn.close
set objrs=nothing
set objcn=nothing


3. Utilisez le contrôle de données ado pour créer une connexion à la base de données. est relativement simple, il suffit de vous connecter à partir des propriétés du contrôle.

Après avoir lu les méthodes de connexion de 5 exemples, analysons le code de connexion au système de gestion des étudiants lors de la connexion :

1 In. la fenêtre de connexion Afin de devenir plus professionnel, le nom de connexion de la base de données est souvent défini sur le nom d'utilisateur du système, de sorte que l'utilisateur du système est automatiquement obtenu dans la partie nom d'utilisateur du formulaire de connexion, et la fonction API est appelée en même temps. début :

Private Declare Function GetUsername Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

La partie de chargement du formulaire obtient le nom d'utilisateur du système :

Private Sub Form_Load()
    Dim sbuffer As String
    Dim lsize As Long
    
    sbuffer = Space$(255)  '因无法确定系统用户名的长度,先开辟一个255(最大值)空格字符控件
    lsize = Len(sbuffer)   'lsize盛放sbuffer字符串的真是长度
    Call GetUsername(sbuffer, lsize) 
    'api中字符串作函数,需要提前确定大小
    
    If lsize > 0 Then
        txtusername.Text = Left$(sbuffer, lsize)
    Else
        txtusername.Text = vbNullString
        '没有字符串
    End If
    
    ok = False
    micount = 0  ’用于登陆次数的标记
 End Sub


2. Dans le bouton de confirmation Établir une connexion :

Private Sub cmdOK_Click()
    Dim txtSQL As String
    Dim mrc As ADODB.Recordset '用于保存数据源记录集
    Dim MsgText As String
    
    UserName = ""     '先将登录名滞空
    If Trim(txtusername.Text = "") Then     '确认用户名输入框不为空
        MsgBox "没有这个用户,请重新输入用户", vbOKOnly + vbExclamation, "警告"
        txtusername.SetFocus
    Else
        txtSQL = "select * from user_info where user_id ='" & txtusername.Text & "'"
        Set mrc = ExecuteSQL(txtSQL, MsgText)    '
 调用模块当中的executesql函数
建立数据库连接
        If mrc.EOF Then
            MsgBox "没有这个用
户,请重新输入用户", vbOKOnly + vbExclamation, "警告"
            txtusername.SetFocus
        Else                                    '确认密码
            If Trim(mrc.Fields(1)) = Trim(txtpassword.Text) Then
                ok = True
                mrc.Close
                Me.Hide
                UserName = Trim(txtusername.Text)
                frmmain.Show
            Else
                MsgBox "输入密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告"
                txtpassword.SetFocus
                txtpassword.Text = ""
            End If
        End If
    End If
    
    micount = micount + 1          '值允许3次输入
    If micount = 3 Then
        Me.Hide
    End If
    Exit Sub
    
End Sub


3. Comprendre la méthode de connexion de la fonction excutesql.

Public Function ConnectString() As String
    ConnectString = "FileDSN=student.dsn;UID=sa;PWD=123" '文件源,登录名,验证密码
End Function
Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset
   Dim cnn As ADODB.Connection
   Dim rst As ADODB.Recordset
   Dim sTokens() As String
   
   'On Error GoTo ExecuteSQL_Error
   
   sTokens = Split(SQL) '该函数定义将sql语句中的词以空格为分解符分解开放进一个数组里
   Set cnn = New ADODB.Connection '实体化,连接数据源
   cnn.Open ConnectString     '打开数据源
   
   If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then       '比较确定sql数据开始单词是否为增,删,改
      cnn.Execute SQL   '执行SQL语句
      MsgString = sTokens(0) & " query successful"
      '虽然MsgString不是返回值,但传递方式是ByRef,实参地址和这个地址相同
   Else
      Set rst = New ADODB.Recordset    '实例化记录集
      rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic   '打开要执行的内容sql,连接数据源,游标类型:键集游标,窗口值固定大小
      '得到临时表,游标指向第一条记录
      'get RecordCount,
      Set ExecuteSQL = rst
      MsgString = "查询到" & rst.RecordCount & _
         " 条记录 "
   End If
   
ExecuteSQL_Exit:  ‘关闭连接
   Set rst = Nothing
   Set cnn = Nothing
   Exit Function
   
ExecuteSQL_Error:
   MsgString = "查询错误: " & _
      Err.Description
   Resume ExecuteSQL_Exit
End Function


En résumé, il existe une stratégie en trois étapes pour établir une connexion : Ouvrir--Exécuter ( ajouter, supprimer, modifier, vérifier )--Fermer

Ce qui précède est le contenu de l'établissement de la base de données et des problèmes de liaison. Pour plus de contenu connexe, veuillez prêter attention au site Web PHP chinois (www.php. cn) !



Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn