Database
 sql >> Datenbank >  >> RDS >> Database

Verbinden von Delphi mit Salesforce.com

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:

  1. Laden Sie den Windows Salesforce.com ODBC-Treiber herunter. (Anmeldung erforderlich.)
  2. 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:

  1. 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.
  2. Wählen Sie im Dialogfeld „Neue Datenquelle erstellen“ die Option „Easysoft ODBC-Salesforce-Treiber“ und dann „Fertig stellen“.
  3. 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.

  4. 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.

  1. Fügen Sie in einem neuen Delphi-Projekt ein Formular hinzu
  2. 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".
  3. Stellen Sie den Enabled ein Eigenschaft von executeButton zu False .
  4. Fügen Sie ein TMemo-Steuerelement namens "outputMemo" hinzu.
  5. Fügen Sie eine TFDConnection-Komponente hinzu. Doppelklicken Sie auf diese Komponente.

    Das Dialogfeld „FireDAC-Verbindungseditor“ wird angezeigt.

  6. Wählen Sie in der Treiber-ID-Liste ODBC aus.
  7. Wählen Sie die Wizard-Schaltfläche. Wählen Sie Ihre Salesforce-Datenquelle auf der Registerkarte Maschinendatenquellen aus, wenn Sie dazu aufgefordert werden.
  8. 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.

  9. Fügen Sie diesen Code zum OnClick hinzu Ereignishandler für 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;
    
  10. Fügen Sie diesen Code zum OnClick hinzu Event-Handler für 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;
    
  11. Kompilieren Sie die Anwendung und führen Sie sie aus.
  12. 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.