[firebase-br] SQL * Funciona - SQL campos Não funciona

User-BA foruns em embytes.com.br
Seg Ago 22 20:11:53 -03 2005


Olá amigos!

Estou começando :)

Estou utilizando o delphi + dbexpress + firebird 1.5
Estou tentando fazer uma simples consulta conforme abaixo,
mas na montagem do select "SQLQuery1.SQL.Add" gera um erro.
a única coisa que fiz no SQLQuery
foi apontar a conexão para "SQLConnection1".
E no SQLConnection1 configurei os parâmetros de conexão.
* VendorLib = fbclient.dll

  Try
    t_transacao.TransactionID         := 1;
    t_transacao.IsolationLevel        := xilREPEATABLEREAD;

    SQLConnection1.StartTransaction(t_transacao);
    SQLQuery1.Close;
    SQLQuery1.SQL.Clear;
      
    // se eu colocar conforme abaixo "*" tudo funciona normal
    SQLQuery1.SQL.Add('SELECT * FROM MAQUINAS WHERE MAQ_MC1 = :P_MAQ_MC1');

    // ou assim também funciona (especificando todos os campos da tabela)
    // SQLQuery1.SQL.Add('SELECT MAQ_CHAVE, MAQ_MC1, MAQ_MC2, MAQ_MD1, 
MAQ_MD2 FROM MAQUINAS WHERE MAQ_MC1 = :P_MAQ_MC1');

    // mas se eu colocar somente alguns campos que gostaria
    // de trazer no select, apenas o "MAC_CHAVE, MAC_MC1, MAC_MC2"
    // da um erro informando (MAC_CHAVE not found)
    // Na tabela eu tenho os campo: MAC_CHAVE, MAC_MC1, MAC_MD1, 
MAC_MC2, MAC_MD2
    // SQLQuery1.SQL.Add('SELECT MAC_CHAVE, MAC_MC1 FROM MAQUINAS WHERE 
MAQ_MC1 = :P_MAQ_MC1');

    SQLQuery1.ParamByName('P_MAQ_MC1').AsString := '10';
    SQLQuery1.Open;
    SQLConnection1.Commit(t_transacao);

    // Mostra o segundo campo MAQ_MC1
    ShowMessage(SQLQuery1.Fields.Fields[1].AsString);
  except
    On Exc:Exception do
    Begin
       // quando monto  o  SQL  sem todos os campos gera a exceçao.
      ShowMessage('Ocorreu um erro na consulta: ' + Exc.Message);
      SQLConnection1.Rollback(t_transacao);
      exit;
    End;
  End;

O que estou fazendo de errado?

Aproveitando?

Seria correto utilizar o SQLQuery para:
para efetuar as CONSULTAS, INCLUSÕES, ALTERAÇOES, EXCLUSÕES da aplicação?

Obrigado.
User-BA





Mais detalhes sobre a lista de discussão lista