powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Работа с NestedTable
39 сообщений из 39, показаны все 2 страниц
Работа с NestedTable
    #39882216
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день всем гуру!

Есть такая проблема. Нужно с клиента Delphi (Embarcadero 10.1 Berlin) передать в БД (Oracle 18c) через компоненты ODAC (версия 10.3.9) таблицу с данными.
Покопавшись на просторах сети решил использовать компонент TOraNestedTable.

На сервере создал два типа:
Код: plsql
1.
2.
3.
4.
5.
6.
CREATE OR REPLACE TYPE REE_REC as object
(
--тут 45 полей, не буду все перечислять
);

CREATE OR REPLACE TYPE REE_TAB AS TABLE OF REE_REC



Первый тип полностью соответствует структуре таблицы CLREE, в которую нужно будет вносить передаваемые данные.

Данные заношу так:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
procedure TfrmCreateLoadFiles.UploadFile;
var
  LNestTable: TOraNestedTable;
begin
  --
  try
      LNestTable := TOraNestedTable.Create(nil);
      LNestTable.Table := TOraNestTable.Create
        (TOraType.Create(DefSession.OCISvcCtx, 'REE_TAB'));
      LNestTable.Open;
      --
      LNestTable.Append;
      LNestTable.FieldByName('FKEY').Value := FCurFileKey;
      LNestTable.FieldByName('LINE_N').Value := LLineN;
      LInd := 0;
      while Pos(chr(9), LText) > 0 do
      begin
        LVal := Copy(LText, 1, Pos(chr(9), LText) - 1);
        LNestTable.FieldByName(FRealColumnNames[LInd]).Value := Trim(LVal);
        Inc(LInd);
        Delete(LText, 1, Pos(chr(9), LText));
      end;
      LNestTable.FieldByName('F_PR').Value := '-';
      LNestTable.FieldByName('FIL').Value := FFileType;
      LNestTable.Post; //вот тут при фиксации значения всех полей записи превращаются в Null
      --
      NewImportFile_1061(LNestTable);
      --
    finally
      FreeAndNil(LNestTable);
    end;
--



Суть проблемы в том, что при вызове LNestTable.Post значения всех столбцов превращается в Null.
После LNestTable.Append ставил LNestTable.Edit, но сути это не поменяло.

Посему вопрос: как мне записать данные в LNestTable?
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882229
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nested table is a dataset component that encapsulates a database table that is nested as a field within another table. Use TOraNestedTable to access data contained in a nested dataset. A nested table provides much of the functionality of a table component, with the difference that the data it accesses is stored in a nested table.

Даже гугло перевод и то говорит, что компонент не подходит для этого:

Вложенная таблица - это компонент набора данных, который инкапсулирует таблицу базы данных, которая вложена как поле в другую таблицу. Используйте TOraNestedTable для доступа к данным, содержащимся во вложенном наборе данных. Вложенная таблица обеспечивает большую часть функциональности компонента таблицы, с той разницей, что данные, к которым она обращается, хранятся во вложенной таблице.
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882230
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И по мелочи: Append и Post должны быть внутри цикла, а не за его пределами. Но ошибка тут не в этом.
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882232
Фотография Квейд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще по мелочи
Код: pascal
1.
      LNestTable := TOraNestedTable.Create(nil);

должно быть ДО

Код: pascal
1.
  try

а не после
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882241
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanИ по мелочи: Append и Post должны быть внутри цикла, а не за его пределами. Но ошибка тут не в этом.

Они и так внутри
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882244
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если копать глубже, то мне надо из текстового файла перенести данные в таблицу.
Логичнее всего было использовать TOraLoader. Для примера я его и использовал.Работал шустро, 43 ГБ залил всего за 2.5 часа.
Но проблема в том, что я не могу дать пользователю права на запись непосредственно в таблицу. Вот и приходится извращаться.
Как вариант хотел передать таблицей как параметр процедуры, благо TOraStoredProc позволяет это.
А так как параметр должен быть TOraNestTable, то и возникла мысль использовать TOraNestedTable
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882245
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов ЮрийwadmanИ по мелочи: Append и Post должны быть внутри цикла, а не за его пределами. Но ошибка тут не в этом.

