Pessoal não deu certo 2!!!!!

16/03/2003

0

Caros senhores estou com um problema na hora de inserir dados de um edit para uma tabela via SQL(tenho vários edits p/vários campos)... Eu compilo o programa e surge um erro na hora de salvar o registro(Type mismatch in expression) Abaixo segue meu código simplificado com apenas um edit para vcs entenderem como estou fazendo...

dtm1.Q3.Active:=false;
dtm1.q3.sql.clear;
dtm1.Q3.sql.Add(´insert into Mensalidade(Cod_Mor) values (:ECodigo)´);
dtm1.Q3.params[0].AsInteger:=strtoint(ECodigo.text);{campo edit}
dtm1.Q3.ExecSQL;

Agradeço se alguém puder me auxiliar... :lol:


Marciojse

Marciojse

Responder

Posts

16/03/2003

Anonymous

Por favor verifique se em seu BD o campo COD_MOR é realmente integer.

Se for, verifique se o ECodigo.Text, está somente recebendo números.

Se estiver, este problema foge de meus conhecimentos, sinto.


Responder

16/03/2003

Adilsond

se o campo cod_mor for integer:

Via parametro:

white dtm1.Q3 do
begin
if Active then
Close;
SQL.Clear;
SQL.Add(´insert into Mensalidade (Cod_Mor) values (:ECodigo)´);
ParamByName(´ECodigo´).AsInteger := StrToInt(ECodigo.Text);
ExecSQL;
end;

Direto:

white dtm1.Q3 do
begin
if Active then
Close;
SQL.Clear;
SQL.Add(´insert into Mensalidade (Cod_Mor) values (´ + ECodigo.Text + ´)´);
ExecSQL;
end;

se o campo cod_mor for string:

Via parametro:

white dtm1.Q3 do
begin
if Active then
Close;
SQL.Clear;
SQL.Add(´insert into Mensalidade (Cod_Mor) values (:ECodigo)´);
ParamByName(´ECodigo´).AsString := ECodigo.Text;
ExecSQL;
end;

Direto:

white dtm1.Q3 do
begin
if Active then
Close;
SQL.Clear;
SQL.Add(´insert into Mensalidade (Cod_Mor) values (´ + QuotedStr(ECodigo.Text) + ´)´);
ExecSQL;
end;


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar