Ir para conteúdo
Fórum Script Brasil
  • 0

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


paulobergo

Pergunta

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!

Editado por paulobergo
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 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

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...