Они и так внутри
Я увидел в приведенном коде иное.
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882246
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов ЮрийНо проблема в том, что я не могу дать пользователю права на запись непосредственно в таблицу. Вот и приходится извращаться.
Есть еще один способ: залить во временную таблицу (без индексов заливка будет еще быстрее) и затем дернуть оракловую процедуру, которая из временной раскидает записи как угодно.
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882269
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanЕсть еще один способ: залить во временную таблицу (без индексов заливка будет еще быстрее) и затем дернуть оракловую процедуру, которая из временной раскидает записи как угодно.
Эта мысль была реализована, но опять таки всё упирается в права доступа.
Создавать заранее таблицу нельзя, потому как потом придется бороться с параллельной заливкой.
Если создавать по ходу выполнения закачки, то как выдать права на созданную таблицу от владельца?
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882272
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanЯ увидел в приведенном коде иное.

Интересно, что именно? Между Append и Post есть только цикл, в котором по полям ОДНОЙ ЗАПИСИ разносятся данные.
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882277
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов ЮрийСоздавать заранее таблицу нельзя, потому как потом придется бороться с параллельной заливкой.

С чего бы вдруг? Временные таблицы разных сессий никак не взаимодействуют.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882303
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovС чего бы вдруг? Временные таблицы разных сессий никак не взаимодействуют.

Есть 2 пользователя БД. Один владелец схемы (назовем его OWN_USER), второй - пользователь,
который пользуется приложением (путь будет ARM_USER).
ARM_USER вызывает пакетную процедуру, в которой происходит создание временной таблицы, со схемы OWN_USER.
Временная таблица создается от OWN_USER. Её будет видеть ARM_USER? Нет, потому что надо дать на нее права.
Насколько я помню, права не выдаются моментально, нужно открыть новую сессию. Для АРМа это не подходит.
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882305
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов ЮрийARM_USER вызывает пакетную процедуру, в которой происходит создание временной таблицы

"Уже смешно." (с)

Не надо так делать. Динамические метаданные - путь в никуда. Создай таблицу один раз и
потом используй её.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882315
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов ЮрийИнтересно, что именно?
Что цикл в коде только один, а append и post - за его пределами.

Леонов ЮрийЕсть 2 пользователя БД. Один владелец схемы (назовем его OWN_USER), второй - пользователь,
который пользуется приложением (путь будет ARM_USER).
Это легко разруливается. Быстрее сделать, чем ждать ответы и рассуждать, почему нельзя.
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882316
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Дело в том, что политика заказчика не позволяет писать данные прямо в таблицу. Только через пакеты.
Все таблицы обернуты вьюшками и права только на select
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882324
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Леонов ЮрийDimitry Sibiryakov,

Дело в том, что политика заказчика не позволяет писать данные прямо в таблицу. Только через пакеты.
Все таблицы обернуты вьюшками и права только на select

ну сделай пакет, который будет использоваться для записи в таблицу.
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882328
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов Юрий,

А если добавить в пакет процедуру, которая будет добавлять 1 строчку в NESTED TABLE?
Если хотите, можно даже готовым объектом REE_REC передавать. Если нет, то отдельными полями.
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882329
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator,

Ну так а я о чем?! Суть проблемы описал, но свели в никуда своими комментариями.
Я же с того и начал, что использую TOraNestedTable для передачи данных в пакетную процедуру,
в которой и состоится запись всех данных в таблицу.
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882330
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён Леонов Юрий,

А если добавить в пакет процедуру, которая будет добавлять 1 строчку в NESTED TABLE?
Если хотите, можно даже готовым объектом REE_REC передавать. Если нет, то отдельными полями.

Ну, 70 миллионов записей будет довольно таки долго добавляться.
Смысл был передавать блоками по 2-5 тысяч строк и вставка вида
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
  procedure ImportFile_1061(PData ree_tab) is
  begin
    insert into fgv_clree
      (--перечень полей
      )
      select tt.*
        from TABLE(CAST(PData AS ree_tab)) tt;
  end ImportFile_1061;
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882364
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов Юрий,

здесь иногда отвечают программисты из Devart. Может сегодня уже :)
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882379
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён Леонов Юрий,

здесь иногда отвечают программисты из Devart. Может сегодня уже :)

Да, я знаю. Очень сильно помогают, кстати.
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882414
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов ЮрийЯ же с того и начал, что использую TOraNestedTable для передачи данных в пакетную процедуру

Тут нужен не nested table, а table variable.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882441
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovТут нужен не nested table, а table variable.


Ну если точнее то TOraArray. TOraNestTable как раз наследник его
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882454
ma1tus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов ЮрийНу если точнее то TOraArray. TOraNestTable как раз наследник егоВот и используй TOraArray как параметр TOraStoredProc. Для каких тебе удобств эта обёртка-то..?
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882616
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ma1tusЛеонов ЮрийНу если точнее то TOraArray. TOraNestTable как раз наследник егоВот и используй TOraArray как параметр TOraStoredProc. Для каких тебе удобств эта обёртка-то..?

