GARANTIR DESCONTO

Fórum ERRO AO FAZER SELECT! #204633

06/01/2004

0

creio q esteja usando a forma ´burra´ de fazer o select, pois o q estou fazendo é o seguinte tenho um valor no formulário anterior q precisa ser aproveitado na query do outro formulário para q pegue o valor que desejo tentei deixar o select normalmente na query e no momento em q abrisse o formuláro o ´where ´ fosse incrementado, mas não deu certo. Me ocorreu agora q talvez isso possa ser resolvido com parametro, mas não sei como usa-lo.



Ao abrir um formulário preciso q o query receba um comando sql então utilizo esse codigo:

qryVerificaConta.Active := true;
   //Começa a inserção dos dados no Banco
      if (traVerificaConta.InTransaction) then
        traVerificaConta.commit;
      traVerificaConta.StartTransaction;
      with qryVerificaConta do begin
        Close;
        with SQL do begin
          Clear;
          Add(´select * from (HOSPEDE inner join CONTA on HOSPEDE.COD_HOSP = CONTA.COD_HOSP)´);
          Add(´inner join DESCRICAO_PRODUTO on DESCRICAO_PRODUTO.COD_CONT = CONTA.COD_CONT´);
          add(´where COD_HOSP=´ + txtCodHosp.text );
        end;
      end;
    try
      qryVerificaConta.Prepare;
      qryVerificaConta.ExecSQL;
    except
      on E: EIBError do
      begin
        traVerificaConta.Rollback;
        MessageDlg(Format(´¬s [¬d; ¬d]´, [E.message, E.SQLCode, E.IBErrorCode]),mtError,[mbOK],0);
        Abort;
        Exit;
      end;
     end;
    //Finalizando a transação com efetivação das modificações
    traVerificaConta.Commit;
    //refresh hospede
    with qryVerificaConta do begin
      close;
      Prepare;
      dmCondominio.idbCondominio.Close;
      dmCondominio.idbCondominio.Open;
      open;
    end;


O problema é q quando executo o programa acusa este erro:

[b:2088f38297][size=18:2088f38297][color=red:2088f38297]use OPEN for a Select Statement[66;0][/color:2088f38297][/size:2088f38297][/b:2088f38297]

Alguem poderia me ajudar?


Douglasf

Douglasf

Responder

Posts

06/01/2004

Douglasf

Agradeço a sua ajuda.
o erro q falei não acusa mais porem apareceu outro, este aqui:


[size=18:7f29738f48][color=red:7f29738f48]Unexpected en of comand[-104;33554469][/color:7f29738f48][/size:7f29738f48]


Responder

Gostei + 0

18/02/2016

Thiago Santos

o meu sistema aparece este mesmo erro quando vou realizar uma busca

procedure TfrmGTabPrecos.btnBuscaPrecoClick(Sender: TObject);
var
BUSCA : string;
begin

with dmSisConsult do
begin

BUSCA := '';
BUSCA := BUSCA + ' SELECT CATEG, CODIGO, CONSULTA, GRUPO, ID_CATEG, ID_GRUPPROC, OBS, VALOR FROM VTABPRECOS ';
BUSCA := BUSCA + ' WHERE CONSULTA LIKE ' + QuotedStr('%' + edtBuscaPreco.Text + '%');

qryConsulta.Close;
qryConsulta.SQL.Clear;
qryConsulta.SQL.Add( BUSCA );
qryConsulta.Prepared := True;
qryConsulta.ExecSQL;

end

end;

no caso estou tentando buscar da tabela vtab precos o campo consulta

e da o seguinte erro "use open for a select statement"
Responder

Gostei + 0

18/02/2016

Rafael Bosco

Thiago, quando você utilizar um comando SQL, que seja uma SELECT, você deve usar o comando OPEN para abrir ela, e não o comando EXECSQL, pois esse comando é para UPDATES e INSERTS.

Outra coisa, sugiro você alterar o seu código de BUSCA, exemplo:

 var
   Busca: String;
 begin
   with dmSisConsult do
   begin
   Busca := 'SELECT CATEG, CODIGO, CONSULTA, GRUPO, ID_CATEG, ID_GRUPPROC, OBS, VALOR FROM VTABPRECOS' + sLineBreak +
                  'WHERE CONSULTA LIKE' + QuotedStr('%' + edtBuscaPreco.Text + '%'); 
 
    //você não precisa setar uma string recém declarada para vazio, pois, por padrão ela já está vazia.
   //e o sLineBreak já faz a quebra da linha, sem precisar, recompor o código novamente.

   qryConsulta.Close;
   qryConsulta.SQL.Clear;
   qryConsulta.SQL.Add(Busca);
   qryConsulta.Prepared := True;
   qryConsulta.Open();

   end;
 end;



Responder

Gostei + 0

19/02/2016

Thiago Santos

Rafael muito obrigado deu certo e sempre que possivel me passa umas dicas

tem o meu skype tcs2012_cr7.rbr@hotmail.com

obrigado
Responder

Gostei + 0

19/02/2016

Thiago Santos

Rafael muito obrigado deu certo e sempre que possivel me passa umas dicas

tem o meu skype tcs2012_cr7.rbr@hotmail.com

obrigado
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar