sql >> Databasteknik >  >> RDS >> Database

Ansluter Delphi till 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.

Salesforce.com ODBC-drivrutinen gör att du kan arbeta med Salesforce.com-data i Embarcadero Delphi-applikationer.

Salesforce.com ODBC-drivrutinen finns att ladda ner från Easysofts webbplats:

  1. Ladda ner Windows Salesforce.com ODBC-drivrutinen. (Registrering krävs.)
  2. Installera och licensiera Salesforce.com ODBC-drivrutinen på maskinen där den är installerad.

    För installationsinstruktioner, se Salesforce.com ODBC-drivrutinsdokumentationen.

Innan du kan använda Salesforce.com ODBC-drivrutinen för att ansluta Delphi till Salesforce.com måste du konfigurera en ODBC-datakälla. En ODBC-datakälla lagrar anslutningsdetaljerna för måldatabasen (t.ex. Salesforce.com) och ODBC-drivrutinen som krävs för att ansluta till den (t.ex. Salesforce.com ODBC-drivrutinen).

Vi kommer att skapa en 32-bitars Delphi-applikation så vi använder 32-bitarsversionen av ODBC Administrator (%WINDIR%\SysWOW64\odbcad32.exe) för att konfigurera vår datakälla.

Så här skapar du en datakälla för Salesforce.com ODBC-drivrutin:

  1. Gör något av följande:
    • För att skapa en användardatakälla, välj Lägg till på fliken Användar-DSN.

      –Eller–

    • För att skapa en systemdatakälla, välj fliken System DSN och välj sedan Lägg till.
  2. I dialogrutan Skapa ny datakälla väljer du Easysoft ODBC-Salesforce-drivrutin och väljer sedan Slutför.
  3. Slutför dialogrutan Easysoft ODBC-Salesforce Driver DSN Setup:
    Inställning Värde
    DSN Salesforce.com
    Användarnamn Namnet på din Salesforce.com-användare. Till exempel, [email protected].
    Lösenord Lösenordet för din Salesforce.com-användare.
    Token Säkerhetstoken för din Salesforce.com-användare, om det behövs.

    För att ta reda på om du behöver tillhandahålla en säkerhetstoken, välj knappen Testa. Om anslutningsförsöket misslyckas med ett fel som innehåller LOGIN_MUST_USE_SECURITY_TOKEN , måste du tillhandahålla en.

    Salesforce.com skickar säkerhetstokenen via e-post till den e-postadress som är kopplad till ditt Salesforce.com-användarkonto. Om du inte har fått en säkerhetstoken kan du återskapa den. Salesforce.com kommer sedan att skicka den nya säkerhetstoken till dig via e-post. För att återskapa din säkerhetstoken, logga in på Salesforce.com och välj sedan Inställningar från användarmenyn. Sök efter "säkerhetstoken" i snabbsökningsrutan. Klicka på Återställ säkerhetstoken på sidan Återställ säkerhetstoken. När du får token i din e-postklient, kopiera den och klistra in den i Token-fältet.

  4. Använd knappen Test för att verifiera att du lyckas ansluta till Salesforce.com.

Följ dessa steg för att söka efter Salesforce.com-data från en Delphi-applikation.

  1. I ett nytt Delphi-projekt lägger du till ett formulär
  2. Lägg till två TButton-kontroller som heter "executeButton" och "connectButton". Ställ in Text egenskaper för knapparna till "Execute" och "Connect".
  3. Ställ in Enabled egenskapen för executeButton till False .
  4. Lägg till en TMemo-kontroll som heter "outputMemo".
  5. Lägg till en TFDConnection-komponent. Dubbelklicka på den här komponenten.

    Dialogrutan FireDAC Connection Editor visas.

  6. Välj ODBC i listan förar-ID.
  7. Välj knappen Wizard. Välj din Salesforce-datakälla från fliken Maskindatakällor när du uppmanas.
  8. I dialogrutan FireDAC Connection Editor tar du bort värdena från rutorna Användarnamn och Lösenord.

    I ODBCAdvanced-rutan, lägg till denna sträng till det befintliga värdet:

    UID=user_name;PWD=password.
    

    Ersätt användarnamn och lösenord med de värden du just tog bort från rutorna Användarnamn och Lösenord.

  9. Lägg till den här koden i OnClick händelsehanterare 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. Lägg till den här koden i OnClick händelsehanterare 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. Kompilera och kör programmet.
  12. Välj knappen Anslut för att ansluta till Salesforce.com-datakällan. För att returnera vissa data från kontotabellen, välj knappen Kör.

  1. Hur infogar man en post med bara standardvärden?

  2. RODBC odbcDriverConnect() Anslutningsfel

  3. GROUP BY i Postgres - ingen likhet för JSON-datatyp?

  4. 12 MySQL/MariaDB Säkerhet Best Practices för Linux