Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > проблема с заполнением бд access


Автор: marykone 30.10.2006, 15:18
здравствуйте вот у меня ошибка возникает:

не совпадает число значений запроса и результирующих полей

Код

 adoquery1.SQL.Text:='insert into tabosn  values(:prm1,:prm2,:prm3,:prm4,:prm5,:prm6,:prm7,:prm8,:prm9,:prm10,:prm11,:prm12);';
adoquery1.Parameters.ParseSQL(adoquery1.SQL.Text,True);
adoquery1.Parameters.ParamByName('prm1').Value:=naz_org.Text;///// tedit
adoquery1.Parameters.ParamByName('prm2').Value:=data_osnov.Text;///// tedit
adoquery1.Parameters.ParamByName('prm3').Value:=prof_prazd.Text;
adoquery1.Parameters.ParamByName('prm4').Value:=adress.Text;
adoquery1.Parameters.ParamByName('prm12').Value:=strtoint(inn.Text);
adoquery1.Parameters.ParamByName('prm9').Value:=strtoint(shet.Text);
adoquery1.Parameters.ParamByName('prm10').Value:=strtoint(kor_shet.Text);
adoquery1.Parameters.ParamByName('prm11').Value:=strtoint(bik.Text);
adoquery1.Parameters.ParamByName('prm8').Value:=bank.Text;
adoquery1.Parameters.ParamByName('prm5').Value:=strtoint(phone.Text);
adoquery1.Parameters.ParamByName('prm6').Value:=site.Text;
adoquery1.Parameters.ParamByName('prm7').Value:=email.Text;
adoquery1.ExecSQL;
adoquery1.SQL.Clear;
end;


таблица выглядит так 
key1 счетчик
название организации
проф праздник 
дата основания 
адресс 
ИНН
БИК
счет 
кор счет
банк 
емаил
сайт
телефон

все это в порядке как надо т.е соответствует 

adoquery1.Parameters.ParamByName('prm7').Value:=email.Text;

prm7 содержит именно email

пожалуйста и подскажите кто знает в чем проблемма


Автор: superVad 30.10.2006, 15:42
Код

adoquery1.SQL.Text:='insert into tabosn (тут перечисли название полей через запятую) values(:prm1,:prm2,:prm3,:prm4,:prm5,:prm6,:prm7,:prm8,:prm9,:prm10,:prm11,:prm12);';


в таблице у тебя 13 полей а значений ты передаеш 12 - с чего сервер должен догадаться что первое поле у тебя автоинкремент и вставлять надо начинать с второго

и еще - точка с запятой в конце - 'insert into tabosn (тут перечисли название полей через запятую) values(:prm1,:prm2,:prm3,:prm4,:prm5,:prm6,:prm7,:prm8,:prm9,:prm10,:prm11,:prm12) - мне кажеться не нужна (хотя может это ни на что не влияеть)

Автор: marykone 30.10.2006, 15:45
спасибо сейчас попробую

Автор: DDX 30.10.2006, 17:04
marykone
пиши так: 
Код

insert into tabosn  (поле2,поле3,поле4,..поле12) values (:param1,:param2,..:param12)


указание полей, в которые ты добавляешь значения при инсерте, нужно всегда, только если ты не передаешь точно такое же число полей, как в таблице, причем  в нужном порядке

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)