|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Как сделать Commit? Delphi + Ehlib + Firebird.
Приветствую всех.
Как сделать Commit, если я юзаю компоненты из Ehlib? Например,подключаю DBNavigator, MemTableEh, TDbGridEh и т.д. и т.п. ... ,DataSource, IBDatabase, IBTransaction. Нажимаю на "+",вставляю запись. Жму на галочку. Все нормально запись добавилась. Но как сохранить изменения, через IBTransaction? В IBTransaction установил Read/Write. В примерах из стандартной поставки этого нету (в смысле сохранения изменений). СУБД Firebird 2.1. И что за временные файлы с расширением *.MB образуются при работе с базой? И ещё вопрос, если можно У меня на 1 ПК стоят одновременно Delphi 7 и 2010. Поставил Ehlib v5.0.02 на Delphi 7 - всё отлично работает. Поставил на Delphi 2010 - не все примеры запускаются. После компиляции и запуска примера с TreeView - ошибка из класса EdbEngine "Cannot load driver" - не может загрузить драйвер. При этом если Delphi 2010 запущен и запущен Delphi 7,то в D7 выходит та же ошибка. Может я bpl не так поставил/не поставил в D2010? А так скомпилировал нормально. Там есть 2 bpl Design Time и 2 др. bpl. Как вот эти 2 bpl правильно поставить в D2010. Что посоветуете? |
#2
|
|||
|
|||
1. Если у тебя у IBTransaction стоит ватоматический коммит, то он будет выполнен автоматически. Надо просто поставить соотв. Commit в св-ве AutoAction (кажется так).
2. Если ты управляешь транзакциями вручную, то, соответсвенно, надо вызывать StartTransaction и Commit/Rollback у соотв. компонента IBTransaction. По поводу примеров. Возможны проблемы как с самой библиотекой (2010 типа вся из себя юникодная и некоторый код просто может работать неправильно), так и проблемы с драйвером БД (какая технология доступа к данным используется?) Возможно просто драйвер для 2010 несовместим с 7. Еще одна проблема - если не ошибаюсь, то при компиляции Дельфи помещает копии *.bpl в системную папку винды. Соответсвенно, bpl, собранная для 2010 не годится для 7 и vice verse. Т.е. изначально пакеты для 7 и 2010 должны иметь разные имена. |