Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.10.2012, 21:33
Red_Garry Red_Garry вне форума
Начинающий
 
Регистрация: 07.07.2011
Сообщения: 126
Репутация: 10
По умолчанию Вопрос по ADOQuery

Здравствуйте!
Задача: посредством ADOQuery и SQL-запроса осуществить ввод записи в таблицу oborud полей ur1,ur2,ur3,ur4,n_u,isp,rik,tim
Вот такой вот код
Код:
procedure TForm4.Oborud_sql2Execute(Sender: TObject);
begin

form4.Query2_oborud.SQL.Clear;
form4.Query2_oborud.SQL.Add('INSERT INTO oborud (ur1,ur2,ur3,ur4,n_u,isp,rik,tim) VALUES (:ur1,:ur2,:ur3,:ur4,:n_u,:isp,:rik,:tim)');
form4.Query2_oborud.Parameters.ParamByName('ur1').Value := ur1;
form4.Query2_oborud.Parameters.ParamByName('ur2').Value := ur2;
form4.Query2_oborud.Parameters.ParamByName('ur3').Value := ur3;
form4.Query2_oborud.Parameters.ParamByName('ur4').Value := ur3;
form4.Query2_oborud.Parameters.ParamByName('n_u').Value := form5.Memo1.Text;
form4.Query2_oborud.Parameters.ParamByName('isp').Value := form3.polz;
form4.Query2_oborud.Parameters.ParamByName('rik').Value := StrToInt(form5.Edit1.Text);
form4.Query2_oborud.Parameters.ParamByName('tim').Value := now;
form4.Query2_oborud.Active := true;


end;
выдаёт ошибку 'Query2_oborud: Parameter 'ur1' not found
В чём накрутил, не подскажете?

Последний раз редактировалось Red_Garry, 12.10.2012 в 21:39.
Ответить с цитированием
  #2  
Старый 12.10.2012, 21:41
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,029
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

После ввода запроса в компонент надо зайти в Object Inspector'е в параметры и настроить их. Вообще, непонятен смысл делать параметры, если ты все-равно задаешь запрос динамически. Генерируй запрос сразу со значениями.
Ответить с цитированием
  #3  
Старый 12.10.2012, 21:44
Red_Garry Red_Garry вне форума
Начинающий
 
Регистрация: 07.07.2011
Сообщения: 126
Репутация: 10
По умолчанию Вопрос по ADOQuery

я извиняюсь за бестолковость, я только учусь, а сразу со значениями - это как? Можно код?
Ответить с цитированием
  #4  
Старый 12.10.2012, 22:24
Red_Garry Red_Garry вне форума
Начинающий
 
Регистрация: 07.07.2011
Сообщения: 126
Репутация: 10
По умолчанию

заработал мой код: оказалось, что в компоненте ADOQuery я забыл заполнить свойство Connection. Но всё равно вопрос в силе: как проще выполнить указанную задачу? Так, чтоб без параметров
Ответить с цитированием
  #5  
Старый 13.10.2012, 02:54
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,029
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, примерно так:
Код:
const
  sQuery = 'INSERT INTO oborud (''%s'',''%s'',''%s'',''%s'',''%s'',''%s'',%d,''%s'')'; VALUES (:ur1,:ur2,:ur3,:ur4,:n_u,:isp,:rik,:tim)';
begin
  ADOQuery.SQL.Text := Format(sQuery,[ur1,ur2,ur3,ur4,form5.Memo1.Text,form3.polz,StrToInt(form5.Edit1.Text),DateTimeToStr(Now)]);
  ADOQuery.ExecSQL;

PS. не знаю тип form3.polz, описал как строку. Ну и с датой надо будет посмотреть поподробнее, хотя now можно на триггере выставлять, тогда его вообще из запроса можно исключить.
Ответить с цитированием
  #6  
Старый 13.10.2012, 09:04
Red_Garry Red_Garry вне форума
Начинающий
 
Регистрация: 07.07.2011
Сообщения: 126
Репутация: 10
По умолчанию

Большое спасибо за науку! Сегодня буду пытаться
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:26.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter