Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Возможно ли реализовать на SQL? Запрос! 
:(
    Опции темы
Uragan
Дата 13.8.2007, 03:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 29.10.2005

Репутация: нет
Всего: 0



Делаю в Access базу, есть таблица счет и поля 
Оплачено(руб) Оплатить(руб) Оплачено(логическое) 
необходимо, чтобы при установке галочки оплачено, после срабатывания, запрос в поле оплачено увеличивал на цифру в поле оплатить. 
до 
Оплачено Оплатить 
1000       1000 
после 
Оплачено Оплатить 
2000       0 
что-то вроде этого? возможно ли это сделать на SQL, если возможно то подскажите пожалуйста, как? 
Я знаю что можно в запросе сделать временное поле которое будет вычислять разницу или сумму. Но мне тут необходимо чтобы поле изменялось и хранилось в базе? 
как это реализовать? 
Если невозможно на SQL, то хотя бы, как это лучше устроить на Delphi? 
PM MAIL WWW   Вверх
Savek
Дата 13.8.2007, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 10.4.2006
Где: Воронеж

Репутация: 7
Всего: 7



Обрабатывай событие OnBeforPost в котором вноси нужные изменения
 
Код

procedure TForm1.ADOQuery1BeforePost(DataSet: TDataSet);
begin
if FieldByName('Оплачено').AsBoolean then begin
   FieldByName('Оплачено').AsCurrency:=FieldByName('Оплачено').AsCurrency+ FieldByName('Оплатить').AsCurrency;
   FieldByName('Оплатить').AsCurrency:=0;
end;
end;
примерно так ...
При установке галочки в гриде сработает это событие 

PM MAIL   Вверх
pseud
Дата 13.8.2007, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Код

UPDATE
  Таблица t
SET
  t.Оплачено(руб) = t.Оплачено(руб) + t.Оплатить(руб)
  , t.Оплатить(руб) = 0
  , t.Оплачено(логическое) = True
WHERE
  t.поле_id = <id нашей записи>

  


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0749 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.