Тут походу тупик. Я использую Direct подключение, и мне бьет ошибку "OCI function is not linked". Почитал на форуме Devart,
там пишут, что "Такие типы как OBJECT, ARRAY, REF, XML, BINARY_DOUBLE, BINARY_FLOAT не поддерживаются в Direct режиме. "
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882627
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов ЮрийТут походу тупик. Я использую Direct подключение, и мне ...

Oracle Instant Client устанавливаются простым копированием этих файлов в папку (если не ошибаюсь, около 120Мб DLLок) и пропиской eё в PATH. Если заливка данных происходит лишь на нескольких машинах, то почему бы и не поставить там?
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882631
Фотография devart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример работы с TOraNestedTable:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
var
  i, j: Integer;
  NestTable: TOraNestTable;
  OSP: TOraStoredProc;
begin
  OraSession.Connect;
  NestTable := TOraNestTable.Create;
  try
    NestTable.AllocObject(OraSession.OCISvcCtx, 'table_of_MyItem');
    for i := 0 to 1 do begin
      j := NestTable.AppendItem;
      NestTable.ItemAsObject[j].AttrAsInteger['ID'] := 100 + i;
      NestTable.ItemAsObject[j].AttrAsString['MyValue'] := Format('MyValue %d', [i]);
    end;

    OSP := TOraStoredProc.Create(nil);
    try
      OSP.Session := OraSession;
      OSP.StoredProcName := StoredProcName;
      OSP.Prepare;
      OSP.ParamByName('TableType').DataType := ftObject;
      OSP.ParamByName('TableType').ParamType := ptInput;
      OSP.ParamByName('TableType').AsObject := NestTable;
      OSP.Execute;

      ShowMessage(OSP.ParamByName('RESULT').AsString);
    finally
      OSP.Free;
    end;
  finally
    NestTable.Free;
  end;
end;



Леонов ЮрийТут походу тупик. Я использую Direct подключение, и мне бьет ошибку "OCI function is not linked". Почитал на форуме Devart,
там пишут, что "Такие типы как OBJECT, ARRAY, REF, XML, BINARY_DOUBLE, BINARY_FLOAT не поддерживаются в Direct режиме. "
Все эти типы уже много лет поддерживаются в Direct режиме. Мы приносим извенения, за устаревшую информацию в хелпе (исправим в следующем релизе).
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882632
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
devartВсе эти типы уже много лет поддерживаются в Direct режиме.
По какой причине отказались?
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882638
Фотография devart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmandevartВсе эти типы уже много лет поддерживаются в Direct режиме.
По какой причине отказались?
От чего отказались? Приведеный выше пример работает в OCI и в Direct режиме.
Если при каких-то действиях возникает ошибка "OCI function is not linked", то дайте нам пример, когда возникает такая ошибка, и мы обязательно исправим.
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39882643
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
devartОт чего отказались?
Прошу прощения.
"не" почудилось.
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39883063
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
devartПример работы с TOraNestedTable:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
var
  i, j: Integer;
  NestTable: TOraNestTable;
  OSP: TOraStoredProc;
begin
  OraSession.Connect;
  NestTable := TOraNestTable.Create;
  try
    NestTable.AllocObject(OraSession.OCISvcCtx, 'table_of_MyItem');
    for i := 0 to 1 do begin
      j := NestTable.AppendItem;
      NestTable.ItemAsObject[j].AttrAsInteger['ID'] := 100 + i;
      NestTable.ItemAsObject[j].AttrAsString['MyValue'] := Format('MyValue %d', [i]);
    end;

    OSP := TOraStoredProc.Create(nil);
    try
      OSP.Session := OraSession;
      OSP.StoredProcName := StoredProcName;
      OSP.Prepare;
      OSP.ParamByName('TableType').DataType := ftObject;
      OSP.ParamByName('TableType').ParamType := ptInput;
      OSP.ParamByName('TableType').AsObject := NestTable;
      OSP.Execute;

      ShowMessage(OSP.ParamByName('RESULT').AsString);
    finally
      OSP.Free;
    end;
  finally
    NestTable.Free;
  end;
end;





Ваш код заработал. Но у меня проблема другого плана.
Гружу в базу небольшими блоками. После того как загрузилось, пытаюсь очистить NestTable.Clear;
Вот тут и вылетает ошибка "OCI function is not linked".
Каждый раз пересоздавать сам объект разве что...
Но хотелось бы понять, почему эта ошибка вылазит. Может забыли исправить?
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39883065
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик СемёнOracle Instant Client устанавливаются простым копированием этих файлов в папку (если не ошибаюсь, около 120Мб DLLок) и пропиской eё в PATH. Если заливка данных происходит лишь на нескольких машинах, то почему бы и не поставить там?

Просто потому, что загрузка идет из АРМа и подключение к БД идет соответственно при его старте.
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39883128
Фотография devart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов ЮрийВаш код заработал. Но у меня проблема другого плана.
Гружу в базу небольшими блоками. После того как загрузилось, пытаюсь очистить NestTable.Clear;
Вот тут и вылетает ошибка "OCI function is not linked".
Каждый раз пересоздавать сам объект разве что...
Но хотелось бы понять, почему эта ошибка вылазит. Может забыли исправить?
Да, был такой баг с методом Clear, он уже исправлен, и исправление войдет в следующий билд/релиз. Вы можете или пересоздавать объект каждый раз, или написать нам в техподдержку https://www.devart.com/company/contactform.html и мы вышлем вам ночной билд с исправлением данного бага.
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39883132
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
devart, спасибо
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39883134
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
при пересоздании объекта первый раз TOraStoredProc отрабатывает нормально, на втором слетает с ошибкой
TOraType.Free RefCount = 0 (D:\Projects\Delphi\Dac\Common\Source\MemData.pas, line 8994
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39883174
Фотография devart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов Юрий,

вот пример с пересозданием TOraNestTable перед каждым выполнением:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
var
  i, j: Integer;
  OraType: TOraType;
  NestTable: TOraNestTable;
  OSP: TOraStoredProc;
begin
  OraSession.Connect;

  OraType := TOraType.Create(OraSession.OCISvcCtx, 'table_of_MyItem');
  try
    OSP := TOraStoredProc.Create(nil);
    try
      OSP.Session := OraSession;
      OSP.StoredProcName := 'Get_table_of_MyItem_Info';
      OSP.Prepare;
      OSP.ParamByName('TableType').DataType := ftObject;
      OSP.ParamByName('TableType').ParamType := ptInput;

      NestTable := TOraNestTable.Create(OraType);
      try
        NestTable.AllocObject;
        for i := 0 to 1 do begin
          j := NestTable.AppendItem;
          NestTable.ItemAsObject[j].AttrAsInteger['ID'] := 100 + i;
          NestTable.ItemAsObject[j].AttrAsString['MyValue'] := Format('MyValue %d', [i]);
        end;
        OSP.ParamByName('TableType').AsObject := NestTable;
        OSP.Execute;
        ShowMessage(OSP.ParamByName('RESULT').AsString);
      finally
        NestTable.Free;
      end;

      NestTable := TOraNestTable.Create(OraType);
      try
        NestTable.AllocObject;
        for i := 0 to 1 do begin
          j := NestTable.AppendItem;
          NestTable.ItemAsObject[j].AttrAsInteger['ID'] := 100 + i;
          NestTable.ItemAsObject[j].AttrAsString['MyValue'] := Format('MyValue %d', [i]);
        end;
        OSP.ParamByName('TableType').AsObject := NestTable;
        OSP.Execute;
        ShowMessage(OSP.ParamByName('RESULT').AsString);
      finally
        NestTable.Free;
      end;
    finally
      OSP.Free;
    end;
  finally
    OraType.Free;
  end;
end;


Если вы делаете как-то по другому, то дайте пример кода. Без примеро тяжело дать какой-нибудь совет.
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39884959
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
devart,

извините, на несколько дней вылетел с температурой

у меня ошибка выскакивала при использовании FreeAndNil(NetsTable).
поменял на NetsTable.Free и все заработало, спасибо
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39884963
Фотография Квейд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов Юрий
devart,

извините, на несколько дней вылетел с температурой

у меня ошибка выскакивала при использовании FreeAndNil(NetsTable).
поменял на NetsTable.Free и все заработало, спасибо


FreeAndNil не должен приводить к ошибкам. У вас ошибка в другом месте.
...
Рейтинг: 0 / 0
Работа с NestedTable
    #39884978
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов Юрий,

ищи ошибку в коде, ты ее всего лишь скрыл, оставив зомби-указатель в памяти. она гарантированно рано или поздно вылезет или у тебя или у пользователей.
...
Рейтинг: 0 / 0
39 сообщений из 39, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Работа с NestedTable
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]