Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Не сохраняются данные


Автор: TaNK 14.5.2008, 10:43
Всем здравствуйте! Причина вроде в том, что я не могу сохранить данные в таблицу (таблица ни счем не связана, первичного ключа нет) Self_info. Данные берутся из TLabeledEdit. 
FIB_Self - TpFIBDataSet
Код

                                 FIB_Self->Insert();                                 
                                 FIB_Self->AutoUpdateOptions->UpdateTableName = "Self_info";
                                 FIB_Self->FieldByName("Name")->AsString    = Trim(LEdName->Text);
                                 FIB_Self->FieldByName("adress")->AsString  = Trim(LEdAdress->Text);
                                 FIB_Self->FieldByName("bik")->AsString     = Trim(LEdBik->Text);
                                 FIB_Self->FieldByName("inn")->AsString     = Trim(LEdInn->Text);
                                 FIB_Self->FieldByName("kpp")->AsString     = Trim(LEdKpp->Text);
                                 FIB_Self->FieldByName("ras_sch")->AsString = Trim(LEdRas->Text);
                                 FIB_Self->Post();


Вот такой простой код не сохраняет данные.
FIB_Self - нормально связан с БД, транзакциями для чтения и update.
Такой же код на Дельфях у меня работал раньше. 
Есть какие нить мысли по этому поводу?

Автор: Fazil6 14.5.2008, 11:57
Цитата(TaNK @  14.5.2008,  10:43 Найти цитируемый пост)
Есть какие нить мысли по этому поводу? 

ну и где тут подтверждение редактирующей транзакции ?

Автор: TaNK 14.5.2008, 12:01
Fazil6 - как?

Автор: TaNK 14.5.2008, 12:55
Commit я что то не нашел

Автор: mrbrooks 14.5.2008, 13:08
Имхо попробуй использовать вместо FIB_Self->Insert() метод FIB_Self->Append();

Автор: TaNK 14.5.2008, 13:16
Цитата(mrbrooks @ 14.5.2008,  13:08)
Имхо попробуй использовать вместо FIB_Self->Insert() метод FIB_Self->Append();

транзакцию подтверждать надо - Transaction->Commit()?

Автор: mrbrooks 14.5.2008, 13:28
Ага. Только при этом ее надо начать. Там есть метод Begin() или типа ?

Автор: TaNK 14.5.2008, 13:46
Цитата(mrbrooks @ 14.5.2008,  13:28)
Ага. Только при этом ее надо начать. Там есть метод Begin() или типа ?

ага...StarTransaction

Автор: mrbrooks 14.5.2008, 13:54
Ок. Ну и каков результат? Просто я делал все операции через SQL - запросы в свое время. 

Автор: TaNK 14.5.2008, 13:54
Код

FMain->FIB_BAK->Connected = true;
     FIB_Self->Active = true;
    // Self_Tr_W->Active = true;

     Self_Tr_W->StartTransaction();
     FIB_Self->Insert();

     FIB_Self->FBN("Name")->Value    = Trim(LEdName->Text);
     FIB_Self->FBN("adress")->Value  = Trim(LEdAdress->Text);
     FIB_Self->FBN("bik")->Value     = Trim(LEdBik->Text);
     FIB_Self->FBN("inn")->Value     = Trim(LEdInn->Text);
     FIB_Self->FBN("kpp")->Value     = Trim(LEdKpp->Text);
     FIB_Self->FBN("ras_sch")->Value = Trim(LEdRas->Text);
     FIB_Self->Post();
     Self_Tr_W->Commit();

ошибка следущая....

Автор: mrbrooks 14.5.2008, 13:57
Дык ты заккоментировал Self_Tr_W->Active = true

Автор: TaNK 14.5.2008, 14:51
Цитата(mrbrooks @ 14.5.2008,  13:57)
Дык ты заккоментировал Self_Tr_W->Active = true

если раскомментирую будет тоже ошибка..

Автор: TaNK 15.5.2008, 07:55
ошибка найдена...проблема была в руках.... smile тема закрыта

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)