Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Изменить значение поля в Table после SQL запроса

23K
17 июля 2007 года
S!nner
10 / / 16.05.2007
Есть таблица в формате dbf, в таблице три поля: Номер ,Тип, Коментарий,
Требуется найти дибликаты по полю Номер и в соответствии с полем Тип присвоить ему коментарий
(Записей с одновременно одинаковыми номерами и типом в таблице нет)
Поиск дубликатов сделал через Query? а как добавить коментарий не знаю
Пробовал вот так:
Код:
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM "' + table+'" T1 LEFT JOIN "' + table+'" T2 ON T1.COUP_NUM =T2.COUP_NUM WHERE T1.REC_TYPE <> T2.REC_TYPE');
Query1.Open;

if Query1.RecordCount > 1 then
 begin
   while not Query1.Eof do
     begin
      if Query1.FieldByName('REC_TYPE').Value=1 then
        begin
        Query1.Edit;
        Query1.FieldByName('PRINT_CODE').Value:='A';
        Query1.Next;
        end
     else
       begin
       Query1.Edit;
       Query1.FieldByName('PRINT_CODE').Value:='B';
       Query1.Next;
       end;
    end;
 end;
3.2K
22 июля 2007 года
nikipelovav
152 / / 12.04.2006
Чтобы SQL запрос можно было редактировать существует
компонента TUpdateSQL, в которой отдельно описываются
SQL запросы на создание, изменение и удаление записей.

Создай объект этого класса и свяжи его с объектом запроса
данных. И всё получится!

// Например ...

UpdateMain = new TUpdateSQL (Owner);
QueryMain->UpdateObject = UpdateMain ;

В своей программе Я сделал иначе. У меня была задача, по факту
изменения данных в SQL сохранять изменения не только в таблице
источнике данных для SQL, но и в других таблицах.
Для этого пришлось описать обработчик события OnPost.

ВАЖНО: чтобы этот обработчик запускался ОБЯЗАТЕЛЬНО связать
объект Query c объектом UpdateSQL. А вот описывать UpdateSQL не надо.

В обработчике OnPost (по факту записи в источник данных) Я уже делал
что хотел с любыми таблицами.

Если удобно читать код на C++ загрузи мой исходник ProjBeam (раздел Другое ) и изучи этот межанизм детально. Смотри класс BDBFields и в классе BDocument конструктор (там видно связывание Query и UpdateSQL) и обработчики событий AfterPost, BeforeEdit и т.п.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог