delphimvcframework/samples/articles_crud_server/MainDM.pas

91 lines
2.2 KiB
ObjectPascal

unit MainDM;
interface
uses
System.SysUtils,
System.Classes,
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.FB,
Data.DB,
FireDAC.Comp.Client,
FireDAC.Stan.Param,
FireDAC.DatS,
FireDAC.DApt.Intf,
FireDAC.DApt,
FireDAC.Comp.DataSet,
FireDAC.Phys.FBDef,
FireDAC.VCLUI.Wait;
type
TdmMain = class(TDataModule)
Connection: TFDConnection;
dsArticles: TFDQuery;
updArticles: TFDUpdateSQL;
procedure ConnectionBeforeConnect(Sender: TObject);
private
{ Private declarations }
public
function SearchProducts(const SearchText: string): TDataSet;
end;
implementation
{%CLASSGROUP 'Vcl.Controls.TControl'}
{$R *.dfm}
uses
System.IOUtils,
MVCFramework.DataSet.Utils;
procedure TdmMain.ConnectionBeforeConnect(Sender: TObject);
// var
// lPath: string;
// I: Integer;
begin
// {$IFNDEF WINDOWSSERVICE}
// // if you want to use firebird 2.5, you can use the file ORDERSMANAGER_FB25.FDB
// Connection.Params.Values['Database'] := '..\..\data\ORDERSMANAGER_FB30.FDB';
// // Connection.Params.Values['Database'] := '..\..\data\ORDERSMANAGER_FB25.FDB';
// {$ELSE}
// lPath := 'data\ORDERSMANAGER_FB30.FDB';
// for I := 1 to 6 do
// begin
// if TFile.Exists(lPath) then
// begin
// Connection.Params.Values['Database'] := TPath.GetFullPath(lPath); // 'C:\DEV\dmvcframework\samples\data\ORDERSMANAGER_FB30.FDB';
// Break;
// end
// else
// begin
// lPath := '..\' + lPath;
// end;
// end;
// if not TFile.Exists(lPath) then
// begin
// raise Exception.Create('Cannot find database');
// end;
// {$ENDIF}
end;
function TdmMain.SearchProducts(const SearchText: string): TDataSet;
begin
Result := TFDMemTable.Create(nil);
if SearchText.IsEmpty then
dsArticles.Open('SELECT * FROM ARTICOLI')
else
dsArticles.Open('SELECT * FROM ARTICOLI WHERE DESCRIZIONE CONTAINING ?', [SearchText]);
TFDTable(Result).CopyDataSet(dsArticles, [coStructure, coRestart, coAppend]);
end;
end.