Fórum Erro ao alterar registros da query #245516
03/08/2004
0
BDE
Tabela DBF
Os campos sao todos textos da tabela, tanto o LOTE quanto o PORTADOR.
1. Consulto a tabela com um Query1.
Esta consulta se da da seguinte maneira :
- Em um edit1 digito o numero do lote. e ao dar um enter esta query mostra a consulta em um Dbgrid,
- Em um edit2 digito o novo valor do portador. Ate aqui tudo bem.
O problema e agora
2. tenho um bitbtn com o seguinte fonte.
procedure TFrmAlterLotes.BitBtn4Click(Sender: TObject);
begin
With Query1 do // mesma query da consulta do edit1.
begin
First;
While not Eof do
begin
begin
Query1.SQL.Clear;
Query1.SQL.Add (´update AltRec set Portador =:´+Edit2.Text+´ WHERE Lote = ´+Edit1.Text+´´); // o portador terar que ser o que esta no edit2.
query1.ExecSQL;
end;
Next;
end;
end;
ShowMessage(´Dados Gravados OK´);
Edit1.Clear;
Edit1.SetFocus;
end;
quando clico tenho a seguinte menssagem :
type mismatch in expression.
resumindo quero clicar no button e ele devera me alterar o registro.
por favor o que devo fazer.
[b:91c60bd817]Título removido: ´Gostaria da Ajuda de Voces´[/b:91c60bd817]
No seu título, escreva uma pequena descrição para o seu problema.
Por favor, releia as [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=6689]Regras de Conduta[/url] do fórum.
Sandra/Moderação
Tornadofuracao
Curtir tópico
+ 0Posts
03/08/2004
Sandra
Não testei para ver se funciona, mas verifique se é isso que está tentando fazer:
procedure TFrmAlterLotes.BitBtn4Click(Sender: TObject); begin With Query1 do // mesma query da consulta do edit1. begin First; While not Eof do begin Query1.SQL.Clear; Query1.SQL.Add (´update AltRec set Portador =:´+Edit2.Text+´ WHERE Lote = ´+Edit1.Text+´´); // o portador terar que ser o que esta no edit2. query1.ExecSQL; Next; end; end; ShowMessage(´Dados Gravados OK´); Edit1.Clear; Edit1.SetFocus; end;
Gostei + 0
04/08/2004
Tornadofuracao
primeiro
Pesso desculpas pelo meu erro de titulo.
segundo
nao deu certo pois continua dando o mesmo erro
( type mismatch in expression )
Gostei + 0
04/08/2004
Tornadofuracao
Alterei o fonte para este:
procedure TFrmAlterLotes.BitBtn4Click(Sender: TObject);
begin
With Query1 do
begin
First;
While not Eof do
begin
begin
Query1.SQL.Clear;
Query1.SQL.Add (´update AltRec set Portador =: ´+edit2.text+´´);// o portador deverar ser alterado pelo valor do edit2
Query1.SQL.Add (´WHERE Lote = ´+Edit1.Text+´´);
Query1.ExecSQL;
end;
Next;
end;
end;
ShowMessage(´Dados Gravados OK´);
Edit1.Clear;
Edit1.SetFocus;
end;
mais agora esta dando o seguinte erro
(invalid use of key word
token :0100
where)
a propriedade RequestLive = true.
Gostei + 0
04/08/2004
Rômulo Barros
Tenta assim:
Query1.SQL.Add (´update AltRec set Portador =:´+Edit2.Text+´ WHERE Lote = ´+Edit1.Text+´´);
Query1.Params[0].AsString := QuotedStr(Edit2.Text);
Query1.ExecSql();
Gostei + 0
04/08/2004
Tornadofuracao
fiz como vc me sugeriu mas deu o seguinte erro sem os dois pontos
Query1.SQL.Add (´update AltRec set Portador = ´+Edit2.Text+´ WHERE Lote = ´+Edit1.Text+´´);
list index out of bounds (0)
como os dois pontos
Query1.SQL.Add (´update AltRec set Portador =:´+Edit2.Text+´ WHERE Lote = ´+Edit1.Text+´´);
Invalid use of keyword
token : update
line number :2
uma pergunta o que irei colocar nos parentes
Gostei + 0
05/08/2004
Tornadofuracao
coloquei este fonte
Query1.Edit;
Query1.Fields[4].AsString := Edit2.Text;
Query1.Post;
e funcionou beleza.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)