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

Collegamento di Delphi a 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.

Il driver ODBC di Salesforce.com ti consente di lavorare con i dati di Salesforce.com nelle applicazioni Embarcadero Delphi.

Il driver ODBC di Salesforce.com è disponibile per il download dal sito Web Easysoft:

  1. Scarica il driver ODBC di Windows Salesforce.com. (Registrazione richiesta.)
  2. Installare e concedere in licenza il driver ODBC Salesforce.com sulla macchina in cui è installato.

    Per le istruzioni di installazione, vedere la documentazione del driver ODBC di Salesforce.com.

Prima di poter utilizzare il driver ODBC di Salesforce.com per connettere Delphi a Salesforce.com, è necessario configurare un'origine dati ODBC. Un'origine dati ODBC memorizza i dettagli di connessione per il database di destinazione (ad es. Salesforce.com) e il driver ODBC necessario per connettersi ad esso (ad es. il driver ODBC di Salesforce.com).

Creeremo un'applicazione Delphi a 32 bit, quindi utilizziamo la versione a 32 bit di ODBC Administrator (%WINDIR%\SysWOW64\odbcad32.exe) per configurare la nostra origine dati.

Per creare un'origine dati del driver ODBC Salesforce.com:

  1. Esegui una delle seguenti operazioni:
    • Per creare un'origine dati utente, nella scheda DSN utente, scegli Aggiungi.

      –Oppure–

    • Per creare un'origine dati di sistema, scegli la scheda DSN di sistema, quindi scegli Aggiungi.
  2. Nella finestra di dialogo Crea nuova origine dati, scegli Easysoft ODBC-Salesforce Driver, quindi scegli Fine.
  3. Completare la finestra di dialogo Configurazione DSN di Easysoft ODBC-Salesforce Driver:
    Impostazioni Valore
    DSN Salesforce.com
    Nome utente Il nome del tuo utente Salesforce.com. Ad esempio, [email protected].
    Password La password per l'utente Salesforce.com.
    Segnale Il token di sicurezza per l'utente Salesforce.com, se richiesto.

    Per scoprire se è necessario fornire un token di sicurezza, scegli il pulsante Test. Se il tentativo di connessione fallisce con un errore che contiene LOGIN_MUST_USE_SECURITY_TOKEN , devi fornirne uno.

    Salesforce.com invia tramite e-mail il token di sicurezza all'indirizzo e-mail associato al tuo account utente Salesforce.com. Se non hai ricevuto un token di sicurezza, puoi rigenerarlo. Salesforce.com ti invierà quindi un'e-mail con il nuovo token di sicurezza. Per rigenerare il token di sicurezza, accedi a Salesforce.com e quindi scegli Configurazione dal menu utente. Cerca "token di sicurezza" nella casella Ricerca veloce. Fare clic su Reimposta token di sicurezza nella pagina Reimposta token di sicurezza. Quando ricevi il token nel tuo client di posta, copialo e incollalo nel campo Token.

  4. Utilizza il pulsante Test per verificare di poterti connettere correttamente a Salesforce.com.

Segui questi passaggi per interrogare alcuni dati di Salesforce.com da un'applicazione Delphi.

  1. In un nuovo progetto Delphi, aggiungi un modulo
  2. Aggiungi due controlli TButton, denominati "executeButton" e "connectButton". Imposta il Text proprietà dei pulsanti per "Esegui" e "Connetti".
  3. Imposta il Enabled proprietà di executeButton a False .
  4. Aggiungi un controllo TMemo denominato "outputMemo".
  5. Aggiungi un componente TFDConnection. Fare doppio clic su questo componente.

    Viene visualizzata la finestra di dialogo Editor connessione FireDAC.

  6. Nell'elenco ID driver, scegli ODBC.
  7. Scegli il pulsante Procedura guidata. Scegli la tua origine dati Salesforce dalla scheda Origini dati macchina, quando richiesto.
  8. Nella finestra di dialogo FireDAC Connection Editor, elimina i valori dalle caselle User_Name e Password.

    Nella casella ODBCAdvanced, casella aggiungi questa stringa al valore esistente:

    UID=user_name;PWD=password.
    

    Sostituisci nome_utente e password con i valori appena cancellati dalle caselle User_Name e Password.

  9. Aggiungi questo codice a OnClick gestore di eventi per 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. Aggiungi questo codice a OnClick gestore di eventi per 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. Compila ed esegui l'applicazione.
  12. Per connetterti all'origine dati Salesforce.com, scegli il pulsante Connetti. Per restituire alcuni dati dalla tabella Account, scegli il pulsante Esegui.