Database
 sql >> Base de données >  >> RDS >> Database

Connexion de Delphi à 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.

Le pilote ODBC Salesforce.com vous permet d'utiliser les données Salesforce.com dans les applications Embarcadero Delphi.

Le pilote ODBC Salesforce.com est disponible en téléchargement sur le site Web d'Easysoft :

  1. Téléchargez le pilote ODBC Windows Salesforce.com. (Inscription requise.)
  2. Installez et obtenez une licence pour le pilote ODBC Salesforce.com sur la machine sur laquelle il est installé.

    Pour obtenir des instructions d'installation, consultez la documentation du pilote ODBC Salesforce.com.

Avant de pouvoir utiliser le pilote ODBC Salesforce.com pour connecter Delphi à Salesforce.com, vous devez configurer une source de données ODBC. Une source de données ODBC stocke les détails de connexion pour la base de données cible (par exemple, Salesforce.com) et le pilote ODBC requis pour s'y connecter (par exemple, le pilote ODBC Salesforce.com).

Nous allons créer une application Delphi 32 bits, nous utilisons donc la version 32 bits de l'administrateur ODBC (%WINDIR%\SysWOW64\odbcad32.exe) pour configurer notre source de données.

Pour créer une source de données de pilote ODBC Salesforce.com :

  1. Effectuez l'une des actions suivantes :
    • Pour créer une source de données utilisateur, dans l'onglet DSN utilisateur, choisissez Ajouter.

      –Ou–

    • Pour créer une source de données système, choisissez l'onglet DSN système, puis choisissez Ajouter.
  2. Dans la boîte de dialogue Créer une nouvelle source de données, choisissez Pilote Easysoft ODBC-Salesforce, puis choisissez Terminer.
  3. Renseignez la boîte de dialogue Configuration du DSN du pilote Easysoft ODBC-Salesforce :
    Paramètre Valeur
    DSN Salesforce.com
    Nom d'utilisateur Le nom de votre utilisateur Salesforce.com. Par exemple, [email protected].
    Mot de passe Le mot de passe de votre utilisateur Salesforce.com.
    Jeton Le jeton de sécurité de votre utilisateur Salesforce.com, si nécessaire.

    Pour savoir si vous devez fournir un jeton de sécurité, choisissez le bouton Tester. Si la tentative de connexion échoue avec une erreur contenant LOGIN_MUST_USE_SECURITY_TOKEN , vous devez en fournir un.

    Salesforce.com envoie le jeton de sécurité par e-mail à l'adresse e-mail associée à votre compte d'utilisateur Salesforce.com. Si vous n'avez pas reçu de jeton de sécurité, vous pouvez le régénérer. Salesforce.com vous enverra ensuite le nouveau jeton de sécurité par e-mail. Pour régénérer votre jeton de sécurité, connectez-vous à Salesforce.com, puis choisissez Configuration dans le menu utilisateur. Recherchez « jeton de sécurité » dans la case Recherche rapide. Cliquez sur Réinitialiser le jeton de sécurité dans la page Réinitialiser le jeton de sécurité. Lorsque vous recevez le jeton dans votre client de messagerie, copiez-le, puis collez-le dans le champ Jeton.

  4. Utilisez le bouton Tester pour vérifier que vous pouvez vous connecter avec succès à Salesforce.com.

Suivez ces étapes pour interroger certaines données Salesforce.com à partir d'une application Delphi.

  1. Dans un nouveau projet Delphi, ajoutez un formulaire
  2. Ajoutez deux contrôles TButton, nommés "executeButton" et "connectButton". Définissez le Text propriétés des boutons à "Exécuter" et "Connecter".
  3. Définir le Enabled propriété de executeButton à False .
  4. Ajouter un contrôle TMemo nommé "outputMemo".
  5. Ajouter un composant TFDConnection. Double-cliquez sur ce composant.

    La boîte de dialogue Éditeur de connexion FireDAC s'affiche.

  6. Dans la liste des ID de pilote, choisissez ODBC.
  7. Choisissez le bouton Assistant. Choisissez votre source de données Salesforce dans l'onglet Sources de données machine, lorsque vous y êtes invité.
  8. Dans la boîte de dialogue FireDAC Connection Editor, supprimez les valeurs des zones User_Name et Password.

    Dans la zone ODBCAdvanced, ajoutez cette chaîne à la valeur existante :

    UID=user_name;PWD=password.
    

    Remplacez user_name et mot de passe avec les valeurs que vous venez de supprimer des zones User_Name et Password.

  9. Ajouter ce code au OnClick gestionnaire d'événements pour 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. Ajouter ce code au OnClick gestionnaire d'événements pour 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. Compilez et exécutez l'application.
  12. Pour vous connecter à la source de données Salesforce.com, choisissez le bouton Connecter. Pour renvoyer certaines données de la table Compte, choisissez le bouton Exécuter.