TDataSet проблема с удалением записей.

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

TDataSet проблема с удалением записей.

Сообщение Kemper » 25.03.2012 21:18:59

И так у меня проект весит на sqlite. Компоненты для доступа к нему стандартный sqlitelaz3. Есть две таблицы. При удалении записи из главной вылетает ошибка, но она вылетает лишь тогда когда есть записи в дочерней таблице. Если в главное таблице запись не связывать с дочерними(то есть мы не вводили данные в дочерную таблицу) или если уже были записи при открытии базы, то в таком случае все проходит гладко.

Код: Выделить всё
begin
   if (test_connect_database = false) then
      ShowMessage('База данных не подключена.' + #13 + 'Подключите базу данных.')
   else
      begin
         buttonSelected := MessageDlg('Вы точно хотите удалить счет?',mtCustom, [mbNo,mbYes], 0);
         if (buttonSelected = mrYes) then
            if Account_Dataset.RecordCount > 0 then
               Account_Dataset.Delete;
      end;
end;

Оговорюсь, что я использую DatasetBeforeDelete для того чтобы перед удалением главной записи удалить все записи из дочерней таблицы.
Ошибка вылетает на Account_Dataset.Delete;.
Код: Выделить всё
'External: SIGSEGV'.

Честно говоря ни как не могу понять в чем ошибка. Бьюсь уже целый день. "Бил" уже отладчиком, единственное что нашел
Код: Выделить всё
TFORM_SIMPLE_BUDGET__SPEEDBUTTON_DELETE_ACCOUNTCLICK(0xb7006140, <error reading variable>) at unit_base.pas:134


Linux 32. Lazarus 0.9.31 fpc 2.5.1

Добавлено спустя 55 минут 54 секунды:
Попробовал реализовать try except end; для того чтобы проверить на исключение. Прошел по шагам и как результат он даже до except не доходит, падает на Account_Dataset.Delete.
Kemper
новенький
 
Сообщения: 61
Зарегистрирован: 18.05.2010 00:29:44

Re: TDataSet проблема с удалением записей.

Сообщение Kemper » 27.03.2012 22:30:37

Не ужели ни кто не знает? Вообще что ли идей нет?
Kemper
новенький
 
Сообщения: 61
Зарегистрирован: 18.05.2010 00:29:44

Re: TDataSet проблема с удалением записей.

Сообщение Padre_Mortius » 27.03.2012 23:35:58

Kemper писал(а):Не ужели ни кто не знает? Вообще что ли идей нет?

А как вы думете по этим данным можно что-либо толковое сказать по вашей проблеме?

На данный момент есть только куча вопросов. Как связаны таблицы? Каким запросом создавались таблицы? Использовались ли FK при создании таблиц?

В данном случае будет лучше либо выложить ваш проект с ошибкой, либо воспроизвести данную ошибку в новом проекте.
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: TDataSet проблема с удалением записей.

Сообщение root! » 29.03.2012 16:22:46

'External: SIGSEGV'.
это вылетает обычно если невозможно к какому нибудь объекту обратиться. К примеру если пытаться обратиться к едиту не созданной формы.
а так побольше кода бы. и еще попробуйте правда воспроизвести подобное в других проектах
root!
незнакомец
 
Сообщения: 7
Зарегистрирован: 07.03.2012 14:52:02

Re: TDataSet проблема с удалением записей.

Сообщение Kemet » 30.03.2012 10:53:20

Как я понял проблема возникает только тогда, когда в форме редактирования мы добавляем записи в дочернюю таблицу, а потом пытаемся их удалить. Возникает вопрос а как мы их удаляем и закоммичены ли записи?
Kemet
постоялец
 
Сообщения: 241
Зарегистрирован: 10.02.2010 19:28:32
Откуда: Временно оккупированная территория


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 231

Рейтинг@Mail.ru