Erro ao alterar registros da query
Estou trabalhando com :
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
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
Curtidas 0
Respostas
Sandra
03/08/2004
Tornado,
Não testei para ver se funciona, mas verifique se é isso que está tentando fazer:
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
Tornadofuracao
03/08/2004
Sandra
primeiro
Pesso desculpas pelo meu erro de titulo.
segundo
nao deu certo pois continua dando o mesmo erro
( type mismatch in expression )
primeiro
Pesso desculpas pelo meu erro de titulo.
segundo
nao deu certo pois continua dando o mesmo erro
( type mismatch in expression )
GOSTEI 0
Tornadofuracao
03/08/2004
Para quem puder me ajudar.
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.
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
Rômulo Barros
03/08/2004
Qual o motivo dos ´dois pontos(:)´? Pelo q vi, vc não está passando nenhum parâmetro antes do ExcSql();
Tenta assim:
Query1.SQL.Add (´update AltRec set Portador =:´+Edit2.Text+´ WHERE Lote = ´+Edit1.Text+´´);
Query1.Params[0].AsString := QuotedStr(Edit2.Text);
Query1.ExecSql();
Query1.SQL.Add (´update AltRec set Portador =:´+Edit2.Text+´ WHERE Lote = ´+Edit1.Text+´´);
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
Tornadofuracao
03/08/2004
coro amigo Undeclared Identifier
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
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
Tornadofuracao
03/08/2004
Ai galera do mundo Delphi
coloquei este fonte
Query1.Edit;
Query1.Fields[4].AsString := Edit2.Text;
Query1.Post;
e funcionou beleza.
coloquei este fonte
Query1.Edit;
Query1.Fields[4].AsString := Edit2.Text;
Query1.Post;
e funcionou beleza.
GOSTEI 0