TClientDataSet сбой с сообщением

Здесь возникла небольшая ситуация, я до недавнего времени не использовал 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 ответ

Решение

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

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

Другие вопросы по тегам