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.
Mit dem Salesforce.com-ODBC-Treiber können Sie mit Salesforce.com-Daten in Embarcadero-Delphi-Anwendungen arbeiten.
Der Salesforce.com-ODBC-Treiber kann von der Easysoft-Website heruntergeladen werden:
- Laden Sie den Windows Salesforce.com ODBC-Treiber herunter. (Anmeldung erforderlich.)
- Installieren und lizenzieren Sie den Salesforce.com-ODBC-Treiber auf dem Computer, auf dem er installiert ist.
Installationsanweisungen finden Sie in der Salesforce.com-ODBC-Treiberdokumentation.
Bevor Sie den Salesforce.com-ODBC-Treiber verwenden können, um Delphi mit Salesforce.com zu verbinden, müssen Sie eine ODBC-Datenquelle konfigurieren. Eine ODBC-Datenquelle speichert die Verbindungsdetails für die Zieldatenbank (z. B. Salesforce.com) und den ODBC-Treiber, der für die Verbindung dazu erforderlich ist (z. B. der ODBC-Treiber von Salesforce.com).
Wir werden eine 32-Bit-Delphi-Anwendung erstellen, also verwenden wir die 32-Bit-Version des ODBC-Administrators (%WINDIR%\SysWOW64\odbcad32.exe), um unsere Datenquelle zu konfigurieren.
So erstellen Sie eine Salesforce.com-ODBC-Treiberdatenquelle:
- Führen Sie einen der folgenden Schritte aus:
- Um eine Benutzerdatenquelle zu erstellen, wählen Sie auf der Registerkarte "Benutzer-DSN" die Option "Hinzufügen".
–Oder–
- Um eine Systemdatenquelle zu erstellen, wählen Sie die Registerkarte System-DSN und dann Hinzufügen.
- Um eine Benutzerdatenquelle zu erstellen, wählen Sie auf der Registerkarte "Benutzer-DSN" die Option "Hinzufügen".
- Wählen Sie im Dialogfeld „Neue Datenquelle erstellen“ die Option „Easysoft ODBC-Salesforce-Treiber“ und dann „Fertig stellen“.
- Vervollständigen Sie das Dialogfeld Easysoft ODBC-Salesforce Driver DSN Setup:
Setting Wert DSN Salesforce.com Benutzername Der Name Ihres Salesforce.com-Benutzers. Beispiel:[email protected]. Passwort Das Passwort für Ihren Salesforce.com-Benutzer. Token Das Sicherheitstoken für Ihren Salesforce.com-Benutzer, falls erforderlich. Um herauszufinden, ob Sie ein Sicherheitstoken angeben müssen, wählen Sie die Schaltfläche Test. Wenn der Verbindungsversuch mit einem Fehler fehlschlägt, der
LOGIN_MUST_USE_SECURITY_TOKEN
enthält , müssen Sie einen angeben.Salesforce.com sendet das Sicherheitstoken per E-Mail an die E-Mail-Adresse, die Ihrem Salesforce.com-Benutzerkonto zugeordnet ist. Wenn Sie kein Sicherheitstoken erhalten haben, können Sie es neu generieren. Salesforce.com sendet Ihnen dann das neue Sicherheitstoken per E-Mail zu. Melden Sie sich zum erneuten Generieren Ihres Sicherheitstokens bei Salesforce.com an und wählen Sie dann Setup aus dem Benutzermenü. Suchen Sie im Feld „Schnellsuche“ nach „Sicherheitstoken“. Klicken Sie auf der Seite „Sicherheitstoken zurücksetzen“ auf „Sicherheitstoken zurücksetzen“. Wenn Sie das Token in Ihrem E-Mail-Client erhalten, kopieren Sie es und fügen Sie es dann in das Token-Feld ein.
- Verwenden Sie die Test-Schaltfläche, um zu überprüfen, ob Sie erfolgreich eine Verbindung zu Salesforce.com herstellen können.
Führen Sie diese Schritte aus, um einige Salesforce.com-Daten von einer Delphi-Anwendung abzufragen.
- Fügen Sie in einem neuen Delphi-Projekt ein Formular hinzu
- Fügen Sie zwei TButton-Steuerelemente namens "executeButton" und "connectButton" hinzu. Legen Sie den
Text
fest Eigenschaften der Schaltflächen auf "Ausführen" und "Verbinden". - Stellen Sie den
Enabled
ein Eigenschaft vonexecuteButton
zuFalse
. - Fügen Sie ein TMemo-Steuerelement namens "outputMemo" hinzu.
- Fügen Sie eine TFDConnection-Komponente hinzu. Doppelklicken Sie auf diese Komponente.
Das Dialogfeld „FireDAC-Verbindungseditor“ wird angezeigt.
- Wählen Sie in der Treiber-ID-Liste ODBC aus.
- Wählen Sie die Wizard-Schaltfläche. Wählen Sie Ihre Salesforce-Datenquelle auf der Registerkarte Maschinendatenquellen aus, wenn Sie dazu aufgefordert werden.
- Löschen Sie im Dialogfeld FireDAC Connection Editor die Werte aus den Feldern User_Name und Password.
Hängen Sie im Feld ODBCAdvanced diese Zeichenfolge an den vorhandenen Wert an:
UID=user_name;PWD=password.
Ersetzen Sie Benutzername und Passwort mit den Werten, die Sie gerade aus den Feldern User_Name und Password gelöscht haben.
- Fügen Sie diesen Code zum
OnClick
hinzu Ereignishandler fürconnectButton
: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;
- Fügen Sie diesen Code zum
OnClick
hinzu Event-Handler fürexecuteButton
: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;
- Kompilieren Sie die Anwendung und führen Sie sie aus.
- Um eine Verbindung zur Datenquelle Salesforce.com herzustellen, wählen Sie die Schaltfläche Verbinden aus. Um einige Daten aus der Account-Tabelle zurückzugeben, wählen Sie die Schaltfläche Ausführen.