home > OLE オートメーション > DAO >

ForNext

Only Do What Only You Can Do

19. パラメータクエリー

VBScript

JScript

Perl

PHP

Python

Ruby

PowerShell

Scala

F#

C

C++

C++Builder

更新日 : 2006.07.15
void __fastcall TForm1::Button19Click(TObject *Sender)
{
    //表示用コントロールをクリア
    ListBox1->Items->Clear();
    ListBox2->Items->Clear();
    ListBox3->Items->Clear();

    //データベースを開く (排他モード = false, 読み込み専用 = false)
    Variant de = Variant::CreateObject("DAO.DBEngine.36");
    Variant db = de.Exec(Function("OpenDatabase") << "e:\\test.mdb" << false << false);

    //クエリーを作成
    Variant qd = db.Exec(Function("CreateQueryDef") << "");

    //クエリー文字列を編集
    AnsiString sql  =
        "UPDATE "
        "M_商品 "
        "SET "
        "商品名 = :商品名,"
        "ふりがな = :ふりがな "
        "WHERE 商品CD = :商品CD";
    qd.Exec(PropertySet("Sql") << sql);

    //パラメータを設定
    qd.Exec(PropertyGet("Parameters") << ":商品CD").Exec(PropertySet("Value") << Edit1->Text);
    qd.Exec(PropertyGet("Parameters") << ":商品名").Exec(PropertySet("Value") << Edit2->Text);
    qd.Exec(PropertyGet("Parameters") << ":ふりがな").Exec(PropertySet("Value") << Edit3->Text);

    //クエリーを実行
    qd.Exec(Procedure("Execute"));

    //クエリー文字列を編集
    sql  =
        "SELECT "
        "商品CD,"
        "商品名 "
        "FROM "
        "M_商品 "
        "WHERE 商品CD = :商品CD";
    qd.Exec(PropertySet("Sql") << sql);

    //パラメータを設定
    qd.Exec(PropertyGet("Parameters") << ":商品CD").Exec(PropertySet("Value") << Edit1->Text);

    const int dbOpenForwardOnly = 8;
    Variant rs = qd.Exec(Function("OpenRecordset") << dbOpenForwardOnly);
    if (!rs.Exec(PropertyGet("EOF")))
    {
        //表示用コントロールに項目内容をセット
        Variant fd = rs.Exec(PropertyGet("Fields") << "商品CD");
        ListBox1->Items->Add(fd.Exec(PropertyGet("Value")));

        fd = rs.Exec(PropertyGet("Fields") << "商品名");
        if (VarIsNull(fd.Exec(PropertyGet("Value"))))
            ListBox2->Items->Add("");
        else
            ListBox2->Items->Add(fd.Exec(PropertyGet("Value")));
    }

    //テーブルを閉じる
    rs.Exec(Procedure("Close"));

    //クエリーを閉じる
    qd.Exec(Procedure("Close"));

    //データベースを閉じる
    db.Exec(Procedure("Close"));
}

VC++

C#

Java

Objective-C

D

VB

更新日 : 2006.07.15
Private Sub Command19_Click()
    '表示用コントロールをクリア
    List1.Clear
    List2.Clear
    List3.Clear

    'データベースを開く (排他モード = False, 読み込み専用 = False)
    Dim db As Database
    Set db = DBEngine.OpenDatabase("e:\test.mdb", False, False)

    'クエリー文字列を編集
    Dim Sql As String
    Sql = "UPDATE M_商品 "
    Sql = Sql & "SET "
    Sql = Sql & "商品名 = :商品名,"
    Sql = Sql & "ふりがな = :ふりがな "
    Sql = Sql & "WHERE 商品CD = :商品CD"

    'クエリーを作成
    Dim qd  As QueryDef
    Set qd = db.CreateQueryDef("", Sql)

    'パラメータを設定
    qd.Parameters(":商品CD") = Text1.Text
    qd.Parameters(":商品名") = Text2.Text
    qd.Parameters(":ふりがな") = Text3.Text

    'クエリーを実行
    qd.Execute

    'クエリー文字列を編集
    Sql = "SELECT "
    Sql = Sql & "商品CD,"
    Sql = Sql & "商品名,"
    Sql = Sql & "ふりがな "
    Sql = Sql & "FROM "
    Sql = Sql & "M_商品 "
    Sql = Sql & "WHERE 商品CD = :商品CD"
    qd.Sql = Sql

    'パラメータを設定
    qd.Parameters(":商品CD") = Text1.Text

    'テーブルを開く
    Dim rs As Recordset
    Set rs = qd.OpenRecordset(dbOpenForwardOnly)

    Do Until rs.EOF
        '表示用コントロールに項目内容をセット
        List1.AddItem rs("商品CD")
        List2.AddItem rs("商品名") & ""
        List3.AddItem rs("ふりがな") & ""

        rs.MoveNext
    Loop

    'テーブルを閉じる
    rs.Close

    'クエリーを閉じる
    qd.Close

    'データベースを閉じる
    db.Close
End Sub

VB.NET

Delphi

更新日 : 2006.07.15
procedure TForm1.Button19Click(Sender: TObject);
var
    de :Variant;//DBEngine
    db :Variant;//Database
    qd :Variant;//QueryDef
    rs :Variant;//Recordset
    sql:String;
const
    dbOpenForwardOnly:Integer =   8;
begin
    //表示用コントロールをクリア
    ListBox1.Items.Clear;
    ListBox2.Items.Clear;

    //データベースを開く (排他モード = false, 読み込み専用 = false)
    de := CreateOleObject('DAO.DBEngine.36');
    db := de.OpenDatabase('e:\test.mdb', false, false);

    //クエリー文字列を編集
    sql := 'UPDATE '
        +  'M_商品 '
        +  'SET '
        +  '商品名 = :商品名,'
        +  'ふりがな = :ふりがな '
        +  'WHERE 商品CD = :商品CD';

    //クエリーを作成
    qd := db.CreateQueryDef('', sql);

    //パラメータを設定
    qd.Parameters[':商品CD']    := Edit1.Text;
    qd.Parameters[':商品名']    := Edit2.Text;
    qd.Parameters[':ふりがな']  := Edit3.Text;

    //クエリーを実行
    qd.Execute;

    //クエリー文字列を編集
    sql := 'SELECT '
        +  '商品CD,'
        +  '商品名 '
        +  'FROM '
        +  'M_商品 '
        +  'WHERE 商品CD = :商品CD';
    qd.Sql := sql;

    //パラメータを設定
    qd.Parameters[':商品CD'] := Edit1.Text;

    //テーブルを開く
    rs := qd.OpenRecordset(dbOpenForwardOnly);
    if not rs.EOF then
    begin
        //表示用コントロールに項目内容をセット
        ListBox1.Items.Add(rs.Fields['商品CD'].Value);

        if VarIsNull(rs.Fields['商品名'].Value) then
            ListBox2.Items.Add('')
        else
            ListBox2.Items.Add(rs.Fields['商品名'].Value);
    end;

    //テーブルを閉じる
    rs.Close;

    //クエリーを閉じる
    qd.Close;

    //データベースを閉じる
    db.Close;
end;

Ada

PL/SQL

T-SQL

関数型

inserted by FC2 system