Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

baxinha_RS

Unknown column in 'field list''.

Recommended Posts

Boa noite,

 

Estou fazendo um trabalho pra facul, e estou tento esse problema ao tentar inserir os dados na tabela.

 

segue o codigo

 

procedure TFRM_pais.BTN_salvarClick(Sender: TObject);

var

sigla,desc:string;

begin

with DTM.ADOQuery1 do

begin

sigla:= EDT_sigla.Text;

desc:= EDT_desc.Text;

sql.Clear;

DTM.ADOQuery1.Close;

sql.Add('insert into pais (Sigla, Descricao) values('+ sigla+','+desc+')');

DTM.ADOQuery1.ExecSQL;

end;

 

Sei que ta estranho mas só "funciona" assim, mas na hora de salvar da este erro: Unknown column 'dado que informei no campo' in 'field list''.

 

Alguém pode me ajudar, pq a professora nao soube o que era... e tb nao tava nem ai pra me ajudar!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz assim:

 

procedure TFRM_pais.BTN_salvarClick(Sender: TObject);
var
 sigla,desc:string;
begin
 with DTM.ADOQuery1 do
   begin
     sigla:= EDT_sigla.Text;
     desc:= EDT_desc.Text;
     sql.Clear;
     DTM.ADOQuery1.Close;
     sql.Add('insert into pais (Sigla, Descricao) values(' + QuotedStr(sigla) + ',' + QuotedStr(desc) + ')');
     DTM.ADOQuery1.ExecSQL;
   end;

 

Se você fizer um ShowMessage(adoQuery1.SQL.Text) irá observar que sua query ficará assim:

insert into pais (Sigla, Descricao) values(BR, Brasil)

Os valores não foram passados entre aspas, fazendo o banco de dados trata-los como identificadores, ou seja, o nome de um campo ou uma constante e que não existem, por isto a mensagem de erro. Passe os dados entre aspas (por isto o QuotedStr, mas é possível fazer de outras formas) para que sejam tratados como texto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.