Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2016, 17:00   #11
edsjeka
Пользователь
 
Регистрация: 01.01.2016
Сообщений: 98
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Вам нужно при вставке использовать параметр, а не присваивать его полю датасета неизвестно зачем в конце...

сравните:
Код:
today:=Now; 
 DataModule1.SQLQuery1.Active:=false; 
 DataModule1.SQLQuery1.SQL.Text:='Insert Into Cartridgi (IDModelCartridga, Articul,'+ 
  ' IDKlienta, IDManagerPrin, IdStatusa, Komments) Values ('+IntToStr(md)+ 
  ', '+ '"'+art+'"'+', '+IntToStr(kl)+', '+IntToStr(pr)+', :mydate, "1",'+'"'+kom+'"'+')'; 
  DataModule1.SQLQuery1.Prepare;
  DataModule1.SQLQuery1.ParamByName('mydate').Value:=today;
  DataModule1.SQLQuery1.ExecSQL;
только мне сдаётся, что запрос неверный - количество указанных полей меньше, чем число значений в values.
например, в какое поле должна дата вставляться?!! похоже пропущено поле между IDManagerPrin, IdStatusa

p.s. остальные значения в запросе тоже неплохо бы заменить параметрами.
DataModule1.SQLQuery1.Prepare; - такого нет, есть или Prepared или PrepareStatements, а если его убираю, ошибка выбивает 'Column count doesn't match value count at row 1'
edsjeka вне форума Ответить с цитированием
Старый 15.02.2016, 17:38   #12
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,869
По умолчанию

Цитата:
Сообщение от edsjeka Посмотреть сообщение
ошибка выбивает 'Column count doesn't match value count at row 1'
Об этом и говорил Serge_Bliznykov
Цитата:
только мне сдаётся, что запрос неверный - количество указанных полей меньше, чем число значений в values.
northener вне форума Ответить с цитированием
Старый 15.02.2016, 17:42   #13
edsjeka
Пользователь
 
Регистрация: 01.01.2016
Сообщений: 98
По умолчанию

Да, разобрался, не дописал поле с датой для вставки значения. Работает, только я убрал DataModule1.SQLQuery1.Prepare;, так и не понял пока как его использовать и нужно ли здесь.
edsjeka вне форума Ответить с цитированием
Старый 15.02.2016, 18:02   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Работает, только я убрал DataModule1.SQLQuery1.Prepare;, так и не понял пока как его использовать и нужно ли здесь.
раз работает, значит, это Prepare не нужно отдельно вызывать.
(вообще это нужно делать, чтобы заставить запрос "увидеть" параметры).
но, раз обращение к параметру по имени отрабатывает, значит, запрос парсится, и можно в данном случае обойтись без вызова этого метода.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.02.2016, 18:56   #15
edsjeka
Пользователь
 
Регистрация: 01.01.2016
Сообщений: 98
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
раз работает, значит, это Prepare не нужно отдельно вызывать.
(вообще это нужно делать, чтобы заставить запрос "увидеть" параметры).
но, раз обращение к параметру по имени отрабатывает, значит, запрос парсится, и можно в данном случае обойтись без вызова этого метода.
Спасибо.
edsjeka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формат даты Polina_ Помощь студентам 1 20.12.2012 17:42
Формат даты. vlkr Microsoft Office Access 1 04.08.2012 23:43
Формат даты SergiOD Общие вопросы Delphi 5 09.03.2011 02:11
Формат даты Iskin Microsoft Office Excel 5 16.04.2009 14:49
Формат даты. IVANSour Общие вопросы Delphi 1 18.01.2009 15:36