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

Tilslutning af Delphi til 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-driveren giver dig mulighed for at arbejde med Salesforce.com-data i Embarcadero Delphi-applikationer.

Salesforce.com ODBC-driveren kan downloades fra Easysoft-webstedet:

  1. Download Windows Salesforce.com ODBC-driveren. (Registrering påkrævet.)
  2. Installer og licenser Salesforce.com ODBC-driveren på den maskine, hvor den er installeret.

    For installationsinstruktioner, se Salesforce.com ODBC-driverdokumentationen.

Før du kan bruge Salesforce.com ODBC-driveren til at forbinde Delphi til Salesforce.com, skal du konfigurere en ODBC-datakilde. En ODBC-datakilde gemmer forbindelsesdetaljerne for måldatabasen (f.eks. Salesforce.com) og den ODBC-driver, der kræves for at oprette forbindelse til den (f.eks. Salesforce.com ODBC-driveren).

Vi skal lave en 32-bit Delphi-applikation, så vi bruger 32-bit versionen af ​​ODBC Administrator (%WINDIR%\SysWOW64\odbcad32.exe) til at konfigurere vores datakilde.

Sådan oprettes en Salesforce.com ODBC Driver-datakilde:

  1. Gør et af følgende:
    • For at oprette en brugerdatakilde skal du vælge Tilføj på fanen Bruger-DSN.

      –Eller–

    • For at oprette en systemdatakilde skal du vælge fanen System DSN og derefter vælge Tilføj.
  2. Vælg Easysoft ODBC-Salesforce-driver i dialogboksen Opret ny datakilde, og vælg derefter Udfør.
  3. Fuldfør dialogboksen Easysoft ODBC-Salesforce Driver DSN Setup:
    Indstilling Værdi
    DSN Salesforce.com
    Brugernavn Navnet på din Salesforce.com-bruger. For eksempel [email protected].
    Adgangskode Adgangskoden til din Salesforce.com-bruger.
    Token Sikkerhedstokenet for din Salesforce.com-bruger, hvis det kræves.

    For at finde ud af, om du skal levere et sikkerhedstoken, skal du vælge knappen Test. Hvis forbindelsesforsøget mislykkes med en fejl, der indeholder LOGIN_MUST_USE_SECURITY_TOKEN , skal du levere en.

    Salesforce.com sender sikkerhedstokenet til den e-mailadresse, der er knyttet til din Salesforce.com-brugerkonto. Hvis du ikke har modtaget et sikkerhedstoken, kan du genskabe det. Salesforce.com vil derefter e-maile det nye sikkerhedstoken til dig. For at genskabe dit sikkerhedstoken skal du logge ind på Salesforce.com og derefter vælge Opsætning i brugermenuen. Søg efter "sikkerhedstoken" i feltet Find hurtigt. Klik på Nulstil sikkerhedstoken på siden Nulstil sikkerhedstoken. Når du modtager tokenet i din e-mail-klient, skal du kopiere det og derefter indsætte det i feltet Token.

  4. Brug knappen Test til at bekræfte, at du kan oprette forbindelse til Salesforce.com.

Følg disse trin for at forespørge nogle Salesforce.com-data fra en Delphi-applikation.

  1. I et nyt Delphi-projekt skal du tilføje en formular
  2. Tilføj to TButton-kontroller, kaldet "executeButton" og "connectButton". Indstil Text egenskaber for knapperne til "Execute" og "Connect".
  3. Indstil Enabled egenskaben for executeButton til False .
  4. Tilføj en TMemo-kontrol ved navn "outputMemo".
  5. Tilføj en TFDConnection-komponent. Dobbeltklik på denne komponent.

    FireDAC Connection Editor-dialogboksen vises.

  6. Vælg ODBC i Driver ID-listen.
  7. Vælg knappen Wizard. Vælg din Salesforce-datakilde på fanen Maskindatakilder, når du bliver bedt om det.
  8. I dialogboksen FireDAC Connection Editor skal du slette værdierne fra boksene User_Name og Password.

    I feltet ODBCAdvanced skal du tilføje denne streng til den eksisterende værdi:

    UID=user_name;PWD=password.
    

    Erstat brugernavn og adgangskode med de værdier, du lige har slettet fra boksene Brugernavn og Adgangskode.

  9. Tilføj denne kode til OnClick hændelseshandler for 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. Tilføj denne kode til OnClick hændelseshandler for 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. Kompiler og kør applikationen.
  12. Vælg knappen Tilslut for at oprette forbindelse til Salesforce.com-datakilden. For at returnere nogle data fra kontotabellen skal du vælge knappen Udfør.

  1. Sådan reviderer du en PostgreSQL-database

  2. Sådan undgår du MySQL 'Deadlock fundet, når du forsøger at få lås; prøv at genstarte transaktion'

  3. Hvordan tillader jeg en rullelisteparameter i SSRS at have en standardværdi på -- Alle -- ?

  4. Mærkelig SQLAlchemy-fejlmeddelelse:TypeError:'dict'-objekt understøtter ikke indeksering