Database
 sql >> Base de Dados >  >> RDS >> Database

Conectando o Delphi ao 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.

O Driver ODBC do Salesforce.com permite que você trabalhe com dados do Salesforce.com em aplicativos Delphi da Embarcadero.

O driver ODBC Salesforce.com está disponível para download no site da Easysoft:
  1. Faça o download do driver ODBC do Windows Salesforce.com. (Registro obrigatório.)
  2. Instale e licencie o Driver ODBC Salesforce.com na máquina onde está instalado.
    Para obter instruções de instalação, consulte a documentação do driver ODBC do Salesforce.com.

Antes de poder usar o Driver ODBC do Salesforce.com para conectar o Delphi ao Salesforce.com, você precisa configurar uma fonte de dados ODBC. Uma fonte de dados ODBC armazena os detalhes da conexão para o banco de dados de destino (por exemplo, Salesforce.com) e o driver ODBC necessário para se conectar a ele (por exemplo, o driver ODBC Salesforce.com).

Vamos criar um aplicativo Delphi de 32 bits para usarmos a versão de 32 bits do ODBC Administrator (%WINDIR%\SysWOW64\odbcad32.exe) para configurar nossa fonte de dados.

Para criar uma fonte de dados do Driver ODBC do Salesforce.com:
  1. Faça um dos seguintes:
    • Para criar uma fonte de dados do usuário, na guia DSN do usuário, escolha Adicionar.
      -Ou-
    • Para criar uma fonte de dados do sistema, escolha a guia DSN do sistema e, em seguida, escolha Adicionar.
  2. Na caixa de diálogo Criar nova fonte de dados, escolha Easysoft ODBC-Salesforce Driver e, em seguida, escolha Concluir.
  3. Preencha a caixa de diálogo Easysoft ODBC-Salesforce Driver DSN Setup:
    Setting Valor
    DSN Salesforce.com
    Nome de usuário O nome do seu usuário do Salesforce.com. Por exemplo, meuusuário@meudomínio.com.
    Senha A senha do seu usuário do Salesforce.com.
    Token O token de segurança para seu usuário do Salesforce.com, se necessário.
    Para saber se você precisa fornecer um token de segurança, escolha o botão Testar. Se a tentativa de conexão falhar com um erro que contém LOGIN_MUST_USE_SECURITY_TOKEN , você precisa fornecer um.

    O Salesforce.com envia por email o token de segurança para o endereço de email associado à sua conta de usuário do Salesforce.com. Se você não recebeu um token de segurança, poderá regenerá-lo. A Salesforce.com enviará o novo token de segurança por e-mail para você. Para regenerar seu token de segurança, faça login no Salesforce.com e escolha Configuração no menu do usuário. Procure por "token de segurança" na caixa Busca rápida. Clique em Redefinir token de segurança na página Redefinir token de segurança. Ao receber o token em seu cliente de e-mail, copie-o e cole-o no campo Token.
  4. Use o botão Testar para verificar se você consegue se conectar com sucesso ao Salesforce.com.

Siga estas etapas para consultar alguns dados do Salesforce.com de um aplicativo Delphi.
  1. Em um novo projeto Delphi, adicione um formulário
  2. Adicione dois controles TButton, chamados "executeButton" e "connectButton". Defina o Text propriedades dos botões para "Executar" e "Conectar".
  3. Defina o Enabled propriedade de executeButton para False .
  4. Adicione um controle TMemo chamado "outputMemo".
  5. Adicione um componente TFDConnection. Clique duas vezes neste componente.
    A caixa de diálogo Editor de Conexão FireDAC é exibida.
  6. Na lista ID do motorista, escolha ODBC.
  7. Escolha o botão Assistente. Escolha sua fonte de dados do Salesforce na guia Fontes de dados de máquina, quando solicitado.
  8. Na caixa de diálogo FireDAC Connection Editor, exclua os valores das caixas User_Name e Password.
    Na caixa ODBCAdvanced, adicione esta string ao valor existente:
    UID=user_name;PWD=password.
    

    Substitua user_name e senha com os valores que você acabou de excluir das caixas User_Name e Password.
  9. Adicione este código ao OnClick manipulador de eventos para 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. Adicione este código ao OnClick manipulador de eventos para 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. Compile e execute o aplicativo.
  12. Para se conectar à fonte de dados do Salesforce.com, escolha o botão Conectar. Para retornar alguns dados da tabela Conta, escolha o botão Executar.