использование db_virtualtreeview

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
VAS

использование db_virtualtreeview

Сообщение VAS » 15 ноя 2004, 12:01

Закачал компонент к FIBPlus, db_virtualtreeview, установил все ОК, однако тестовый пример для db_virtualtreeview не работает, точнее работает некорректно - визуально ноды добавляются, удаляются и т.д., а фактически изменения в базу не сохраняются. В чем может быть проблемма, если кто сталкивался помогите плз. Использую Firebird. Заранее благодарен.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 15 ноя 2004, 12:07

проверь sql-monitor-ом, сделай commit в транзакции....

VAS

Сообщение VAS » 15 ноя 2004, 12:19

kdv писал(а):проверь sql-monitor-ом, сделай commit в транзакции....
DataSet в фибах есть AutoCommit, оно стоит в True, так что изменения должны проходить.

VAS

Сообщение VAS » 15 ноя 2004, 14:33

kdv писал(а):проверь sql-monitor-ом, сделай commit в транзакции....
Вот что выдал sql-monitor
[Application: DemoFIBPlusTreeView.exe]
VTFIBDataSet1: [Prepare] INSERT INTO TREE_EXAMPLE(
ID,
NAME,
ID_PARENT
)
VALUES(
?ID,
?NAME,
?ID_PARENT
)

Plan:

[Application: DemoFIBPlusTreeView.exe]
VTFIBDataSet1: [Execute] INSERT INTO TREE_EXAMPLE(
ID,
NAME,
ID_PARENT
)
VALUES(
?ID,
?NAME,
?ID_PARENT
)

ID = '182'
NAME = 'Предприятие'
ID_PARENT = '0'
Rows Affected: 1
Execute tick count 0

Судя по тому что Rows Affected: 1, то в транзакции commit не сделан.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 15 ноя 2004, 14:41

Судя по тому что Rows Affected: 1, то в транзакции commit не сделан.
Странный вывод. rowsaffected это количество изменений, сделанных одним оператором. insert вставляет 1 запись, так что все OK.

со всякими автокоммитами не рекомендую, потому что как видишь, фигня получается. Почему бы ручками не стартовать завершать транзакции, ведь так или иначе кладешь pFIBTransaction на форму или в датамодуль, или нет?

VAS

Сообщение VAS » 15 ноя 2004, 15:11

kdv писал(а): со всякими автокоммитами не рекомендую, потому что как видишь, фигня получается. Почему бы ручками не стартовать завершать транзакции, ведь так или иначе кладешь pFIBTransaction на форму или в датамодуль, или нет?
Так и есть, после завершения редактирования узла StartTransaction есть, а Commit не вызывается... Commit сделал, все заработало. Блальшое спасибо! :)

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 15 ноя 2004, 16:32

еще один довод о вреде "автоматических" транзакций :-)

Ответить