Delphi のUSPS データへのデータバインドコントロール

詳細情報をご希望ですか?

製品の詳細情報:

USPS 連携ソリューション


標準のデータアクセスコンポーネントとコントロールを備えたDelphi のUSPS にデータバインドします。

CData ODBC Driver for USPS は、ODBC 標準をサポートし、ライブUSPS データとビジュアルフォームデザイナおよびDelphi の他のラピッド開発ツールとの統合を可能にします。ODBC ドライバーは、データベース開発用のシングルAPI を提供することにより、Delphi のような単一のコードベースを共有するアプリケーションのデータアクセス戦略を簡素化します。この記事では、USPS に接続してシンプルなVisual Component Library (VCL) アプリケーションおよびDelphi コードからデータをクエリする方法を説明します。

USPS データへの新しいFireDAC 接続を作成します。

未指定の場合は、初めにODBC DSN (data source name) で接続プロパティを指定します。ドライバーのインストールの最後にアドミニストレーターが開きます。Microsoft ODBC Data Source Administrator を使用して、ODBC DSN を作成および構成できます。

USPS に認証するには、次の接続プロパティを設定してください。

  • PostageProvider:リクエストの処理に使用するポステージプロバイダです。利用可能なオプションはENDICIA とSTAMPS です。指定されていない場合、 デフォルトはENDICIA です。
  • UseSandbox:ライブまたはテストリクエストを、運用サーバーに送るかサンドボックスサーバーに送るかを制御します。 true に設定した場合、Password、AccountNumber、StampsUserId プロパティは無視されます。
  • StampsUserId:この値はStamps サーバーに認証してログインするために使用されます。この値は Endicia には使用されず、UseSandbox がtrue の場合はオプションです。
  • Password:この値はEndicia とStamps サーバーへのログインに使用されます。ポステージプロバイダがEndicia の場合、この値はポステージアカウントに紐づけられたパスフレーズになります。 UseSandbox がtrue の場合にはオプションです。
  • AccountNumber:郵送者のアカウント番号です。UseSandbox がtrue の場合にはオプションです。
  • PrintLabelLocation:このプロパティは、GenerateLabels またはGenerateReturnLabels ストアドプロシージャを使用する場合には必須です。 生成されたラベルが格納されているフォルダの場所を指定してください。

キャッシュデータベース

USPS から利用可能な有用なタスクには多くのデータを要求します。データの入力を簡単にして後日思い出せるようにするには、 キャッシュデータベースを使用してリクエストを行ってください。キャッシュの使用にはキャッシュ用の接続プロパティを設定してください。

  • CacheLocation:デフォルトのキャッシュプロバイダーで接続が設定される、キャッシュの場所へのパスです。例えば、C:/users/username/documents/uspscache

CacheLocation の代わりに、CacheConnectionCacheProvider を設定して デフォルト以外のプロバイダーを使用してキャッシュ接続を設定することもできます。

以下のステップに従ってData Explorer を使用し、USPS へのFireDAC 接続を作成できます。

  1. 新しいVCL Forms アプリケーションの[Data Explorer]で[FireDAC]ノードを展開します。
  2. [Data Explorer]で[ODBC Data Source]ノードを右クリックします。
  3. [Add New Connection]をクリックします。
  4. 接続の名前を入力します。
  5. 表示される[FireDAC Connection Editor]で、[DataSource]プロパティをODBC DSN for USPS の名前に設定します。

USPS データに接続できるVCL アプリケーションの作成

以下のステップに従って、クエリの結果をグリッドに表示するシンプルなVCL アプリケーションからUSPS のクエリの実行を開始します。

  1. TFDConnection コンポーネントフォームにドロップし、以下のプロパティを設定します。

    • ConnectionDefName:USPS へのFireDAC 接続を選択します。
    • Connected:メニューから[True]を選択し、表示されるダイアログで資格情報を入力します。
  2. TFDQuery コンポーネントをフォームにドロップし、以下のプロパティを設定します。

    • Connection:コンポーネントがまだ指定されていない場合は、このプロパティを[TFDConnection]コンポーネントに設定します。
    • SQL:[SQL]プロパティ内のボタンをクリックし、クエリを入力します。例:

      SELECT FirstName, Phone FROM Senders WHERE SenderID = '25'
    • Active:このプロパティをtrue に設定します。
  3. TDataSource コンポーネントをフォームにドロップし、以下のプロパティを設定します。

    • DataSet:このプロパティのメニューで、TFDQuery コンポーネントの名前を選択します。
  4. TDBGrid コントロールをフォームにドロップし、以下のプロパティを設定します。

    • DataSource:TDataSource の名前を選択します。
  5. 実行時エラーを回避するために、TFDGUIxWaitCursor をフォームにドロップします。

FireDAC コンポーネントを使用してUSPS へのコマンドを実行

TFDConnection およびTFQuery コンポーネントを使用してUSPS へのクエリを実行できます。このセクションでは、TFQuery コンポーネントを使用してクエリを実行するUSPS 固有の例を示します。

USPS データに接続

データソースに接続するには、TFDConnection コンポーネントの[Connected]プロパティをtrue に設定します。コードでも同じプロパティを設定できます。

FDConnection1.ConnectionDefName := 'myusps'; FDConnection1.Connected := true;

パラメータクエリの作成

パラメータ化されたリソースはパフォーマンスを向上させることができます。ステートメントの準備は、システムリソースと時間の面でコストがかかります。ステートメントの準備中、接続がアクティブで開いている必要があるためです。FireDACはデフォルトで、同じクエリが何度もリコンパイルされないようにクエリを準備します。ステートメントの準備を無効にするには、ResourceOptions.DirectExecute を[True]に設定します。クエリを一回だけ実行する必要がある場合などに設定します。

クエリの実行

select クエリなど、結果セットを返すクエリを実行するには、Open メソッドを使用します。Open メソッドは、クエリを実行して結果セットを返し、それを開きます。クエリが結果セットを生成しない場合、Open メソッドはエラーを返します。

FDQuery1.Open('select * from Senders where SenderID = :SenderID',['25']);

delete のような結果セットを返さないクエリを実行するには、ExecSQL メソッドを使用します。クエリが結果セットを返す場合、ExecSQL メソッドはエラーを返します。影響を受ける行の数を取得するには、[TFD.RowsAffected]プロパティを使用します。

FDQuery1.ExecSQL('delete from Senders where Id= :myId',['x12345']); i := FDQuery1.RowsAffected;