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:
- Download Windows Salesforce.com ODBC-driveren. (Registrering påkrævet.)
- 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:
- 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.
- For at oprette en brugerdatakilde skal du vælge Tilføj på fanen Bruger-DSN.
- Vælg Easysoft ODBC-Salesforce-driver i dialogboksen Opret ny datakilde, og vælg derefter Udfør.
- 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.
- 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.
- I et nyt Delphi-projekt skal du tilføje en formular
- Tilføj to TButton-kontroller, kaldet "executeButton" og "connectButton". Indstil
Text
egenskaber for knapperne til "Execute" og "Connect". - Indstil
Enabled
egenskaben forexecuteButton
tilFalse
. - Tilføj en TMemo-kontrol ved navn "outputMemo".
- Tilføj en TFDConnection-komponent. Dobbeltklik på denne komponent.
FireDAC Connection Editor-dialogboksen vises.
- Vælg ODBC i Driver ID-listen.
- Vælg knappen Wizard. Vælg din Salesforce-datakilde på fanen Maskindatakilder, når du bliver bedt om det.
- 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.
- Tilføj denne kode til
OnClick
hændelseshandler forconnectButton
: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;
- Tilføj denne kode til
OnClick
hændelseshandler forexecuteButton
: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;
- Kompiler og kør applikationen.
- 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.