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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2009, 23:13   #1
аня741
Новичок
Джуниор
 
Регистрация: 18.03.2009
Сообщений: 1
Восклицание Самый типичный пример транзакций - перевод денег с одного счета на другой.

Здравствуйте! очень стыдно просить вас помочь,но другого выхода у меня нет.решите,пожалуйста,задачу...учус ь в колледже...на программиста...понимаю только основы...с репетитором занималась,но недолго,бабосов тупо не хватило.так вот...задание...работа с бд...знаю,как компоненты связывать,как в ibconsole бд создать,ограничения всякие...а вот как в делфи это все реализовать...напряг...есть бд Банк...таблицы Филиал, Район, Клиент, Счет. на основе таблицы счет надо сделать транзакцию "перевод денег с одного счета на другой" с вызовом хранимой процедуры...ума не приложу,как делать...

нашла вот это

Самый типичный пример транзакций - перевод денег с одного счета на другой.
StartTransaction;
update accounts set ac1 = ac1 - 100 where user_id = :x;
update accounts set ac2 = ac2 + 100 where user_id = :x;
Commit;


а что куда,где писать, не знаю (((((((((((((((((

на форму перетащила компоненты ibdatabase, ibtransaction, ibquery, datasource, dbgreed... связала, в итоге отобразились данные таблицы Счет... что дальше????? ((((((((((((((((((

если кто может,помогите,пожалуйста,очень важно!!!!!!!!!!!!!!!!!
аня741 вне форума Ответить с цитированием
Старый 20.03.2009, 00:10   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Хранимая процедура будет выглядеть примерно так:
Код:
CREATE PROCEDURE ACCCHANGE (
  USER1_ID INTEGER,
  USER2_ID INTEGER,
  CHANGE_EQV DOUBLE PRECISION
)  AS    
BEGIN
 UPDATE ACCOUNTS SET USER_ACCOUNT=USER_ACCOUNT+CHANGE_EQV WHERE USER_ID=USER1_ID;
 UPDATE ACCOUNTS SET USER_ACCOUNT=USER_ACCOUNT-CHANGE_EQV WHERE USER_ID=USER2_ID;
END
Она должна храниться на сервере IB (потому и называется хранимой).
А для ее вызова удобно использовать компонент IBStoredProc.
Указываете имя процедуры (в нашем случае ACCCHANGE) и передаваемые ей параметры - идентификаторы 2-х клиентов и сумму перевода - транзакции.
И... IBStoredProc1.ExecProc; Вот и все!
В базах данных тоже есть транзакции, но это не то же самое, что денежные транзакции.
И еще. В комплекте Дельфи идет IB с документацией, там все подробно расписано для программистов.

Последний раз редактировалось mihali4; 20.03.2009 в 00:14.
mihali4 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перенос значений с одного листа на другой ANDREEY Помощь студентам 2 10.02.2009 23:22
Перевод с одного значения в другое в С++ 2008 atlon Общие вопросы C/C++ 11 11.01.2009 00:34
Перенос проги с одного ПК на другой Azef Помощь студентам 2 13.05.2008 18:07
Передача файла с одного компа на другой Kocapb Фриланс 4 18.11.2007 18:37
Перенос из одного Image в другой Dimitriys Компоненты Delphi 5 14.07.2007 23:32