データベースの構築とリンクの問題

黄舟
リリース: 2017-02-28 14:01:13
オリジナル
1288 人が閲覧しました

学生管理システムを完成させ、マスターに受け入れられた後、当初の概念の理解が深くないことがわかりました。それから、私は 5 つの例をざっと見て、学習において最も重要なのは反復であると先生がよく言っていました。この観察を通して、私は基本的な概念を再び理解しました。

まず、いくつかの専門用語を見てみましょう: ADO---activex データ オブジェクト 動的データ オブジェクトは、OLE DB を介してさまざまなデータの処理を実現します (オブジェクトのリンクと埋め込み、中国語ではオブジェクトの接続と埋め込み、これはボトムエンドのプログラム インターフェイスです) アクセス。

マスターにADOのオブジェクトについて尋ねられたとき、私がデータベースに定義した接続、レコードセットなどはすべてadoのオブジェクトであることがわかりました。この学生向け情報では 管理システムで最も一般的なのは、上記の 2 つ、つまりレコードセット、接続、およびコマンドの 3 つの独立したオブジェクトです。フィールド、パラメーター、プロパティ、エラーという 4 つの補助オブジェクトもあります

OLE DB は、データ プロバイダー、データ コンシューマー、サービス コンポーネントの 3 つの部分で構成されます。データプロバイダーは、SQL Server や ODBC と同様のデータを提供するプログラムであり、VB によって作成されるプログラムは、データプロバイダーによって提供されるデータを使用して作成されるデータ アプリケーションです。サービス コンポーネントは、データ プロバイダーとデータ コンシューマーを接続する役割を果たします。

5 つの例では、VB 外部プログラムのビジュアル マネージャーによって作成された micrsoft アクセス データベース (ファイルの拡張子は .mdb) を使用しましたが、学生情報管理システムのデータベースは SQL サーバー (接尾辞は .mdb))、データベースベースのアプリケーションの最初のステップはデータベースを作成することです。 2 番目のステップは、VB プログラムでプロジェクトの下の参照を直接クリックし、[Microsoft ActiveX Data Objects 2.6 Library] を選択することです。 3 番目のステップは、コードを使用して接続を確立することです。データベースへのさまざまな接続方法の比較を見てみましょう:

1. Access データベースに直接接続します

2. ODBC を使用してアクセスに接続します。 ODBC には 3 つのデータソースがあります。接続方法はユーザー DNS、システム DNS、ファイル DNS の追加を利用します。

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
ログイン後にコピー

3. ado データ コントロールを使用してデータベース接続を作成する方法は、コントロールのプロパティから接続するだけです。

5 つの例の接続方法を読んだ後、ログイン時に学生管理システムに接続するためのコードを分析してみましょう:

1. ログイン フォームでは、プロフェッショナルになるために、ログイン名を入力します。データベースはシステム ユーザー名に設定されることが多いため、システム ユーザーはログイン フォームのユーザー名部分で自動的に取得され、API 関数が最初に呼び出されます:

set objcn=new connection
objcn.open="dsn=数据库文件名"
set objrs=new recordset
                .
objcn.close
set objrs=nothing
set objcn=nothing
ログイン後にコピー

システム ユーザー名はフォーム読み込み部分で取得されます。

Private Declare Function GetUsername Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
ログイン後にコピー

2. 確認ボタンで接続を確立します:

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
ログイン後にコピー

3. excutesql 関数を実行する接続方法を理解します。

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 つのステップの戦略があります: 開く - 実行 (追加、削除、変更、確認) - 閉じる
上記は、の内容です。データベースの確立とリンクの問題、その他 関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) にご注意ください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート