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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2015, 12:27   #1
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию Работа с записями

Посмотрите пожалуйста что я делаю не так...
Пытаюсь написать код,чтобы в 4ой таблице находилась строка такая же что и в 3ей. И если таковая есть,то не вставлять её,а переходить к следующей записи. Если нет,то вставить её. Вот код:

Код:
procedure TDataModule2.MyLocate(s: String);
begin
ADOQuery3.Locate('id_Оборудования', s, [loPartialKey]);
end;

procedure TDataModule2.Timer1Timer(Sender: TObject);
var
Y, M, D:Word;
begin
form1.ProgressBar1.Position:=form1.ProgressBar1.Position+ADOQuery3.RecNo;
MyLocate(ADOQuery4.FieldByName('id_Оборудования').AsString);
if ADOQuery4.FieldByName('id_Оборудования').AsString=ADOQuery3.FieldByName('id_Оборудования').AsString then
begin
ADOQuery4.Append;
ADOQuery3.Next;
end
else
begin
if Int(Date-3 ) = Int(DataModule2.ADOQuery3.FieldByName('Дата следующих замеров').AsDateTime) then
begin
DataModule2.ADOQuery4.Edit;
dataModule2.adoquery4.FieldByName('Предприятие').Asstring:=dataModule2.adoquery1.FieldByName('Предприятие').Asstring;
dataModule2.adoquery4.FieldByName('Завод').Asstring:=dataModule2.adoquery2.FieldByName('Завод').Asstring;
dataModule2.adoquery4.FieldByName('Наименование единицы').Asstring:=dataModule2.adoquery3.FieldByName('Наименование единицы').Asstring;
dataModule2.adoquery4.FieldByName('Оперативный номер').Asstring:=dataModule2.adoquery3.FieldByName('Оперативный номер').Asstring;
dataModule2.adoquery4.FieldByName('Тип оборудования').Asstring:=dataModule2.adoquery3.FieldByName('Тип оборудования').Asstring;
dataModule2.adoquery4.FieldByName('Дата замеров').Asdatetime:=dataModule2.adoquery3.FieldByName('Дата замеров').AsDateTime;
dataModule2.adoquery4.FieldByName('Техническое состояние').Asstring:=dataModule2.adoquery3.FieldByName('Техническое состояние').Asstring;
dataModule2.adoquery4.FieldByName('Дата следующих замеров').AsDateTime:=dataModule2.adoquery3.FieldByName('Дата следующих замеров').AsDateTime;
dataModule2.adoquery4.FieldByName('id_Оборудования').Asstring:=dataModule2.adoquery3.FieldByName('id_Оборудования').Asstring;
dataModule2.adoquery4.Post;
end;
 DataModule2.ADOQuery3.Next;

end;


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 13.06.2015 в 12:43.
Ernest027 вне форума Ответить с цитированием
Старый 13.06.2015, 15:46   #2
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
И если таковая есть,то не вставлять её,
http://programmersforum.ru/showthread.php?t=279303
xxbesoxx вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с записями Geramaster Фриланс 6 04.04.2011 20:13
работа с записями wawan93 Microsoft Office Word 0 26.06.2009 14:48
Работа с записями Viata Паскаль, Turbo Pascal, PascalABC.NET 3 24.06.2009 09:03