|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Ошибка с INSERT INTO
Здравствуйте. У меня случилась ошыба с вставкою данных в БД Acess.
Все данные нужного типа, но не вставляются. Выдает ошибку: Вот структура БД: И пример кода: Код:
ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add( 'INSERT INTO days ([day],[misk],[silsk],[all]) VALUES (:day,:misk,:silsk,:all)'); ADOQuery1.Parameters.ParamByName('day').Value.AsDate:=date; ADOQuery1.Parameters.ParamByName('misk').Value.AsInteger:=0; ADOQuery1.Parameters.ParamByName('silsk').Value.AsInteger:=0; ADOQuery1.Parameters.ParamByName('all').Value.AsInteger:=0; ADOQuery1.ExecSQL; Прошу помочь, и указать ошибки, если есть таковы. Последний раз редактировалось TaraZZZ, 09.11.2011 в 14:22. |
#2
|
||||
|
||||
Цитата:
Попробуйк варианту привести. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
||||
|
||||
Если у тебя в дизайнтайме в кверик добавлены все параметры, а ты инитишь в запросе не все - то будут ошибки.
Именно поэтому я и создаю все параметры запроса в рантайме, да в принципе и кверики я тоже в рантайме создаю всегда. Ибо лениво мне их в дизайнтайме создавать/настраивать. Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#4
|
||||
|
||||
Цитата:
Ну так я и создаю запрос в рантайме. В дизантайме у меня вообще ничего не указано. |
#5
|
||||
|
||||
Даже так пробовал:
Код:
with ADOCommand do begin CommandText := 'INSERT INTO days ([day],[misk],[silsk],[all]) VALUES (:day,:misk,:silsk,:all)'; Parameters.ParamByName('day').Value.AsDate := date; Parameters.ParamByName('misk').Value.AsInteger := 0; Parameters.ParamByName('silsk').Value.AsInteger := 0; Parameters.ParamByName('all').Value.AsInteger := 0; try Execute; except on E: Exception do begin end; end; end; |
#6
|
||||
|
||||
Цитата:
Date ведь стринговая переменная? И какое значение она принимает в момент выполнения запроса? Код:
var qry: TADOQuery; ... qry:= TADOQuery.Create(nil); with qry do begin Connection:= ADOConnection1; SQL.Text:= 'insert into days(day, misk, silsk, all) values('+QuotedStr(date)+',0,0,0)'; ExecSQL; Free; end; Если именно с параметрами надо для дальнейшего использования данного кверика, то: Код:
var qry: TADOQuery; ... qry:= TADOQuery.Create(nil); with qry do begin Connection:= ADOConnection1; SQL.Text:= 'insert into days(day, misk, silsk, all) values(:day,:misk,:silsk,:all)'; Parameters.ParamByName('day').DataType:= ftDateTime; Parameters.ParamByName('misk').DataType:= ftInteger; Parameters.ParamByName('silsk').DataType:= ftInteger; Parameters.ParamByName('all').DataType:= ftInteger; Parameters.ParamByName('day').Value:= date; Parameters.ParamByName('misk').Value:= 0; Parameters.ParamByName('silsk').Value:= 0; Parameters.ParamByName('all').Value:= 0; ExecSQL; end; Google в помощь |
#7
|
||||
|
||||
Цитата:
Спасибо, помогло! |