Eu já escrevi alguma coisa sobre isso. Mas agora irei mostrar como faço nas minha aplicações. Tenho três sistemas rodando usando esse esquema que irei mostrar a vocês. E podem acreditar! Funciona que é uma maravilha! O primeiro passo é elaborar um conjunto de interfaces que nos dirá que métodos nossa camada de dados precisará ter. Começaremos pela camada de dados chamada IConnection e IQuery.
// começo da unidade
unit uConnection;
interface
uses Classes, DB;
type
// o que vc quer usar
TFramework = (fwBDE, fwADO, fwDBExpress);
// camada de consultas comandos sql etc...
IQuery = interface;
// camada de dados
IConnection = interface
['{84A052EE-7AEA-4730-8401-0C820CDE48E8}']
function getComponent: TComponent;
// controle de conexão
procedure Open;
procedure Close;
function isConnected: boolean;
// controle de transação
procedure StarTransaction;
procedure Commit;
procedure Rollback;
// criador de queries
function CreateQuery: IQuery;
// parâmetros de conexão
function getParams: TStrings;
function getFramework: TFramework;
property Params: TStrings read getParams;
end;
// definição da query
IQuery = interface
['{1D697CB9-A46A-44BE-AC72-85D372771A60}']
function Conn: IConnection;
// controle de conexão
procedure Open;
procedure Close;
function isActive: boolean;
// execução de comandos
function ExecSQL: Integer;
function DataSet: TDataSet;
// comandos sql
function getSQL: TStrings;
procedure setSQL(Value: TStrings);
function getParams: TParams;
function getFields: TFields;
function FieldByName(Name: String): TField;
property SQL: TStrings read getSQL write setSQL;
property Fields: TFields read getFields;
end;
implementation
end.
// fim da unidade
Agora que definimos nossa camada de negócio. Temos todos os métodos para começar a trabalhar.
Então o nosso próximo artigo irá mostrar como implementar essas Interfaces. Começaremos por falar sobre DBExpress sem seguida ADO e depois BDE. E se alguém estiver usando algum componente de terceiro é só me mandar o nome desse troço que eu digo como fazer.
Por enquanto é só.
Abraço a todos.
Qualquer dúvida SOBRE ESSE artigo favor mandar email para
reneuece@ig.com.br