Всем доброго времени суток.
Пробую использовать компонент IBDataSet для взаимодействия с таблицами БД.
Так как работаю с ним первый раз, то ошибки пока не знакомы.
Существует к примеру таблица TOVAR.
Для отображения ее в DBGrid ипользовал стандартную связку: IBDataBase+IBTransaction+IBDataSet+DAtaSource+DBGrid
В EditSQL у IBDataSet прописал select * from TOVAR. Потом сгенерировал запрос на добавление:
insert into TOVAR
(NAME_TOV, TIP_TOV, PRICE_TOV_ZAK, COUNT_TOV, PROIZV_TOV)
values
(:NAME_TOV, :TIP_TOV,
RICE_TOV_ZAK, :COUNT_TOV,
ROIZV_TOV)
(обычным текстом, так как тег code беспощадно вставлял пути до смайликов
-> : P)
Пробую сделать добавление. В обработчике нажатия кнопки "Добавить" пишу следующее:
Код:
IBDataSet1->InsertSQL;
IBDataSet1->FieldByName("NAME_TOV")->AsString = Edit5->Text;
IBDataSet1->FieldByName("TIP_TOV")->AsString = Edit6->Text;
IBDataSet1->FieldByName("PRICE_TOV")->AsString = Edit7->Text;
IBDataSet1->FieldByName("COUNT_TOV")->AsString = Edit8->Text;
IBDataSet1->FieldByName("PROIZV_TOV")->AsString = Edit9->Text;
IBDataSet1->Open();
IBDataSet1->Post();
Чувствую, что где-то может быть ошибка, плюс при попытке добавления появляется ошибка со словами "Not in Edit Mode".
Пожалуйста, помогите разобраться.
-- Вт ноя 24, 2009 12:12:43 --Немножко продвинулся.
Добавил перед строчку IBDataSet1->Edit(); перед
IBDataSet1->InsertSQL;
Добавляет, но по несколько раз и если перейти в конец DBGrid, то наверх уже почему то подняться нельзя. Хоть свойство UniDirectional у IBDataSet установлено в True.
Что-то с айдишниками упустил наверно??
-- Вт ноя 24, 2009 12:36:10 --Исправил код добавления:
Код:
IBDataSet1->Open();
IBDataSet1->Insert();
IBDataSet1->FieldByName("NAME_TOV")->AsString = Edit5->Text;
IBDataSet1->FieldByName("TIP_TOV")->AsString = Edit6->Text;
IBDataSet1->FieldByName("PRICE_TOV_ZAK")->AsString = Edit7->Text;
IBDataSet1->FieldByName("COUNT_TOV")->AsString = Edit8->Text;
IBDataSet1->FieldByName("PROIZV_TOV")->AsString = Edit9->Text;
IBDataSet1->Post();
Все добавляет. Только почему то DBGrid стал чудить.
При просмотре до конца таблицы все идет нормально. Записи не дублируются.
Однако если потом попробовать подняться наверх, сам скролл поднимается совсем не намного, после чего опять опускается, то есть подняться нельзя. Плюс все записи становятся многократно дублированными.
Почему это происходит?