ERRO AO FAZER SELECT!
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:
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?
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
Curtidas 0
Respostas
Douglasf
06/01/2004
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]
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]
GOSTEI 0
Thiago Santos
06/01/2004
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"
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"
GOSTEI 0
Rafael Bosco
06/01/2004
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:
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;
GOSTEI 0
Thiago Santos
06/01/2004
Rafael muito obrigado deu certo e sempre que possivel me passa umas dicas
tem o meu skype tcs2012_cr7.rbr@hotmail.com
obrigado
tem o meu skype tcs2012_cr7.rbr@hotmail.com
obrigado
GOSTEI 0
Thiago Santos
06/01/2004
Rafael muito obrigado deu certo e sempre que possivel me passa umas dicas
tem o meu skype tcs2012_cr7.rbr@hotmail.com
obrigado
tem o meu skype tcs2012_cr7.rbr@hotmail.com
obrigado
GOSTEI 0