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.
Trình điều khiển ODBC của Salesforce.com cho phép bạn làm việc với dữ liệu của Salesforce.com trong các ứng dụng Embarcadero Delphi.
Trình điều khiển ODBC Salesforce.com có sẵn để tải xuống từ trang web Easysoft:
- Tải xuống Trình điều khiển ODBC Windows Salesforce.com. (Cần đăng ký.)
- Cài đặt và cấp phép cho Trình điều khiển ODBC Salesforce.com trên máy được cài đặt.
Để biết hướng dẫn cài đặt, hãy xem tài liệu Trình điều khiển ODBC của Salesforce.com.
Trước khi bạn có thể sử dụng Trình điều khiển ODBC của Salesforce.com để kết nối Delphi với Salesforce.com, bạn cần định cấu hình nguồn dữ liệu ODBC. Nguồn dữ liệu ODBC lưu trữ chi tiết kết nối cho cơ sở dữ liệu đích (ví dụ:Salesforce.com) và trình điều khiển ODBC được yêu cầu để kết nối với nó (ví dụ:trình điều khiển ODBC Salesforce.com).
Chúng tôi sẽ tạo một ứng dụng Delphi 32-bit, vì vậy chúng tôi sử dụng phiên bản 32-bit của Quản trị viên ODBC (% WINDIR% \ SysWOW64 \ odbcad32.exe) để định cấu hình nguồn dữ liệu của chúng tôi.
Để tạo nguồn dữ liệu Trình điều khiển ODBC Salesforce.com:
- Thực hiện một trong các thao tác sau:
- Để tạo nguồn dữ liệu Người dùng, trong tab DSN Người dùng, hãy chọn Thêm.
–Hay–
- Để tạo nguồn dữ liệu Hệ thống, hãy chọn tab DSN Hệ thống, sau đó chọn Thêm.
- Để tạo nguồn dữ liệu Người dùng, trong tab DSN Người dùng, hãy chọn Thêm.
- Trong hộp thoại Tạo Nguồn Dữ liệu Mới, hãy chọn Trình điều khiển ODBC-Salesforce của Easysoft, rồi chọn Kết thúc.
- Hoàn thành hộp thoại Thiết lập Easysoft ODBC-Salesforce Driver DSN:
Setting Giá trị DSN Salesforce.com Tên người dùng Tên của người dùng Salesforce.com của bạn. Ví dụ:[email protected]. Mật khẩu Mật khẩu cho người dùng Salesforce.com của bạn. Mã thông báo Mã thông báo bảo mật cho người dùng Salesforce.com của bạn, nếu được yêu cầu. Để tìm hiểu xem bạn có cần cung cấp mã thông báo bảo mật hay không, hãy chọn nút Kiểm tra. Nếu nỗ lực kết nối không thành công với lỗi chứa
LOGIN_MUST_USE_SECURITY_TOKEN
, bạn cần cung cấp một cái.Salesforce.com gửi mã thông báo bảo mật qua email đến địa chỉ email được liên kết với tài khoản người dùng Salesforce.com của bạn. Nếu bạn chưa nhận được mã thông báo bảo mật, bạn có thể tạo lại nó. Sau đó, Salesforce.com sẽ gửi mã thông báo bảo mật mới qua email cho bạn. Để tạo lại mã thông báo bảo mật của bạn, hãy đăng nhập vào Salesforce.com, sau đó chọn Thiết lập từ menu người dùng. Tìm kiếm "mã thông báo bảo mật" trong hộp Tìm nhanh. Nhấp vào Đặt lại Mã thông báo Bảo mật trong trang Đặt lại Mã thông báo Bảo mật. Khi bạn nhận được mã thông báo trong ứng dụng email của mình, hãy sao chép nó rồi dán vào trường Mã thông báo.
- Sử dụng nút Kiểm tra để xác minh rằng bạn có thể kết nối thành công với Salesforce.com.
Làm theo các bước sau để truy vấn một số dữ liệu Salesforce.com từ ứng dụng Delphi.
- Trong một dự án Delphi mới, hãy thêm một biểu mẫu
- Thêm hai điều khiển TButton, có tên là "executeButton" và "connectButton". Đặt
Text
thuộc tính của các nút thành "Thực thi" và "Kết nối". - Đặt
Enabled
thuộc tính củaexecuteButton
thànhFalse
. - Thêm điều khiển TMemo có tên "outputMemo".
- Thêm thành phần Kết nối TFDC. Bấm đúp vào thành phần này.
Hộp thoại Trình chỉnh sửa kết nối FireDAC được hiển thị.
- Trong danh sách ID trình điều khiển, hãy chọn ODBC.
- Chọn nút Trình hướng dẫn. Chọn nguồn dữ liệu Salesforce của bạn từ tab Nguồn dữ liệu máy, khi được nhắc.
- Trong hộp thoại Trình chỉnh sửa kết nối FireDAC, xóa các giá trị khỏi hộp Tên_người và Mật khẩu.
Trong hộp ODBCAdvanced, hãy nối chuỗi này vào giá trị hiện có:
UID=user_name;PWD=password.
Thay thế user_name và mật khẩu với các giá trị bạn vừa xóa khỏi hộp Tên_người và Mật khẩu.
- Thêm mã này vào
OnClick
trình xử lý sự kiện choconnectButton
: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;
- Thêm mã này vào
OnClick
trình xử lý sự kiện choexecuteButton
: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;
- Biên dịch và chạy ứng dụng.
- Để kết nối với nguồn dữ liệu Salesforce.com, hãy chọn nút Kết nối. Để trả lại một số dữ liệu từ bảng Tài khoản, hãy chọn nút Thực thi.