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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2013, 14:25   #1
Teror4uks
Пользователь
 
Регистрация: 28.10.2013
Сообщений: 34
По умолчанию Проблема транзакции в Delphi 7

Доброго времени суток!

Возникла проблема с заполнением БД созданной средствами СУБД Fireberd 2.5 через написанное приложение в Delphi 7 используя компоненты FIBplus, происходит следующее открываю приложение БД он видит, если вношу изменения через IBExpert и принимаю транзакцию, а в приложении щёлкаю по кн. "Обновить" он отлично видит все изменения, но когда пытаюсь добавить новую строку через приложение он почему то отказывается заносить изменения в БД. Исходники прилагаются.
Вложения
Тип файла: rar БД мой.rar (505.4 Кб, 10 просмотров)
Teror4uks вне форума Ответить с цитированием
Старый 09.11.2013, 15:18   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

покажите как добавляете
eval вне форума Ответить с цитированием
Старый 09.11.2013, 17:07   #3
Teror4uks
Пользователь
 
Регистрация: 28.10.2013
Сообщений: 34
По умолчанию

это значит я создаю форму (dstAudit - FIBDataSet)
Код:
procedure TfmMain.buAddClick(Sender: TObject);
begin

  fmAdd := TfmAdd.Create(Application);
  
  if fmAdd.ShowModal = mrOK then
  begin
    
    DataModule1.dstAudit.Post;
    StatusBar1.Panels[1].Text :=
IntToStr(DataModule1.dstAudit.RecordCount);
  end

 else DataModule1.dstAudit.Cancel
end;
а это уже непосредственно нажимаю на кн ОК и добавляю запись
Код:
procedure TfmAdd.Button1Click(Sender: TObject);
begin

DataModule1.dstAudit.insert;

DataModule1.dstAudit.FBN('NUMBER AUDIENCE').AsInteger := StrToInt(Edit1.text) ;
DataModule1.dstAudit.FBN('NUMBER HOUSING').AsInteger := StrToInt(Edit2.text) ;
DataModule1.dstAudit.FBN('COMMANDANTE').AsString := Edit3.text ;
DataModule1.dstAudit.FBN('TYPE AUDIENCE').AsString := Edit4.text ;

end;

procedure TfmAdd.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 Action := caFree;
 fmAdd:=nil;
end;

Последний раз редактировалось Stilet; 09.11.2013 в 17:27.
Teror4uks вне форума Ответить с цитированием
Старый 09.11.2013, 17:27   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А у тебя не вызван метод сохранения нигде.
Код:
procedure TfmAdd.Button1Click(Sender: TObject);
begin
//Включаем набор данных в режим добавления записи
DataModule1.dstAudit.insert;
//Заносим введенные значения в набор данных dstAudit
DataModule1.dstAudit.FBN('NUMBER AUDIENCE').AsInteger := StrToInt(Edit1.text) ;
DataModule1.dstAudit.FBN('NUMBER HOUSING').AsInteger := StrToInt(Edit2.text) ;
DataModule1.dstAudit.FBN('COMMANDANTE').AsString := Edit3.text ;
DataModule1.dstAudit.FBN('TYPE AUDIENCE').AsString := Edit4.text ;
DataModule1.dstAudit.Post;
Или
DataModule1.dstAudit.Commit; я точно не знаю этих компонентов
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.11.2013, 17:40   #5
Teror4uks
Пользователь
 
Регистрация: 28.10.2013
Сообщений: 34
По умолчанию

ну он вызван уже на форме чуть выше где условие что если всё поля заполнены то заносим данные, в любом случае попробовал твой способ, не помогло, он просто на главной форме создаёт запись но когда смотрю через IBExpert ничего не добавлено, хотя одна странность есть число генератора и в приложении и IBExperte отображается правильно.

Последний раз редактировалось Teror4uks; 09.11.2013 в 17:45.
Teror4uks вне форума Ответить с цитированием
Старый 09.11.2013, 18:00   #6
Vad33
Участник клуба
 
Аватар для Vad33
 
Регистрация: 24.07.2009
Сообщений: 1,136
По умолчанию

Цитата:
Сообщение от Teror4uks Посмотреть сообщение
ну он вызван уже на форме чуть выше где условие что если всё поля заполнены то заносим данные, в любом случае попробовал твой способ, не помогло, он просто на главной форме создаёт запись но когда смотрю через IBExpert ничего не добавлено, хотя одна странность есть число генератора и в приложении и IBExperte отображается правильно.
Переподключить IBExpert пробовал?
** Удача терпелива. **
Vad3333@inbox.ru
Vad33 вне форума Ответить с цитированием
Старый 09.11.2013, 20:08   #7
Teror4uks
Пользователь
 
Регистрация: 28.10.2013
Сообщений: 34
По умолчанию

ага пробовал всё равно не помогает, а генератор сволочь всё считает правильно
Teror4uks вне форума Ответить с цитированием
Старый 10.11.2013, 12:55   #8
Teror4uks
Пользователь
 
Регистрация: 28.10.2013
Сообщений: 34
По умолчанию

решил проблему, нашёл здесь http://www.programmersforum.ru/showthread.php?t=95942

если кому интересно в конце кода
procedure TfmAdd.Button1Click(Sender: TObject);
begin
//Включаем набор данных в режим добавления записи
DataModule1.dstAudit.insert;
//Заносим введенные значения в набор данных dstAudit
DataModule1.dstAudit.FBN('NUMBER AUDIENCE').AsInteger := StrToInt(Edit1.text) ;
DataModule1.dstAudit.FBN('NUMBER HOUSING').AsInteger := StrToInt(Edit2.text) ;
DataModule1.dstAudit.FBN('COMMANDAN TE').AsString := Edit3.text ;
DataModule1.dstAudit.FBN('TYPE AUDIENCE').AsString := Edit4.text ;
DataModule1.dstAudit.Post;
добавляется строка подтверждения транзакции
DataModule1.dstAudit.Transaction.Co mmit;
и строка чтобы сразу он на главной форме обновлял изменения
DataModule1.dstAudit.FullRefresh;
Teror4uks вне форума Ответить с цитированием
Старый 10.11.2013, 12:59   #9
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

то у вас ибэксперт не видит то форма, не определились еще?
eval вне форума Ответить с цитированием
Старый 10.11.2013, 13:13   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
то у вас ибэксперт не видит то форма, не определились еще?
Та да... Неоднозначность надуманности проблемы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi + ADO + Access, транзакции... Highlander1981 БД в Delphi 1 06.03.2012 16:56
транзакции sem_1989 SQL, базы данных 1 23.09.2011 22:43
Рабочии транзакции Indy (Delphi) _PROGRAMM_ Помощь студентам 1 13.11.2010 12:48
транзакции пауэрлифтинг БД в Delphi 0 27.05.2010 02:24
Транзакции и try nikmay Общие вопросы Delphi 1 30.07.2009 21:13