- Recompilación en Delphi10 de todos los paquetes de RO para generar las DCU's en Lib\D10 - Recompilación en Delphi10 de todos los paquetes de DA para generar las DCU's en Lib\D10 git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.RemObjects@9 b6239004-a887-0f4b-9937-50029ccdca16
118 lines
3.3 KiB
ObjectPascal
118 lines
3.3 KiB
ObjectPascal
unit DynSQLMainClient;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, uROWinInetHttpChannel, uROClient,
|
|
uROBINMessage, StdCtrls, Spin, uDADataTable,
|
|
DB, Grids, DBGrids, uRORemoteService,
|
|
uDAScriptingProvider, ExtCtrls, DBCtrls, uDARemoteDataAdapter,
|
|
uDADataStreamer, uDAInterfaces, uDABin2DataStreamer,
|
|
uDAMemDataTable;
|
|
|
|
type
|
|
TDynSQLMainClientForm = class(TForm)
|
|
ROBINMessage: TROBINMessage;
|
|
ROWinInetHTTPChannel1: TROWinInetHTTPChannel;
|
|
Memo: TMemo;
|
|
seMaxRecs: TSpinEdit;
|
|
Label1: TLabel;
|
|
RetrieveSchema: TButton;
|
|
DataStreamer: TDABin2DataStreamer;
|
|
DataTable: TDAMemDataTable;
|
|
Grid: TDBGrid;
|
|
DADataSource: TDADataSource;
|
|
svcDynSQLService: TRORemoteService;
|
|
RetrieveData: TButton;
|
|
RetrieveSchemaAndData: TButton;
|
|
Save: TButton;
|
|
Load: TButton;
|
|
Update: TButton;
|
|
dbNavigator: TDBNavigator;
|
|
DARemoteDataAdapter: TDARemoteDataAdapter;
|
|
procedure RetrieveSchemaClick(Sender: TObject);
|
|
procedure RetrieveDataClick(Sender: TObject);
|
|
procedure RetrieveSchemaAndDataClick(Sender: TObject);
|
|
procedure SaveClick(Sender: TObject);
|
|
procedure LoadClick(Sender: TObject);
|
|
procedure UpdateClick(Sender: TObject);
|
|
procedure DataTableBeforeRefresh(DataTable: TDADataTable);
|
|
private
|
|
{ Private declarations }
|
|
procedure InitRDA(aIncludeSchema: Boolean; AMaxRecords: integer);
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
DynSQLMainClientForm: TDynSQLMainClientForm;
|
|
|
|
implementation
|
|
|
|
uses DynSQLLibrary_Intf, uROTypes, uDARemoteDataAdapterRequests, uRODL;
|
|
|
|
{$R *.dfm}
|
|
|
|
procedure TDynSQLMainClientForm.RetrieveSchemaClick(Sender: TObject);
|
|
begin
|
|
InitRDA(True, 0);
|
|
DataTable.Close;
|
|
end;
|
|
|
|
procedure TDynSQLMainClientForm.RetrieveDataClick(Sender: TObject);
|
|
begin
|
|
InitRDA(False, seMaxRecs.Value);
|
|
end;
|
|
|
|
procedure TDynSQLMainClientForm.RetrieveSchemaAndDataClick(Sender: TObject);
|
|
begin
|
|
InitRDA(True, seMaxRecs.Value);
|
|
end;
|
|
|
|
procedure TDynSQLMainClientForm.SaveClick(Sender: TObject);
|
|
begin
|
|
DataTable.SaveToFile(ExtractFilePath(Application.ExeName) + 'Data.dat');
|
|
end;
|
|
|
|
procedure TDynSQLMainClientForm.LoadClick(Sender: TObject);
|
|
begin
|
|
DataTable.LoadFromFile(ExtractFilePath(Application.ExeName) + 'Data.dat');
|
|
end;
|
|
|
|
procedure TDynSQLMainClientForm.UpdateClick(Sender: TObject);
|
|
var
|
|
deltadata: Binary;
|
|
begin
|
|
deltadata := Binary.Create;
|
|
try
|
|
// Packs the delta of the data table and sends it over.
|
|
DataStreamer.Initialize(deltadata, aiWrite);
|
|
DataStreamer.WriteDelta(DataTable);
|
|
DataStreamer.Finalize;
|
|
|
|
(svcDynSQLService as IDynSQLService).MyUpdateData(deltadata);
|
|
finally
|
|
deltadata.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TDynSQLMainClientForm.DataTableBeforeRefresh(DataTable: TDADataTable);
|
|
begin
|
|
DaRemoteDataAdapter.GetDataCall.ParamByName('aSQLText').AsString := Memo.Lines.Text;
|
|
end;
|
|
|
|
procedure TDynSQLMainClientForm.InitRDA(aIncludeSchema: Boolean;
|
|
AMaxRecords: integer);
|
|
begin
|
|
with DataTable do begin
|
|
Close;
|
|
DARemoteDataAdapter.GetDataCall.ParamByName('aSQLText').AsString := Memo.Lines.Text;
|
|
MaxRecords := AMaxRecords;
|
|
DARemoteDataAdapter.Fill([DataTable], true, aIncludeSchema);
|
|
end;
|
|
end;
|
|
|
|
end.
|
|
|