sql >> Database >  >> RDS >> Database

Delphi verbinden met 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.

Met het Salesforce.com ODBC-stuurprogramma kunt u werken met Salesforce.com-gegevens in Embarcadero Delphi-toepassingen.

Het ODBC-stuurprogramma van Salesforce.com kan worden gedownload van de Easysoft-website:

  1. Download het Windows Salesforce.com ODBC-stuurprogramma. (Registratie vereist.)
  2. Installeer en licentieer het Salesforce.com ODBC-stuurprogramma op de computer waarop het is geïnstalleerd.

    Zie de documentatie van Salesforce.com ODBC Driver voor installatie-instructies.

Voordat u het ODBC-stuurprogramma van Salesforce.com kunt gebruiken om Delphi te verbinden met Salesforce.com, moet u een ODBC-gegevensbron configureren. Een ODBC-gegevensbron slaat de verbindingsdetails op voor de doeldatabase (bijv. Salesforce.com) en het ODBC-stuurprogramma dat nodig is om er verbinding mee te maken (bijv. het Salesforce.com ODBC-stuurprogramma).

We gaan een 32-bits Delphi-toepassing maken, dus we gebruiken de 32-bits versie van ODBC Administrator (%WINDIR%\SysWOW64\odbcad32.exe) om onze gegevensbron te configureren.

Een Salesforce.com ODBC Driver-gegevensbron maken:

  1. Voer een van de volgende handelingen uit:
    • Als u een gebruikersgegevensbron wilt maken, kiest u op het tabblad Gebruikers-DSN de optie Toevoegen.

      –Of–

    • Als u een systeemgegevensbron wilt maken, kiest u het tabblad Systeem-DSN en kiest u vervolgens Toevoegen.
  2. Kies in het dialoogvenster Nieuwe gegevensbron maken de optie Easysoft ODBC-Salesforce Driver en kies vervolgens Voltooien.
  3. Vul het dialoogvenster Easysoft ODBC-Salesforce Driver DSN Setup in:
    Instelling Waarde
    DSN Salesforce.com
    Gebruikersnaam De naam van uw Salesforce.com-gebruiker. Bijvoorbeeld [email protected].
    Wachtwoord Het wachtwoord voor uw Salesforce.com-gebruiker.
    Token Het beveiligingstoken voor uw Salesforce.com-gebruiker, indien nodig.

    Als u wilt weten of u een beveiligingstoken moet aanleveren, kiest u de knop Test. Als de verbindingspoging mislukt met een fout die LOGIN_MUST_USE_SECURITY_TOKEN bevat , je moet er een aanleveren.

    Salesforce.com e-mailt het beveiligingstoken naar het e-mailadres dat is gekoppeld aan uw Salesforce.com-gebruikersaccount. Als u geen beveiligingstoken hebt ontvangen, kunt u deze opnieuw genereren. Salesforce.com zal vervolgens het nieuwe beveiligingstoken naar u e-mailen. Om uw beveiligingstoken opnieuw te genereren, logt u in op Salesforce.com en kiest u vervolgens Set-up in het gebruikersmenu. Zoek naar "beveiligingstoken" in het vak Snel zoeken. Klik op Beveiligingstoken opnieuw instellen op de pagina Beveiligingstoken opnieuw instellen. Wanneer u de token in uw e-mailclient ontvangt, kopieert u deze en plakt u deze in het veld Token.

  4. Gebruik de knop Test om te controleren of u verbinding kunt maken met Salesforce.com.

Volg deze stappen om een ​​query uit te voeren op bepaalde Salesforce.com-gegevens vanuit een Delphi-toepassing.

  1. Voeg een formulier toe in een nieuw Delphi-project
  2. Voeg twee TButton-besturingselementen toe, genaamd "executeButton" en "connectButton". Stel de Text in eigenschappen van de knoppen naar "Uitvoeren" en "Verbinden".
  3. Stel de Enabled . in eigenschap van executeButton naar False .
  4. Voeg een TMemo-besturingselement toe met de naam "outputMemo".
  5. Voeg een TFDConnection-component toe. Dubbelklik op dit onderdeel.

    Het dialoogvenster FireDAC Connection Editor wordt weergegeven.

  6. Kies in de lijst met chauffeurs-ID's ODBC.
  7. Kies de Wizard-knop. Kies uw Salesforce-gegevensbron op het tabblad Machinegegevensbronnen als daarom wordt gevraagd.
  8. In het dialoogvenster FireDAC Connection Editor verwijdert u de waarden uit de vakken User_Name en Password.

    Voeg in het vak ODBCAdvanced deze tekenreeks toe aan de bestaande waarde:

    UID=user_name;PWD=password.
    

    Vervang gebruikersnaam en wachtwoord met de waarden die u zojuist hebt verwijderd uit de vakken User_Name en Password.

  9. Voeg deze code toe aan de OnClick gebeurtenis-handler voor 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. Voeg deze code toe aan de OnClick gebeurtenishandler voor 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. Compileer en voer de applicatie uit.
  12. Kies de knop Verbinden om verbinding te maken met de Salesforce.com-gegevensbron. Om wat gegevens uit de Account-tabel terug te halen, kiest u de knop Uitvoeren.

  1. Hoe ORA-28000 op te lossen, het account is vergrendeld

  2. Eenvoudige recursieve query in Oracle

  3. Hoe gebruik ik op delete cascade in mysql?

  4. Oracle Converteer TIMESTAMP met tijdzone naar DATE