unit Salesforce; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Error, FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys, FireDAC.Phys.ODBC, FireDAC.Phys.ODBCDef, FireDAC.FMXUI.Wait, FireDAC.DApt, FMX.Controls.Presentation, FMX.StdCtrls, Data.DB, FireDAC.Comp.Client, FMX.ScrollBox, FMX.Memo; type TForm1 = class(TForm) FDConnection1: TFDConnection; connectButton: TButton; outputMemo: TMemo; executeButton: TButton; procedure connectButtonClick(Sender: TObject); procedure executeButtonClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.fmx} procedure TForm1.connectButtonClick(Sender: TObject); begin outputMemo.Text := ''; try // Establish the connection. FDConnection1.Open; executeButton.Enabled := True; outputMemo.Lines.Add('Connection established!'); except on E: EDatabaseError do outputMemo.Lines.Add('Exception raised with message' + E.Message); end; end; procedure TForm1.executeButtonClick(Sender: TObject); var query: TFDQuery; begin query := TFDQuery.Create(nil); try // Define the SQL Query query.Connection := FDConnection1; query.SQL.Text := 'SELECT * FROM Account'; query.Open(); outputMemo.Text := ''; // Add the field names from the table. outputMemo.Lines.Add(String.Format('%s | %s', [' ID ', ' NAME '])); // Add one line to the memo for each record in the table. while not query.Eof do begin outputMemo.Lines.Add(String.Format('%s | %s', [query.FieldByName('ID').AsString, query.FieldByName('Name').AsString])); query.Next; end; finally query.Close; query.DisposeOf; end; end; end.
Salesforce.com ODBCドライバーを使用すると、EmbarcaderoDelphiアプリケーションでSalesforce.comデータを操作できます。
Salesforce.com ODBCドライバーは、EasysoftWebサイトからダウンロードできます。
- WindowsSalesforce.comODBCドライバーをダウンロードします。 (登録が必要です。)
- がインストールされているマシンにSalesforce.comODBCドライバーをインストールしてライセンスを取得します。
インストール手順については、Salesforce.comODBCドライバのドキュメントを参照してください。
Salesforce.com ODBCドライバーを使用してDelphiをSalesforce.comに接続する前に、ODBCデータソースを構成する必要があります。 ODBCデータソースには、ターゲットデータベース(Salesforce.comなど)とそれに接続するために必要なODBCドライバー(Salesforce.com ODBCドライバーなど)の接続の詳細が格納されます。
32ビットのDelphiアプリケーションを作成するので、32ビットバージョンのODBCアドミニストレーター(%WINDIR%\ SysWOW64 \ odbcad32.exe)を使用してデータソースを構成します。
Salesforce.com ODBCドライバーデータソースを作成するには:
- 次のいずれかを実行します:
- ユーザーデータソースを作成するには、[ユーザーDSN]タブで[追加]を選択します。
–または–
- システムデータソースを作成するには、[システムDSN]タブを選択し、[追加]を選択します。
- ユーザーデータソースを作成するには、[ユーザーDSN]タブで[追加]を選択します。
- [Create New Data Source]ダイアログボックスで、[Easysoft ODBC]-[Salesforce Driver]を選択し、[Finish]を選択します。
- Easysoft ODBC-Salesforce Driver DSN Setupダイアログボックスを完了します:
設定 値 DSN Salesforce.com ユーザー名 Salesforce.comユーザーの名前。例:[email protected]。 パスワード Salesforce.comユーザーのパスワード。 トークン 必要に応じて、Salesforce.comユーザーのセキュリティトークン。 セキュリティトークンを提供する必要があるかどうかを確認するには、[テスト]ボタンを選択します。
LOGIN_MUST_USE_SECURITY_TOKEN
を含むエラーで接続の試行が失敗した場合 、1つ提供する必要があります。Salesforce.comは、Salesforce.comユーザーアカウントに関連付けられている電子メールアドレスにセキュリティトークンを電子メールで送信します。セキュリティトークンを受け取っていない場合は、再生成できます。その後、Salesforce.comから新しいセキュリティトークンがメールで送信されます。セキュリティトークンを再生成するには、Salesforce.comにログインし、ユーザーメニューから[設定]を選択します。 [クイック検索]ボックスで「セキュリティトークン」を検索します。 [セキュリティトークンのリセット]ページで[セキュリティトークンのリセット]をクリックします。メールクライアントでトークンを受け取ったら、それをコピーして、[トークン]フィールドに貼り付けます。
- [テスト]ボタンを使用して、Salesforce.comに正常に接続できることを確認します。
次の手順に従って、DelphiアプリケーションからSalesforce.comデータをクエリします。
- 新しいDelphiプロジェクトで、フォームを追加します
- 「executeButton」と「connectButton」という名前の2つのTButtonコントロールを追加します。
Text
を設定します 「実行」および「接続」ボタンのプロパティ。 Enabled
を設定しますexecuteButton
のプロパティFalse
へ 。- 「outputMemo」という名前のTMemoコントロールを追加します。
- TFDConnectionコンポーネントを追加します。このコンポーネントをダブルクリックします。
FireDAC接続エディタダイアログボックスが表示されます。
- [ドライバーID]リストで、[ODBC]を選択します。
- ウィザードボタンを選択します。プロンプトが表示されたら、[マシンデータソース]タブからSalesforceデータソースを選択します。
- [FireDAC接続エディター]ダイアログボックスで、[ユーザー名]ボックスと[パスワード]ボックスから値を削除します。
[ODBCAdvanced]ボックスで、ボックスに次の文字列を既存の値に追加します:
UID=user_name;PWD=password.
user_nameを置き換えます およびパスワード User_NameボックスとPasswordボックスから削除した値を使用します。
- このコードを
OnClick
に追加しますconnectButton
のイベントハンドラー :procedure TForm1.connectButtonClick(Sender: TObject); begin outputMemo.Text := ''; try // Establish the connection. FDConnection1.Open; executeButton.Enabled := True; outputMemo.Lines.Add('Connection established!'); except on E: EDatabaseError do outputMemo.Lines.Add('Exception raised with message' + E.Message); end; end;
- このコードを
OnClick
に追加しますexecuteButton
のイベントハンドラー :procedure TForm1.executeButtonClick(Sender: TObject); var query: TFDQuery; begin query := TFDQuery.Create(nil); try // Define the SQL Query query.Connection := FDConnection1; query.SQL.Text := 'SELECT * FROM Account'; query.Open(); outputMemo.Text := ''; // Add the field names from the table. outputMemo.Lines.Add(String.Format('%s | %s', [' ID ', ' NAME '])); // Add one line to the memo for each record in the table. while not query.Eof do begin outputMemo.Lines.Add(String.Format('%s | %s', [query.FieldByName('ID').AsString, query.FieldByName('Name').AsString])); query.Next; end; finally query.Close; query.DisposeOf; end; end;
- アプリケーションをコンパイルして実行します。
- Salesforce.comデータソースに接続するには、[接続]ボタンを選択します。アカウントテーブルからデータを返すには、[実行]ボタンを選択します。