sql >> Base de Datos >  >> RDS >> Database

Conexión de Delphi a 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.

El controlador ODBC de Salesforce.com le permite trabajar con datos de Salesforce.com en aplicaciones de Embarcadero Delphi.

El controlador ODBC de Salesforce.com está disponible para descargar desde el sitio web de Easysoft:

  1. Descargue el controlador ODBC de Windows Salesforce.com. (Es necesario registrarse).
  2. Instale y obtenga la licencia del controlador ODBC de Salesforce.com en la máquina donde está instalado.

    Para obtener instrucciones de instalación, consulte la documentación del controlador ODBC de Salesforce.com.

Antes de poder utilizar el controlador ODBC de Salesforce.com para conectar Delphi a Salesforce.com, debe configurar una fuente de datos ODBC. Una fuente de datos ODBC almacena los detalles de conexión para la base de datos de destino (p. ej., Salesforce.com) y el controlador ODBC necesario para conectarse (p. ej., el controlador ODBC de Salesforce.com).

Vamos a crear una aplicación Delphi de 32 bits, por lo que usaremos la versión de 32 bits del Administrador ODBC (%WINDIR%\SysWOW64\odbcad32.exe) para configurar nuestra fuente de datos.

Para crear una fuente de datos del controlador ODBC de Salesforce.com:

  1. Haga uno de lo siguiente:
    • Para crear una fuente de datos de usuario, en la pestaña DSN de usuario, elija Agregar.

      –O–

    • Para crear una fuente de datos del sistema, elija la pestaña DSN del sistema y luego elija Agregar.
  2. En el cuadro de diálogo Crear nueva fuente de datos, seleccione Easysoft ODBC-Salesforce Driver y luego seleccione Finalizar.
  3. Complete el cuadro de diálogo Configuración de DSN del controlador Easysoft ODBC-Salesforce:
    Configuración Valor
    DNS Salesforce.com
    Nombre de usuario El nombre de su usuario de Salesforce.com. Por ejemplo, [email protected].
    Contraseña La contraseña de su usuario de Salesforce.com.
    Ficha El token de seguridad para su usuario de Salesforce.com, si es necesario.

    Para averiguar si necesita proporcionar un token de seguridad, elija el botón Probar. Si el intento de conexión falla con un error que contiene LOGIN_MUST_USE_SECURITY_TOKEN , debe proporcionar uno.

    Salesforce.com envía por correo electrónico el token de seguridad a la dirección de correo electrónico asociada con su cuenta de usuario de Salesforce.com. Si no ha recibido un token de seguridad, puede regenerarlo. Salesforce.com luego le enviará por correo electrónico el nuevo token de seguridad. Para regenerar su token de seguridad, inicie sesión en Salesforce.com y luego seleccione Configuración en el menú de usuario. Busque "token de seguridad" en el cuadro Búsqueda rápida. Haga clic en Restablecer token de seguridad en la página Restablecer token de seguridad. Cuando reciba el token en su cliente de correo electrónico, cópielo y luego péguelo en el campo Token.

  4. Utilice el botón Probar para verificar que puede conectarse con éxito a Salesforce.com.

Siga estos pasos para consultar algunos datos de Salesforce.com desde una aplicación Delphi.

  1. En un nuevo proyecto de Delphi, agregue un formulario
  2. Agregue dos controles TButton, llamados "executeButton" y "connectButton". Establecer el Text propiedades de los botones para "Ejecutar" y "Conectar".
  3. Establecer Enabled propiedad de executeButton a False .
  4. Agregue un control TMemo llamado "outputMemo".
  5. Agregue un componente TFDConnection. Haga doble clic en este componente.

    Se muestra el cuadro de diálogo Editor de conexión FireDAC.

  6. En la lista de ID de controlador, elija ODBC.
  7. Elija el botón Asistente. Elija su fuente de datos de Salesforce en la pestaña Fuentes de datos de la máquina, cuando se le solicite.
  8. En el cuadro de diálogo Editor de conexión FireDAC, elimine los valores de los cuadros Nombre de usuario y Contraseña.

    En el cuadro ODBCAdvanced, agregue esta cadena al valor existente:

    UID=user_name;PWD=password.
    

    Reemplazar nombre_de_usuario y contraseña con los valores que acaba de eliminar de los cuadros User_Name y Password.

  9. Agregue este código a OnClick controlador 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. Agregue este código a OnClick controlador 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. Compila y ejecuta la aplicación.
  12. Para conectarse a la fuente de datos de Salesforce.com, elija el botón Conectar. Para devolver algunos datos de la tabla Cuenta, seleccione el botón Ejecutar.