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;