TClientDataSet сбой с сообщением - PullRequest
2 голосов
/ 22 января 2011

здесь возникла небольшая ситуация, я до недавнего времени не использовал TClientDataSet (для этого требуется midas.dll), поэтому сейчас я сталкиваюсь с очень неловкой ошибкой, не очень описательной:

Уведомление об ошибке отладчика

Проект E: \ Work \ XXX \ binary \ XXX.exe завершился ошибкой с сообщением: «нарушение доступа в 0x00678827: запись адреса 0x00030a38».Процесс остановлен.Для продолжения используйте Step или Run.

это происходит всякий раз, когда я пытаюсь установить значение поля в наборе данных клиента (я использую его как набор данных в памяти) следующим образом:

with ADataModule do begin
  cdsTest.Append;
  cdsTestAField.AsString := ATableField.AsString;
  // ...
end;

оба поля имеют тип TStringField, cdsTestAField имеет размер 64, а ATableField имеет размер 32

Примечание: я вызываю метод CreateDataSet раньше всего, также это происходит только со строковыми полями, любая помощь будетвысоко ценится.

Спасибо за ваше время.

1 Ответ

3 голосов
/ 22 января 2011

А откуда берется ATableField? Может быть, это неверная ссылка на объект, который уже освобожден?

Кроме того, вы можете включить midaslib.pas в свой проект, чтобы исключить использование внешнего midaslib.dll. Это сделает ваш проект немного больше, хотя, потому что вы в основном компилируете dll в вашем exe.

...