在表中插入记录会导致错误消息

问题描述 投票:0回答:1

当我想在数据库中的表中插入记录时,我收到以下错误消息:insert语句中的列数少于values子句中指定的列数。这是我的SQL语句:

dm.qr_emp.SQl.Add( 'insert into emp_per(nom, prenom, date_naiss1, cle_ccp,nomf,prenomf,' +
  'lieu_naiss,sex,adr,id_corps,id_fonction,id_categ,montant_resp,' + 'compte_ccp,etat,sal_base,id_grade,id_banque,id_degree,sal_unique,' +'pfc,iep,num_social,sal_principale,ind,salaire,montant_irg,' +
  'ss,nbr_enfant,nbr_enfant_sup,bource_f,irg,retenue) '
);
dm.qr_emp.SQL.Add
('values('+quotedstr(edit1.Text)+', '+quotedstr(edit2.Text)+','+quotedstr(formatdatetime('yyyy-dd-mm',datetimepicker1.DateTime))+', '+

edit4.Text+','+quotedstr(edit5.Text)+','+quotedstr(edit3.Text)+','+quotedstr(edit6.Text)+','+quotedstr(ComboBox3.Text)+','+quotedstr(edit8.Text)+','+ inttostr(id_corps)+','+ inttostr(id_fonction)+', 
'+quotedstr(edit10.Text)+','+floattostr(salair_responsabilite)+','+quotedstr(edit7.Text)+','+quotedstr(ComboBox5.Text)+','+floattostr(salaire_base)+','+ inttostr(id_grade)+','+ inttostr(id_banque)+','+

inttostr(id_degree)+','+quotedstr(ComboBox8.Text)+','+ 
floattostr(pfc)+','+quotedstr(edit15.Text)+','+quotedstr(edit13.Text)+','+ 
floattostr(sal_principale)+','+floattostr(ind)+','+quotedstr(edit20.text)+',+'+floattostr(montant_irg)+','+floattostr(ss)+', '+(edit23.Text)+', 
'+quotedstr(edit26.Text)+','+floattostr(boursef)+','+quotedstr(edit21.Text)+','+
floattostr(retenu)+')'); 

dm.qr_emp.ExecSQL;
delphi-2010
1个回答
1
投票

如果要插入记录,则列数必须与插入的值数相同。例如:

INSERT INTO Employees(Name, City, AccountNumber)
VALUES ("John", "London", "0098737602230")

例如,下一个语句将失败,因为列名和插入值的数量不匹配。

INSERT INTO Employees(Name, City)
VALUES ("John", "London", "0098737602230")

INSERT INTO Employees(Name, City, AccountNumber)
VALUES ("John", "London")

我建议稍微构建你的代码。当前声明不会被人阅读,并会导致错误。

© www.soinside.com 2019 - 2024. All rights reserved.