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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2009, 18:14   #1
Yura_S
Пользователь
 
Регистрация: 19.10.2009
Сообщений: 31
Сообщение Добавление записи в таблицу (ADO)

Таблица в Access, первый столбец-числовой тип, второй-денежный тип, третий-дата. Нужно чтобы при нажатии на кнопку первые два значения считывались из edit-ов а дата записывалась текущая. Подскажите пожалуста как это можно реализовать, пытался через запрос, но не получилось. Вот мой код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.ADOQuery2.Active:=false;
Form1.ADOQuery2.SQL.Text:=('INSERT INTO Продажи ( т№, сум, дат ) VALUES ('+Edit1.Text+','+Edit2.Text+',DATE) FROM Продажи');
Form1.ADOQuery2.Active:=true;
end;
Помогите пожалуста кто чем может

Последний раз редактировалось mihali4; 25.11.2009 в 18:53.
Yura_S вне форума Ответить с цитированием
Старый 23.10.2009, 18:19   #2
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

Код:
Form1.ADOQuery2.close;
Form1.ADOQuery2.SQL.Text:='INSERT INTO Продажи ( id_prod, sum, date_prod ) VALUES (:id,:s,:d);
Form1.Parametrs.ParamByName('id').value:=edit1.text;
Form1.Parametrs.ParamByName('s').value:=edit2.text;
Form1.Parametrs.ParamByName('d').value:=date;
Form1.ADOQuery2.ExecSQl;
Form1.ADOQuery2.open;
Чтобы не было проблем используйте английские имена полей. И не помню правильно ли получаю дату, но смысл такой
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 23.10.2009, 18:24   #3
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

а зачем после этого
Код:
Form1.ADOQuery2.ExecSQl;
это?
Код:
Form1.ADOQuery2.open;
З.Ы.: и за параметризацию - сердечное спасибо
soleil@mmc вне форума Ответить с цитированием
Старый 23.10.2009, 18:33   #4
Yura_S
Пользователь
 
Регистрация: 19.10.2009
Сообщений: 31
По умолчанию

на строке с form1.parametrs.. ошибку пишет [Error] Unit1.pas(101): Undeclared identifier: 'Parametrs' я так понял что этого параметра вообще нету.. что делать? может посоветуете почитать что нибудь по этой теме, ничего не получается ато...
Yura_S вне форума Ответить с цитированием
Старый 23.10.2009, 18:42   #5
Yura_S
Пользователь
 
Регистрация: 19.10.2009
Сообщений: 31
По умолчанию

Возможно выполнить эту задачу с помощью ADOTable? И если да напишите кратко синтаксис пожалуста
Yura_S вне форума Ответить с цитированием
Старый 23.10.2009, 20:04   #6
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

подправьте код у себя
Код:
Form1.ADOQuery2.close;
Form1.ADOQuery2.SQL.Text:='INSERT INTO Продажи ( id_prod, sum, date_prod ) VALUES (:id,:s,:d);
Form1.ADOQuery2.Parametrs.ParamByName('id').value:=edit1.text;
Form1.ADOQuery2.Parametrs.ParamByName('s').value:=edit2.text;
Form1.ADOQuery2.Parametrs.ParamByName('d').value:=date;
Form1.ADOQuery2.ExecSQl;
soleil@mmc вне форума Ответить с цитированием
Старый 23.10.2009, 21:51   #7
Yura_S
Пользователь
 
Регистрация: 19.10.2009
Сообщений: 31
По умолчанию

Спасибо за ответы, но пока я их ждал, нашёл метод куда проще:

Код:
ADOTable2.Active:=true;
ADOTable2.InsertRecord ([StrToInt(Edit1.Text), StrToInt(Edit2.Text),Date]);
Может быть кому нибудь ещё пригодится

Последний раз редактировалось mihali4; 25.11.2009 в 18:55.
Yura_S вне форума Ответить с цитированием
Старый 23.10.2009, 23:03   #8
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

это все работает на простых наборах данных - из одной таблицы
все что сложнее - через запрос/ХП с параметрами
soleil@mmc вне форума Ответить с цитированием
Старый 23.10.2009, 23:32   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

soleil@mmc
думал, что тема закрыта...
ну, раз есть комментарии, позволю и своё замечание вставить:

и всё таки правильно писать так:
....ADOQuery2.Parameters.ParamByName(......
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.10.2009, 13:52   #10
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
и всё таки правильно писать так:
....ADOQuery2.Parameters.ParamByName(......
побочный эффект копи-паста
а ТС рекомендуется пользоваться встроенной справкой и Ctrl+пробел при написании кода (имхо приводимые примеры обычно несут смысловую нагрузку)
soleil@mmc вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление данных в таблицу. Hobbit_88 БД в Delphi 11 06.06.2009 13:52
Добавление записи через список в связанную таблицу(при связи с Access) megaten БД в Delphi 5 17.05.2009 15:57
ADO. Запрос на добавление. Ошибка. Son БД в Delphi 13 09.01.2009 20:15
Добавление даты в таблицу smoky Microsoft Office Access 5 24.11.2008 12:56
добавление записей в таблицу strannik БД в Delphi 5 10.05.2007 08:12