Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.07.2008, 11:40
Мариюшка Мариюшка вне форума
Прохожий
 
Регистрация: 02.07.2008
Сообщения: 6
Репутация: 10
Печаль Динамическое создание и выполнение транзакции

раньше делала так: создавала базу, создавала приложение, кидала в дата-модуль компоненты связи с БД и, путем настройки их, коннектилась с базой и выполняла всю необходимую работу. теперь же встала задача создать транзакцию динамически внутри функции, выполнить ее там и все за собой закрыть. никогда в жизни этого не делала, поэтому нахожусь в ступоре и не знаю, КАК?)
допустим, нужна функция загрузки данных из таблички БД в DBGrid. кинула в связанный датамодуль Tdatabase, TIBTransaction, TIBDataSet, TdataSource, TIBQuery. DBGrid находится во фрейме. При показе этого фрейма будет вызываться функция, которая создаст транзакцию, DataSource и Query, все соединит как надо и выполнит просмотр, созданный в БД(или хранимую процедуру).

Хелп ми! а то совсем никак не могу...

Последний раз редактировалось Мариюшка, 16.07.2008 в 11:58.
Ответить с цитированием
  #2  
Старый 17.07.2008, 13:52
YERokez YERokez вне форума
Прохожий
 
Регистрация: 27.10.2007
Сообщения: 22
Репутация: 10
По умолчанию

Я вообще-то ADO использую. Там в ADOConnection есть необходимые свойства. Вот небольшой примерчик. Может поможет.
Код:
//********************************************************
Procedure Save_Data(LDB_ConnString:string);
var
    t_sp:TAdoStoredProc;
    t_conn:TAdoConnection;
Begin

    t_conn:=TAdoConnection.Create(nil);
    t_conn.LoginPrompt:=false;
    try
       t_conn.ConnectionString:=LDB_ConnString;
       try
           t_conn.Connected:=true;
       except
               on E:Exception do
               begin
                    MESSAGEDLG(E.Message,mtError,[mbOK],0);
                    Exit;
               end;
       end;

       t_sp:=TAdoStoredProc.Create(t_conn);
       t_sp.Connection:=t_conn;

       t_conn.BeginTrans;
       Try
            ----тело процедуры
           t_conn.RollbackTrans; //откатывает все несохраненные  изменения
           t_conn.CommitTrans; //комитует транзакцию
            ----
        Finally
            If t_conn.InTransaction then t_conn.CommitTrans;
        End;

    Finally
        t_conn.Free;
    End; 
End;
Ответить с цитированием
  #3  
Старый 17.07.2008, 14:09
Аватар для notricky
notricky notricky вне форума
Прохожий
 
Регистрация: 09.07.2008
Сообщения: 13
Репутация: 10
По умолчанию Какие компоненты?

Прежде всего, какая у тебя база и какими компонентами ты пользуешься (какие бросаешь на форму в дизайн-тайме)?
Ответить с цитированием
  #4  
Старый 17.07.2008, 14:13
YERokez YERokez вне форума
Прохожий
 
Регистрация: 27.10.2007
Сообщения: 22
Репутация: 10
По умолчанию

MS SQL Server. Компоненты ADOStoredProc, ADOConnection. Но в данном примере я создал их прямо в тексте процедуры и там же в конце убил.
Ответить с цитированием
  #5  
Старый 17.07.2008, 14:13
YERokez YERokez вне форума
Прохожий
 
Регистрация: 27.10.2007
Сообщения: 22
Репутация: 10
По умолчанию

Виноват. Не понял. Думал вопрос ко мне...
Ответить с цитированием
  #6  
Старый 18.07.2008, 14:18
Мариюшка Мариюшка вне форума
Прохожий
 
Регистрация: 02.07.2008
Сообщения: 6
Репутация: 10
По умолчанию

Большое спасибо! пользовалась компонентами IBX, методом Create все посоздавала)
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:17.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter