Ainda não obtive resposta correta
Observe a rotina abaixo. Sempre dá a msg de erro. Unknown Column ´F´. Agora porque? Fiz das duas formas decritas abaixo(separada, é claro).
Fiz com IbTable(usando filtro) e com IbQuery(usando o update). O q eu quero? Eu quero é dar baixa no equipamento(lancha). A baixa eu uso um campo chamado flag onde eu ponho a letra F (fechado). O q fazer?
procedure TfrmBaixaEquip.LMD3DEffectButton1Click(Sender: TObject);
begin
Baixa.Open;
Dm.Indice.Last;
Dm.Lancha.Edit;
Dm.LanchaStatus.AsString:=´S´;
Dm.Lancha.Post;
with Baixa do begin
close;
sql.Clear;
sql.Add(´update histsaida set flag = ´F´ where lancha =:lancha´);
parambyname(´lancha´).asstring:=dblookupcombobox1.text;
execsql;
close;
sql.Clear;
sql.add(´select * from histsaida´);
open;
end;
{Dm.HistSaida.Filtered:=false;
Dm.HistSaida.Filter:=´Lancha = ´´+ dblookupcombobox1.text + ´´´;
Dm.HistSaida.Filtered:=true;
Dm.histsaida.First;
while not (Dm.histsaida.Eof) do begin
dm.HistSaida.edit;
dm.HistSaidaFLAG.asstring:=´F´;
Dm.HistSaidaDOLAR.asbcd:=Dm.IndiceVALOR.asbcd;
Dm.HistSaida.Post;
end;
Dm.HistSaida.Close;
Dm.HistSaida.Open;}
Dm.Lancha.Close;
Dm.Lancha.Open;
end;
Esta é a rotina completa. Não sei o q fazer mais. Para mim ela está correta, porem.. Já fiz com aspas duplas, simples, sem aspas, mas a msg é sempre a mesma.
Fiz com IbTable(usando filtro) e com IbQuery(usando o update). O q eu quero? Eu quero é dar baixa no equipamento(lancha). A baixa eu uso um campo chamado flag onde eu ponho a letra F (fechado). O q fazer?
procedure TfrmBaixaEquip.LMD3DEffectButton1Click(Sender: TObject);
begin
Baixa.Open;
Dm.Indice.Last;
Dm.Lancha.Edit;
Dm.LanchaStatus.AsString:=´S´;
Dm.Lancha.Post;
with Baixa do begin
close;
sql.Clear;
sql.Add(´update histsaida set flag = ´F´ where lancha =:lancha´);
parambyname(´lancha´).asstring:=dblookupcombobox1.text;
execsql;
close;
sql.Clear;
sql.add(´select * from histsaida´);
open;
end;
{Dm.HistSaida.Filtered:=false;
Dm.HistSaida.Filter:=´Lancha = ´´+ dblookupcombobox1.text + ´´´;
Dm.HistSaida.Filtered:=true;
Dm.histsaida.First;
while not (Dm.histsaida.Eof) do begin
dm.HistSaida.edit;
dm.HistSaidaFLAG.asstring:=´F´;
Dm.HistSaidaDOLAR.asbcd:=Dm.IndiceVALOR.asbcd;
Dm.HistSaida.Post;
end;
Dm.HistSaida.Close;
Dm.HistSaida.Open;}
Dm.Lancha.Close;
Dm.Lancha.Open;
end;
Esta é a rotina completa. Não sei o q fazer mais. Para mim ela está correta, porem.. Já fiz com aspas duplas, simples, sem aspas, mas a msg é sempre a mesma.
Paulo
Curtidas 0
Respostas
Anonymous
26/03/2003
p/ fazer aspas simples faço quotestr
query1.sql.add(´where xpto = ´+ quotestr(´F´) + ´ and ´);
...
[]´s
query1.sql.add(´where xpto = ´+ quotestr(´F´) + ´ and ´);
...
[]´s
GOSTEI 0
E_gama
26/03/2003
Tente substituir sua SQL para
´update histsaida set flag = ´´F´´ where lancha =:lancha´ (com o [b:58857ccf7a]F[/b:58857ccf7a] entre duas aspas simples)
´update histsaida set flag = ´´F´´ where lancha =:lancha´ (com o [b:58857ccf7a]F[/b:58857ccf7a] entre duas aspas simples)
GOSTEI 0