Tutorials and Guide to Samples (v11)

レッスン 3:Delphi で ODBC を使用する

データベースに接続する

  1. TDatabase(オプション)と、TTable または TQuery、および TDataSource をフォーム上に配置します。
    TDatabase オブジェクトをフォーム上に配置してプロパティを設定するには - Delphi
      a. コンポーネントをフォーム上に配置します。
      b. AliasName プロパティを ODBC DSN に設定します。
      c. DatabaseName プロパティを覚えやすい値に設定します。
      d. LoginPrompt プロパティを適切な値に設定します。
    TQuery をフォーム上に配置してプロパティを設定するには
      a. コンポーネントをフォーム上に配置します。
      b. DatabaseName プロパティを TDatabase に指定した名前に設定します。
      c. SQL プロパティを有効な SQL ステートメント(パラメーターの有無は無関係)に設定します。
      d. SQL でパラメーターが使用されている場合は、Params 文字列を設定します。
      e. 設計時にクエリを実行できるよう、Active プロパティを True に設定します。
  2. TDatabase のプロパティで Connected を True に設定します。
  3. TTable または TQuery のプロパティで、Active を True に設定します。
  4. TTable または TQuery へ接続するように TDataSource を設定します。
  5. プログラムの起動時に自動接続されないようにするには、TTable または TQuery の Active プロパティを False に設定しておき、実行時に接続が要求された際、コードでこの設定を True に変更します。

SQL を使用してクエリを実行する

  1. TQuery コンポーネントをオプションの TDatabase と TDatasource と一緒に使用し、TQuery の SQL プロパティをクエリを表す有効な SQL ステートメントに設定します。
  2. TQuery の Active プロパティを True に設定して、設計時にクエリを実行したり、実行時に TQuery を閉じたり開いたりできるようにします。

begin 
  TitleQuery.Active := FALSE; 
  TitleQuery.SQL.Clear; 
  if IDRadioButton.Checked then begin 
    TitleQuery.SQL.Add('select a.*, b.Description from Titles a, Categories b '); 
    TitleQuery.SQL.Add('where CategoryID = Category '); 
    TitleQuery.SQL.Add('order by a.TitleID'); 
  end else begin 
    TitleQuery.SQL.Add('select a.*, b.Description from Titles a, Categories b '); 
    TitleQuery.SQL.Add('where CategoryID = Category '); 
    TitleQuery.SQL.Add('order by a.Title'); 
  end; 
  TitleQuery.Active := TRUE; 
end; 

コントロールをバインドする

Query1.Params[1] := 'Clyde'; 
Query1.Params[2] := '1234 First Street'; 
Query1.Params[3] := ''; 
Query1.Params[4] := 'Austin'; 
Query1.Params[5] := 'TX'; 
Query1.Params[6] := '78743'; 
Query1.Params[7] := '512-555-1234'; 
Query1.ExecSQL; 

SQL を使用して更新する

  1. TQuery コンポーネントを使用します。
  2. SQL プロパティに Update ステートメントを設定します。
  3. ExecSQL メソッドを呼び出します。

TitleUpdateQuery.SQL.Clear; 
TitleUpdateQuery.SQL.Add('UPDATE titles '); 
TitleUpdateQuery.SQL.Add('set TitleID = ' +  
   intToStr(Titles.TitleQuery.FieldValues['TitleID']) + ', '); 
TitleUpdateQuery.SQL.Add('Title = ''' + TitleEdit.Text  + ''', '); 
TitleUpdateQuery.SQL.Add('Category = ' + intToStr(CategoryDBComboBox.ItemIndex + 1)  
   + ', '); 
TitleUpdateQuery.SQL.Add('Price = ' + PriceEdit.Text  + ', '); 
TitleUpdateQuery.SQL.Add('Term = ' + TermEdit.Text + ' '); 
TitleUpdateQuery.SQL.Add('where TitleID =  ' +  
   intToStr(Titles.TitleQuery.FieldValues['TitleID']) + ' '); 
TitleUpdateQuery.ExecSQL; 

SQL を使用して挿入する

  1. TQuery コンポーネントをフォーム上に配置します。
  2. SQL プロパティに Insert ステートメントを設定します。
  3. TQuery の ExecSQL メソッドを呼び出します。

TitleUpdateQuery.SQL.Clear; 
TitleUpdateQuery.SQL.Add('INSERT into titles values ('); 
TitleUpdateQuery.SQL.Add('0, ''' + TitleEdit.Text + ''', '); 
TitleUpdateQuery.SQL.Add(intToStr(CategoryDBComboBox.ItemIndex + 1) + ', '); 
TitleUpdateQuery.SQL.Add(PriceEdit.Text  + ', '); 
TitleUpdateQuery.SQL.Add(TermEdit.Text + ' )'); 
TitleUpdateQuery.ExecSQL; 

パラメーター クエリを使用する

  1. TQuery コンポーネントを使用してください。
  2. SQL プロパティにパラメーターを持つステートメントを設定します。パラメーターは、コロンで始まる :Param で表されます。
  3. Params プロパティ エディターで、SQL ステートメント内の名前付けされた各パラメーターの Type とデフォルト値を指定します。
  4. 実行時に、Params プロパティをコードで設定します。

Query1.Close; 
Query1.SQL.Add('select * from customers '); 
Query1.SQL.Add('where LastName = :LName and FirstName = :FName'); 
[ . . . ] 
Query1.Params[0] := 'Henderson'; 
Query1.Params[1] := 'Clyde'; 
Query1.Open; 

パラメーター Update ステートメントを使用する

  1. TQuery コンポーネントを使用してください。
  2. SQL プロパティにパラメーターを持つ Update ステートメントを設定します。パラメーターは、コロンで始まる :Param で表されます。
  3. Params プロパティ エディターで、SQL ステートメント内の名前付けされた各パラメーターの Type とデフォルト値を指定します。
  4. 実行時に、Params プロパティをコードで設定します。

Query1.Close; 
Query1.SQL.Clear; 
Query1.SQL.Add('update customers '); 
Query1.SQL.Add('set LastName = :LName, FirstName = :FName '); 
Query1.SQL.Add('where CustID = :CustID'); 
[ . . . ] 
Query1.Params[0] := 'Henderson'; 
Query1.Params[1] := 'Clyde'; 
Query1.Params[2] := iCustID; 
Query1.ExecSQL; 

パラメーター Insert ステートメントを使用する

  1. TQuery コンポーネントをフォーム上に配置します。
  2. SQL プロパティにパラメーターを持つ Insert ステートメントを設定します。パラメーターは、コロンで始まる :Param で表されます。
  3. Params プロパティ エディターで、SQL ステートメント内の名前付けされた各パラメーターの Type とデフォルト値を指定します。
  4. 実行時に、Params プロパティをコードで設定します。

Query1.Close; 
Query1.SQL.Clear; 
Query1.SQL.Add('insert into customers '); 
Query1.SQL.Add('values (0, :LName, :FName, :Address1, :Address2, '); 
Query1.SQL.Add(':City, :State, :Zip, :Phone)); 
[ . . . ] 
Query1.Params[0] := 'Henderson'; 

レッスン 2:Delphi で Btrieve API を使用する

Pervasive PSQL を Visual Basic で使用