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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.02.2016, 11:14   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Ernest027 Посмотреть сообщение
Вы это имеете ввиду?
Код:
Parameters.ParamByName('data').Value:=FormatDateTime('dd.mm.yyyy',Date);
нет.
почти.
нет смысла передавать дату в виде строки через параметр!!

нужно просто
Код:
var dt :TDatetime;

...

  dt := Date;
  Parameters.ParamByName('data').Value:=dt;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.02.2016, 11:24   #12
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Код:
var date :TDatetime;
begin
DataModule2.ADOQuery4.Active:=false;
DataModule2.ADOQuery4.SQL.Clear;
DataModule2.ADOQuery4.SQL.Add('insert into Notification select [Дата следующих замеров] from Oborudovanie where [Дата следующих замеров] >date');
DataModule2.ADOQuery4.Parameters.ParamByName('Дата следующих замеров').Value:=date;
DataModule2.ADOQuery4.ExecSQL;
DataModule2.ADOQuery4.SQL.Add('select * from Notification');
DataModule2.ADOQuery4.Active:=True;
Тип поля 'Дата следующих замеров' - datetime.
Цитата:
adoquery4: parameter 'Дата следующих замеров' not found.
Ernest027 вне форума Ответить с цитированием
Старый 29.02.2016, 11:54   #13
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Дата следующих замеров
Ну что это за имя параметра?
Код:
DataModule2.ADOQuery4.SQL.Add('insert into Notification select [Дата следующих замеров] from Oborudovanie where [Дата следующих замеров] >:DateNext');
DataModule2.ADOQuery4.Parameters.ParamByName('DateNext').Value:=date;
Да и имя поля на кириллице для возможных дополнительных проблем
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 29.02.2016, 12:10   #14
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Мне еще одно поле Datenext добавить?
а где прописать условие за 2 дня до Даты следующих замеров?
Ernest027 вне форума Ответить с цитированием
Старый 29.02.2016, 12:42   #15
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Код:
DataModule2.ADOQuery4.Active:=false;
DataModule2.ADOQuery4.SQL.Clear;
DataModule2.ADOQuery4.SQL.Add('insert into Notification select [Дата следующих замеров] from Oborudovanie where [Дата следующих замеров] >:DateNext');
DataModule2.ADOQuery4.Parameters.ParamByName('DateNext').Value:=IncMonth(Date,-2);
DataModule2.ADOQuery4.ExecSQL;
DataModule2.ADOQuery4.SQL.Add('select * from Notification');
DataModule2.ADOQuery4.Active:=True;
Цитата:
имя столбца или число предоставленных значений не соответствует определению таблицы
Ernest027 вне форума Ответить с цитированием
Старый 29.02.2016, 12:56   #16
Adamrus
Пользователь
 
Аватар для Adamrus
 
Регистрация: 26.11.2009
Сообщений: 59
По умолчанию

Цитата:
Сообщение от Ernest027 Посмотреть сообщение
Код:

DataModule2.ADOQuery4.SQL.text :=
'
insert into Notification {где столбцы в которые идет вставка?! где слово VALUES ?} select [Дата следующих замеров] from Oborudovanie where [Дата следующих замеров] >:DateNext');

// чтобы не ошибаться в названиях параметров, лучше обращаться к ним по индексу, хотя это дело сугубо личное конечно

DataModule2.ADOQuery4.Parameters.Items[0].Value := IncMonth(Date,-2);
выведи в MEMO свой SQL запрос, там у тебя полная каша

Код:
INSERT INTO table2
SELECT * FROM table1;
так можно только если все столбцы в таблицах совпадают

Последний раз редактировалось Adamrus; 29.02.2016 в 13:16.
Adamrus вне форума Ответить с цитированием
Старый 29.02.2016, 13:21   #17
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
имя столбца или число предоставленных значений не соответствует определению таблицы
Цитата:
Код:
'insert into Notification select [Дата следующих замеров] from Oborudovanie where [Дата следующих замеров] >:DateNext'
Вы в таблицу Notification вставляете записи, состоящие из одного поля "[Дата следующих замеров]". Вам СУБД и говорит, что у Вас в Notification есть и другие значимые поля, про которые Вы забыли.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.02.2016, 13:22   #18
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

не выходит.
Код:
if IncMonth(int(Date),-2 ) <= Int(DataModule2.ADOQuery3.FieldByName('Дата следующих замеров').AsDateTime) then
DataModule2.ADOQuery4.Edit;
dataModule2.adoquery4.FieldByName('Дата следующих замеров').AsDateTime:=dataModule2.adoquery3.FieldByName('Дата следующих замеров').AsDateTime;
dataModule2.adoquery4.Post;
вот это я хочу сделать, но используя запрос
Ernest027 вне форума Ответить с цитированием
Старый 29.02.2016, 13:42   #19
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

А Вы знаете разницу между "ДОБАВИТЬ НОВУЮ ЗАПИСЬ" и "ИЗМЕНИТЬ СУЩЕСТВУЮЩУЮ ЗАПИСЬ" ?

Insert - добавление новой записи
Edit присвоение Post - это изменение записи

Может быть, пора разобраться, что же Вам надо?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.02.2016, 13:50   #20
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

у меня этим методом все работает как надо. Просто хочу начать изучать SQL-запросы. Сейчас нужно копировать все записи из поля Дата следующих замеров из одной таблицы в поле с таким же названием второй таблицы, но при условии, что до Даты следующих замеров осталось 2 месяца.
Ernest027 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MS SQL SERVER 2005 копирование таблицы из ОДНОЙ БД В другую или перенести все строки из одной таблицы в другую reihtmonbern БД в Delphi 4 17.07.2012 23:25
копирование ячеек из одной книги в другую по условию troyam Microsoft Office Excel 2 22.03.2012 15:17
Копирование записей из одной таблицы в другую rockedit БД в Delphi 4 10.12.2009 21:39
Копирование записей из одной DBF таблицы в другую ИВэТэшка БД в Delphi 0 20.03.2009 22:37
Копирование данных из одной таблицы в другую! фЁдОр БД в Delphi 18 06.01.2008 19:27