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


Автор: SAnatoliy 12.5.2009, 12:31
Создаю запись, делаю Post();. Закрываю программу, и после открытия запись пустая. 
автоинкрементное поле через триггер создается, а данные введенные нет.


выдержки кода: 

Открываю форму.
Код

void __fastcall TChForm::FormCreate(TObject *Sender)
{
DataModule1->IBDataSet2->Active = true;


кнопка.
Вставка новой записи:
Код

if(DataModule1->IBTransaction1->Active) { DataModule1->IBTransaction1->Rollback(); }
 DataModule1->IBTransaction1->StartTransaction();
        DataModule1->IBDataSet2->Active = true;
        DataModule1->IBDataSet2->Insert();



заполняю в гриде запись.


кнопка.
Сохраение:

Код

if(DataModule1->IBDataSet2->State == dsEdit || DataModule1->IBDataSet2->State == dsInsert) {
 StatusBar1->Panels->Items[1]->Text = "Сохранено.";
 DataModule1->IBDataSet2->Post();
 DataModule1->IBTransaction1->CommitRetaining(); }



P.S.

Когда делаю так:
Код

        DataModule1->IBDataSet2->Active = false;
        DataModule1->IBDataSet2->SelectSQL->Clear();
        DataModule1->IBDataSet2->SelectSQL->Add("insert into tabl_cheng_num (old_num, new_num) values (1234567890,10987654321)");
        DataModule1->IBDataSet2->Active = true;

то все нормально. но мне надо чтоб править и добавлять в гриде. 
через DBNavigator1 тоже самое. не пойму где косяк(


Цитата

Свойства компонента   - IBDataSet2

1.
delete from tabl_cheng_num where NUM_PP2 = :OLD_NUM_PP2

2.
insert into tabl_cheng_num (num_pp2, old_num, new_num)
values (:num_pp2, :old_num, :new_num)

3.
update tabl_cheng_num
set num_pp2 = :num_pp2,
    old_num = :old_num,
    new_num = :new_num

4.
RefleshSQL  - пусто

5.
select * from TABL_CHENG_NUM

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