![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Здравствуйте. У меня случилась ошыба с вставкою данных в БД 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
|
||||
|
||||
|
Цитата:
Попробуйк варианту привести. |
|
#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; |
|
#7
|
||||
|
||||
|
Цитата:
Спасибо, помогло! |