![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 21.05.2008
Сообщений: 495
|
![]()
ЗДраствуйте,
у меня есть подключение к базе черзе IBDatabase база на Фаирбёрте 1.5 нужно в ходе выполнения программы удалить даные из базы, удаление проходит нормально но чтобы записи припали из базы нужно перезапускать ехе фаил, я так понимаю ФБ помечает записи на удаления и при отключения из базы удаляются данные, вот вопрос там как создать события при которых ФБ вычистит записи помеченые на удаления? Код:
|
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 23.04.2009
Сообщений: 1,058
|
![]()
после как удалил сделай IbTransaction.commit и почитай про это и будет тебе счастье
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
|
![]() |
![]() |
![]() |
#3 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
прежде всего, похоже, что Вы путаете понятия "база данных" и "таблица базы данных". (я по молодости лет тоже долго привыкал, хотя и знал, что это совершенно разные вещи!
![]() проверьте, так, в виде "метода тыка": 1) commit; не забыли? 2) погуглите про транзакции и их завершение в IB (то, что у вас остаётся незавершённая транзакция - это, имхо, самая вероятная, имхо, причина!) 3) попробуйте датасет, через который идёт обращение к таблице тоже закрыть и открыть. 4) проверьте, что у Вас датасет подключается именно через IbDatabase1.Connection. (я не знаю, как в случае этих компонент, но в ADO любой датасет может быть подключён через Connection, так и самостоятельно, через ConnectionString) блииин... пока писал, меня уже опередили! ![]() |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 21.05.2008
Сообщений: 495
|
![]()
ну как как, запрос на делет дал, пото запрос на выборку, записи не пропали, а если делет и закрыть программу и запустить снова то записей не будит. ХОрошо почитаю...
Последний раз редактировалось Dozent; 29.04.2012 в 18:18. |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
![]()
Беда в том, что топикстартер, видимо, не предполагает что при работе с СУБД Firebird управление транзакциями должен осуществлять клиент. И только он.
В его описании все верно: перезапуск программы (а на самом деле, выход из программы провоцирует компоненты IBX автоматом закрывать все что подключено) коммитит транзакцию модифицирующего запроса. Поэтому ТС надо бы, действительно почитать как работать с транзациями. Например, здесь |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 21.05.2008
Сообщений: 495
|
![]()
Всем спасибо читать много и некогда, потом прочитаю сделат IBTransaction1.Commit;
Всё работает как надо, спасибо... |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 21.05.2008
Сообщений: 495
|
![]()
ВОт такой ешё вопрос
Добавляю в Тривив новые узлы, ошибка выходит когда в уже добавленый узел пытаюсь добавить дочерний ему, произожит это изза того что выборкой не возможно найти добавленый узел, делаю Commit yо это не помогает, подскажите что нужно сделать? Код:
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 21.05.2008
Сообщений: 495
|
![]()
извеняюсь моя ошибка
Код:
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
![]()
Ошибка глобальная в том, что не нужно привязываться к индексам дерева, которые нестабильны.
Поле "abindex" нужно вообще убрать из таблицы БД. При формировании дерева свойству каждого узла, которое называется Data, надо присваивать номер строки (здесь значение P_ID). Это если надо будет знать какая строка из таблицы БД относится к конкретному узлу дерева. При добавлении узла, равно как и при удалении, нужно заново сформировать дерево. Только и всего. P.S. И нет никакой необходимости применять функцию QuotedStr к числовым значениям. Последний раз редактировалось Прик; 02.05.2012 в 11:41. |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подключение к базе данных | veter48 | C# (си шарп) | 0 | 04.04.2011 20:38 |
Подключение к базе | _koshka | БД в Delphi | 0 | 21.05.2010 15:00 |
Автоматическое подключение к базе | Shevali | БД в Delphi | 2 | 05.05.2010 15:36 |
Подключение к локальной базе | Anatoly_Ali | Общие вопросы C/C++ | 0 | 12.12.2009 17:50 |
подключение к базе ORACLE | cowboy | БД в Delphi | 1 | 17.09.2009 16:48 |