• 0
Sign in to follow this  
paulobergo

Usar Query Zeos Ou Query Bde Por Referência! Solucionado!

Question

Oi pessoal!

Olha, consegui, através do componente Zeos, usar tanto queries da BDE como queries em MySQL em aplicações CGI e ISAPI tanto no Apache como no IIS (ambos no XP).

Se a tabela que tenho que consultar/acessar é MySQL, uso o componente TZReadOnlyQuery (da Zeos)... se é uma tabela dBaseIV, 7, Fox26, dbaseIII ou Paradox, uso um TQuery (da BDE)...

Seja:

zQuery1 = Componente TZReadOnlyQuery, da Zeos, para acessar MySQL

Query1 = Componente TQuery, da BDE, para as demais tabelas

Então:

sCampoNome := 'descricao';
If bMySQLUse then
  sConteudo := zQuery1.FieldByName(sCampoNome).AsString
Else
  sConteudo := Query1.FieldByName(sCampoNome).AsString;
{EndIf}
O que eu gostaria, remexendo os guardados de Clipper do meu passado (e de forma similar ao que acho que existe em PHP), era fazer referência ao componente como se fosse uma macro (coisa do Clipper), assim:
If bMySQLUse then
  sComponente := 'zQuery1'
Else
  sComponente := 'Query1';
{EndIf}

sCampoNome := 'descricao';
sConteudo := (sComponente).FieldByName(sCampoNome).AsString;

Ok?

Mais uma vez, grato por qualquer ajuda!

Edited by paulobergo

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0

paulobergo, acredito que você possa fazer algo parecido sim. Observe que ambas as classes (componentes) são descendentes de TDataSet. E neste caso, a lógica diz que, os métodos são herdados ou sobrescritos para garantir a funcionalidade existente na classe pai.

Deste modo, você poderia fazer algo como (costumo usar bastante):

procedure ....
var
  QryUnknow :TDataSet;
begin
  If bMySQLUse then
    QryUnknow := zQuery1
  Else
    QryUnknow := Query1;

  sCampoNome := 'descricao';
  sConteudo := QryUnknow.FieldByName(sCampoNome).AsString;
end;

o nome do campo poderia ser passado diretamente para o método FieldByName, ok?!

Abraços

Share this post


Link to post
Share on other sites
  • 0

Perfeito!!!

Grato pela ajuda!!!

Abraços!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this