Meu nome é Renato Matos e em nosso artigo irei mostrar como dar um xauzinho para o BDE. Muitas pessoas me perguntam se isso é realmente possível. Eles falam: "Ceará! E se por acaso acontecer com o DBExpress ou ADO o que aconteceu com o BDE? Como iremos fazer?" A resposta é: Temos que criar algo que jogue no meio de campo. E para tanto, iremos precisar criar algo que diga que framework deverá ser usado no momento.

    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