powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Ошибка "this type cannot consist in table"
50 сообщений из 50, показаны все 2 страниц
Ошибка "this type cannot consist in table"
    #39792502
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день всем гуру.

Сегодня не пойму что произошло и начал сбоить код, который стабильно работал.

Итак, студия Embarcadero 10.1 Berlin, ODAC 10.3.9. Есть модуль, который отвечает за обращение к БД через TOraStoredProc.
Код: 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.
unit PkMop;

interface

uses Classes, SysUtils, Ora, OraPackage, System.Variants, OraUtils,
  System.Generics.Collections, Data.DB, OraClasses, JclSysUtils;

TPkMop = class(TCustomOraPackage)
  private
    FSession: TOraSession;
    procedure GetStoreProc;
    function GetSession: TOraSession;
    procedure SetSession(AValue: TOraSession);
    procedure SetParam(AParamName: string; AList: TList<Integer>); overload;
    procedure SetParam(AParamName: string; AList: TList<string>); overload;
    procedure SetParam(AParamName: string; AList: TList<Double>); overload;
    procedure SetParam(AParamName: string; AList: TList<Variant>); overload;
    procedure GetParam(AParamName: string; AList: TList<Integer>); overload;
    procedure GetParam(AParamName: string; AList: TList<string>); overload;
    procedure GetParam(AParamName: string; AList: TList<Double>); overload;
  protected
    StoredProc: TOraStoredProc;
  published
    property Name;
    property Session: TOraSession read GetSession write SetSession;
  public
    //тут сами вызовы 
  end;

implementation

constructor TPkMop.Create(AOwner: TComponent);
begin
  inherited;
  StoredProc := TOraStoredProc.Create(nil);
end;

procedure TPkMop.GetStoreProc;
begin
  StoredProc.Session := Session;
  StoredProc.StoredProcName := '';//ошибка вылетает тут
  StoredProc.Prepared;
end;



GetStoreProc - инициализация компонента, несколько обращений к ней проходит нормально, но потом бьет ошибку. При повторном вызове вылетает AV.

В чем может быть проблема? Заранее благодарю за конструктивный ответ
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39792511
Foxpc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отладчик используй.
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39792515
Фотография devart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пожалуйста уточните, в качестве StoredProcName Вы указываете именно значение '', либо-же имя какой-то определенной хранимой процедуры ? Во втором случае, можете ли Вы предоставить DDL-скрипт для ее создания
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39792535
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
devartПожалуйста уточните, в качестве StoredProcName Вы указываете именно значение '', либо-же имя какой-то определенной хранимой процедуры ? Во втором случае, можете ли Вы предоставить DDL-скрипт для ее создания

Вылетает исключительно на пустом значении. Причем один раз отрабатывает правильно, второй раз уже бьет ошибку.
Убирал процедуру инициализации TOraStoredProc, било и на существующем имени процедуры. Но опять начиная со второго раза.
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39792539
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxpc,

используя отладчик я нашел место где оно вылетает. Код для чего я приложил?
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39792542
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов Юрий,

он имел ввиду внутри сеттера StoredProcName
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39792552
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochЛеонов Юрий,

он имел ввиду внутри сеттера StoredProcName
у меня нет исходников, чтобы внутри лазить. К тому же до сегодняшнего дня все работало отлично. Проверил все изменения - никто в данном разделе ничего не правил. Остается только гадать, откуда вылезла эта ошибка.
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39792569
Foxpc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне почему то кажется, что память потекла где - то. Такое часто бывает, когда она течёт. К примеру кто то двинул указатель строки, и не вернул на место. И вот, такие трюки идут по одному месту

Так что, может быть виноват любой код. И искать такие ошибки можно пару месяцев
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39792680
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вангую освобождение (Free) объекта
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39792732
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747Вангую освобождение (Free) объекта
Объект создается вызовом извне (конструктором Create) и удаляется тоже извне (вызовом Destroy). Пока живет форма, до тех пор живет и этот компонент. Код не менялся, просто резко начали сыпаться ошибки
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39792844
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов Юрийнесколько обращений к ней проходит нормально, но потом бьет ошибку

какую???

Леонов Юрий. К тому же до сегодняшнего дня все работало отлично.

но сейчас не работает

ищи либо место, где ошибка проявляется (если раньше не проявлялась, не значить что ее не было, возможно просто не проявлялась)

либо то изменение в твоей программе или БД, которое помогло ошибке проявиться
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793138
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochЛеонов Юрийнесколько обращений к ней проходит нормально, но потом бьет ошибку

какую???

Внимательно читаем заголовок темы

AriochЛеонов Юрий. К тому же до сегодняшнего дня все работало отлично.

но сейчас не работает

ищи либо место, где ошибка проявляется (если раньше не проявлялась, не значить что ее не было, возможно просто не проявлялась)

либо то изменение в твоей программе или БД, которое помогло ошибке проявиться

Она проявляется в разных местах, но всегда на строке типа
Код: pascal
1.
StoredProc.StoredProcName := 'имя процедуры';


Причем имя может быть как пустой строкой, так и реальным из БД
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793145
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов ЮрийПри повторном вызове вылетает AV.

конкретнее
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793152
Foxpc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Леонов Юрий,

если что, он просит полный стэк, в левом верхнем углу. Со всеми подробностями
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793155
Foxpc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Такие ошибки очень сложно ищаться. Если это утечка памяти. А тс ничего не хочет приводить в пример кода, кроме того участка, где проявляется диагноз
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793205
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов Юрий...
Код: pascal
1.
2.
3.
...
  StoredProc.StoredProcName := '';//ошибка вылетает тут
...


...


Ошибка
Леонов Юрий"this type cannot consist in table"

Солнышко, такая ошибка в указанном месте "вылетать" не может.
Придется тебе рыть внутри сеттера свойства StoredProcName и, возможно, еще глубже.
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793238
Foxpc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ёёёёё,

мне кажется разрабы Ora хорошо отладили свой код. Так что вряд ли к ним есть притенения
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793239
Foxpc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К тому же есть глянуть , это обычный
Код: pascal
1.
property StoredProcName: string;
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793243
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxpcёёёёё,

мне кажется разрабы Ora хорошо отладили свой код. Так что вряд ли к ним есть притенения
Ну вот они тебе нормальное сообщение и выдали, а не какой-нибудь "AV".


Foxpc К тому же есть глянуть , это обычный
Код: pascal
1.
property StoredProcName: string;


Ой, неграмотный какой.

Ну ты попробуй в своем коде тоже так проперь задекларировать, без указания имплементации.
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793266
Foxpc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ёёёёё,

Ясно. Дурачoк какой то ты. ТС говорил что у него ошибка, при присвоение любого текста к обычному свойству, созданного объекта

Так что, не надо тут умничать как будто ты всё знаешь.

Моя позиция - утечка памяти, в где то в проекте. Строки могут совершенно никак между собою связаны. Просто менеджер памяти испорчен.
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793418
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FoxpcТакие ошибки очень сложно ищаться. Если это утечка памяти. А тс ничего не хочет приводить в пример кода, кроме того участка, где проявляется диагноз

Кода дохрена, весь проект приводить смысла не вижу.
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793420
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёСолнышко, такая ошибка в указанном месте "вылетать" не может.
Придется тебе рыть внутри сеттера свойства StoredProcName и, возможно, еще глубже.

Солнышко??? Я похож на блондинку? То есть вы считаете, что я выдумал проблему?
Повторяюсь, исходников у меня нет, рыть в глубь, соответственно, тоже не могу
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793440
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поискал исходники, нашел правда не совсем свежие.
Данная ошибка может вылетать только на инициализации процедурных переменных.
Но присвоение пустой строки не должно вызывать эту инициализацию...
В чем глюк - не пойму. Может прав "Foxpc" и тут проблемы не касаются напрямую компонента...
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793461
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов Юрий,

Сделай поиск по всему проекту с вызовом Free или Destroy.
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793514
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747Сделай поиск по всему проекту с вызовом Free или Destroy.

....а там окажется освобождение через ARC или TComponent.Owner или ещё как

вообще, ты что найти пытаешься, use after free?

для этого проще FreeMem перекрыть, чтобы всю свежеотпущенную память забивала каким-нибудь $DeadBeef
и смотреть где в разнос пойдёт.

Кстати в Windows LAllocMem/LFreeMem таки память затирают на освобождении (они на скорость не претендуют, так что могут себе позволить). Когда я писал "рекордный" плагин - DLL размером 2KB - то именно так нашёл баг в хостовом приложении, при исключении из Delphi 5 RTL "стандартного" heap manager всё начинало сыпаться.
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793646
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochдля этого проще FreeMem перекрыть, чтобы всю свежеотпущенную память забивала каким-нибудь $DeadBeef
и смотреть где в разнос пойдёт.А не проще раз подключить FastMM и навсегда забыть о проблемах с памятью?
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793665
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

и чем же FastMM поможет против double-free или use-after-free ?

против этого поможет только одно - вообще никогда не освобождать память.
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793669
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochи чем же FastMM поможет против double-free или use-after-free ?Тем, что при первом обращении к убитому объекту даст по рукам. И еще скажет где именно и при каких обстоятельствах объект был убит
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793695
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Тем, что при первом обращении к убитому объекту даст по рукам.

все последние Delphi исплользуют FastMM.
Кажется даже старушка D2006.

в каком смысле в этих версиях Delphi можно "навсегда забыть о проблемах с памятью" ?
и в каком смысле современные Delphi "при первом обращении к убитому объекту дают по рукам" ?

Код: 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.
program Project41;
//    Delphi XE2, на борту FastMM как и у всех

{$APPTYPE CONSOLE}

{$R *.res}

type TObj = class
  strict private
    FPayload2: string;
    FPayload1: double;
    procedure SetPayload1(const Value: double);
    procedure SetPayload2(const Value: string);
  public
    property Payload1: double read FPayload1 write SetPayload1;
    property Payload2: string read FPayload2 write SetPayload2;
end;

{ TObj }

procedure TObj.SetPayload1(const Value: double);
begin
  FPayload1 := Value;
end;

procedure TObj.SetPayload2(const Value: string);
begin
  FPayload2 := Value;
end;

var o: TObj;

procedure Dump(const o: TObj);
begin
  Writeln ( o.Payload1 :20 :10, ' - ', o.Payload2 );
end;

begin
  o := TObj.Create;
  o.Payload2 := 'ABCDF';
  o.Payload1 := Pi;

  Dump(o);
  o.Destroy;
  Dump(o);

(*** по рукам никто не стукнул, в консоли ожидаемое:
        3.1415926536 - ABCDF
        3.1415926536 -
****)

  Readln;
end.

...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793748
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochвсе последние Delphi исплользуют FastMM.
Кажется даже старушка D2006.Угу. Только он куцый

Код: 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.
55.
program Project41;

uses
  FastMM4,
  System.SysUtils;

{$APPTYPE CONSOLE}

{$R *.res}

type TObj = class
  strict private
    FPayload2: string;
    FPayload1: double;
    procedure SetPayload1(const Value: double);
    procedure SetPayload2(const Value: string);
  public
    property Payload1: double read FPayload1 write SetPayload1;
    property Payload2: string read FPayload2 write SetPayload2;
end;

{ TObj }

procedure TObj.SetPayload1(const Value: double);
begin
  FPayload1 := Value;
end;

procedure TObj.SetPayload2(const Value: string);
begin
  FPayload2 := Value;
end;

var o: TObj;

procedure Dump(const o: TObj);
begin
  Writeln ( o.Payload1 :20 :10, ' - ', o.Payload2 );
end;

begin
  try
    o := TObj.Create;
    o.Payload2 := 'ABCDF';
    o.Payload1 := Pi;

    Dump(o);
    o.Destroy;
    Dump(o);
  except
    on E: Exception do
      Writeln(E.Message);
  end;
  Readln;
end.

Код: plaintext
1.
        3.1415926536 - ABCDF
 2.08141644278E-0307 - Access violation at address 769028D9 in module 'KERNELBASE.dll'. Read of address 00437000

Ariochи в каком смысле современные Delphi "при первом обращении к убитому объекту дают по рукам" ?Я не сказал про "современные Delphi". Я сказал про FastMM
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793754
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

А если вот так
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
program Project41;

uses
  FastMM4,

............

begin
  try
    o := TObj.Create;
    o.Payload2 := 'ABCDF';
    o.Payload1 := Pi;

    Dump(o);
    o.Destroy;
    o.Destroy;
    Dump(o);
  except
    on E: Exception do
      Writeln(E.Message);
  end;
  Readln;
end.

Да с map файлом, то тогда вообще вот так
Код: plaintext
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.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
--------------------------------2019/3/29 15:33:08--------------------------------
FastMM has detected an attempt to call a virtual method on a freed object. An access violation will now be raised in order to abort the current operation.

Freed object class: TObj

Virtual method: Destroy

Virtual method address: 405D9C

The allocation number was: 109

The object was allocated by thread 0x1890, and the stack trace (return addresses) at the time was:
403DEA 
405D53 
40634E 
405D88 
4223FD 
772B86E3 [BaseThreadInitThunk]
7752BD99 [Unknown function at RtlInitializeExceptionChain]
7752BD6C [Unknown function at RtlInitializeExceptionChain]

The object was subsequently freed by thread 0x1890, and the stack trace (return addresses) at the time was:
403E06 
405D71 
406399 
405DAA 
42243B 
772B86E3 [BaseThreadInitThunk]
7752BD99 [Unknown function at RtlInitializeExceptionChain]
7752BD6C [Unknown function at RtlInitializeExceptionChain]

The current thread ID is 0x1890, and the stack trace (return addresses) leading to this error is:
422447 
772B86E3 [BaseThreadInitThunk]
7752BD99 [Unknown function at RtlInitializeExceptionChain]
7752BD6C [Unknown function at RtlInitializeExceptionChain]

Current memory dump of 256 bytes starting at pointer address 7FE8CCD0:
7C B2 42 00 70 B5 42 00 70 B5 42 00 70 B5 42 00 70 B5 42 00 A1 05 AC B1 00 00 00 00 91 CD E8 7F
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 76 00 00 00 EA 3D 40 00 6F 70 40 00 58 72 40 00
2F 73 40 00 50 25 52 77 B6 55 52 77 61 88 55 77 40 C2 4F 77 EE 56 52 77 EE 56 52 77 9D 53 52 77
90 18 00 00 90 18 00 00 06 3E 40 00 11 71 40 00 57 50 40 00 84 51 40 00 B4 54 40 00 E2 F8 41 00
2F 24 42 00 E3 86 2B 77 99 BD 52 77 6C BD 52 77 00 00 00 00 10 00 00 00 B0 04 02 00 E5 22 C4 2B
7C B2 42 00 70 B5 42 00 70 B5 42 00 70 B5 42 00 1A DD 3B D4 70 B5 42 00 00 00 00 00 31 CE E8 7F
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 77 00 00 00 B0 70 40 00 63 77 40 00 C8 73 40 00
12 54 40 00 6B 53 40 00 28 50 40 00 84 51 40 00 B4 54 40 00 E2 F8 41 00 2F 24 42 00 E3 86 2B 77
|  І  B  .  p  µ  B  .  p  µ  B  .  p  µ  B  .  p  µ  B  .  Ў  .  ¬  ±  .  .  .  .  ‘  Н  и  
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  v  .  .  .  к  =  @  .  o  p  @  .  X  r  @  .
/  s  @  .  P  %  R  w  ¶  U  R  w  a  €  U  w  @  В  O  w  о  V  R  w  о  V  R  w  ќ  S  R  w
ђ  .  .  .  ђ  .  .  .  .  >  @  .  .  q  @  .  W  P  @  .  „  Q  @  .  ґ  T  @  .  в  ш  A  .
/  $  B  .  г  †  +  w  ™  Ѕ  R  w  l  Ѕ  R  w  .  .  .  .  .  .  .  .  °  .  .  .  е  "  Д  +
|  І  B  .  p  µ  B  .  p  µ  B  .  p  µ  B  .  .  Э  ;  Ф  p  µ  B  .  .  .  .  .  1  О  и  
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  w  .  .  .  °  p  @  .  c  w  @  .  И  s  @  .
.  T  @  .  k  S  @  .  (  P  @  .  „  Q  @  .  ґ  T  @  .  в  ш  A  .  /  $  B  .  г  †  +  w

--------------------------------2019/3/29 15:34:09--------------------------------
FastMM has detected an attempt to call a virtual method on a freed object. An access violation will now be raised in order to abort the current operation.

Freed object class: TObj

Virtual method: Destroy

Virtual method address: 405D9C

The allocation number was: 109

The object was allocated by thread 0xA34, and the stack trace (return addresses) at the time was:
403DEA 
405D53 
40634E 
405D88 
4223FD [Project41.dpr][Project41][Project41.Project41][43]
772B86E3 [BaseThreadInitThunk]
7752BD99 [Unknown function at RtlInitializeExceptionChain]
7752BD6C [Unknown function at RtlInitializeExceptionChain]

The object was subsequently freed by thread 0xA34, and the stack trace (return addresses) at the time was:
403E06 
405D71 
406399 
405DAA 
42243B [Project41.dpr][Project41][Project41.Project41][48]
772B86E3 [BaseThreadInitThunk]
7752BD99 [Unknown function at RtlInitializeExceptionChain]
7752BD6C [Unknown function at RtlInitializeExceptionChain]

The current thread ID is 0xA34, and the stack trace (return addresses) leading to this error is:
422447 [Project41.dpr][Project41][Project41.Project41][49]
772B86E3 [BaseThreadInitThunk]
7752BD99 [Unknown function at RtlInitializeExceptionChain]
7752BD6C [Unknown function at RtlInitializeExceptionChain]

Current memory dump of 256 bytes starting at pointer address 7FE8CCD0:
7C B2 42 00 70 B5 42 00 70 B5 42 00 70 B5 42 00 70 B5 42 00 59 22 AC B1 00 00 00 00 91 CD E8 7F
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 76 00 00 00 EA 3D 40 00 6F 70 40 00 58 72 40 00
2F 73 40 00 50 25 52 77 B6 55 52 77 61 88 55 77 40 C2 4F 77 EE 56 52 77 EE 56 52 77 9D 53 52 77
34 0A 00 00 34 0A 00 00 06 3E 40 00 11 71 40 00 57 50 40 00 84 51 40 00 B4 54 40 00 E2 F8 41 00
2F 24 42 00 E3 86 2B 77 99 BD 52 77 6C BD 52 77 00 00 00 00 10 00 00 00 B0 04 02 00 2D 06 C4 2B
7C B2 42 00 70 B5 42 00 70 B5 42 00 70 B5 42 00 D2 F9 3B D4 70 B5 42 00 00 00 00 00 31 CE E8 7F
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 77 00 00 00 B0 70 40 00 63 77 40 00 C8 73 40 00
12 54 40 00 6B 53 40 00 28 50 40 00 84 51 40 00 B4 54 40 00 E2 F8 41 00 2F 24 42 00 E3 86 2B 77
|  І  B  .  p  µ  B  .  p  µ  B  .  p  µ  B  .  p  µ  B  .  Y  "  ¬  ±  .  .  .  .  ‘  Н  и  
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  v  .  .  .  к  =  @  .  o  p  @  .  X  r  @  .
/  s  @  .  P  %  R  w  ¶  U  R  w  a  €  U  w  @  В  O  w  о  V  R  w  о  V  R  w  ќ  S  R  w
4  .  .  .  4  .  .  .  .  >  @  .  .  q  @  .  W  P  @  .  „  Q  @  .  ґ  T  @  .  в  ш  A  .
/  $  B  .  г  †  +  w  ™  Ѕ  R  w  l  Ѕ  R  w  .  .  .  .  .  .  .  .  °  .  .  .  -  .  Д  +
|  І  B  .  p  µ  B  .  p  µ  B  .  p  µ  B  .  Т  щ  ;  Ф  p  µ  B  .  .  .  .  .  1  О  и  
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  w  .  .  .  °  p  @  .  c  w  @  .  И  s  @  .
.  T  @  .  k  S  @  .  (  P  @  .  „  Q  @  .  ґ  T  @  .  в  ш  A  .  /  $  B  .  г  †  +  w
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793786
Foxpc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_,

Похоже и так норм
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793789
Foxpc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793793
Foxpc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При удаление лучше юзайте FreeAndNil и не парьтесь.
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793851
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FoxpcПохоже и так нормТы сравни абстрактную Invalid Pointer Operation и стек вызова последнего удаления
FoxpcПри удаление лучше юзайте FreeAndNil и не парьтесь.
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
var
  List: TList<TMyObj>;
  Obj: TMyObj;
begin
  ..........
  Obj := List[10];
  FreeAndNil(Obj);
  ..........
  Obj := List[10];
  ShowMessage(Obj.Data)
end;
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793901
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Только он куцый

они пельмени, но они равиоли.

Т.е. если ты хочешь сказать "надо взять fastMM4 такой-то версии оттуда, так-то его подключить к программе и таким-то образом задать ему такие-то настройки" - то возражений нет

но когда ты говоришь "надо использовтаь fastmm4" - так его и так все используют. А куцый он или какой - это уже вопрос версий.

_Vasilisk_Я не сказал про "современные Delphi". Я сказал про FastMM

а в современных Delphi и тaк по умолчанию FastMM4, из коробки.

_Vasilisk_
Код: pascal
1.
2.
uses
  FastMM4,



Добавил, запустил. Ни-че-го не изменилось, никаких вам AV на пустом месте.

Вывод - либо версия FastMM4 другая, либо (более вероятно) настройки другие. Либо и то и другое.

Т.е. опять же, "подключи (другой какой-нибудь) FastMM4 и забудь о проблемах с памятью" не получается.
Нужно искать конкретную версию, потом в ней искать конкретную настройку.

_Vasilisk_
Код: pascal
1.
2.
    o.Destroy;
    o.Destroy;



А double-free у объектов и "ненастоящий" FastMM в составе любой современной Delphi ловит.
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793904
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FoxpcПри удаление лучше юзайте FreeAndNil и не парьтесь.

Подход "я ни хрена не понимаю что у меня в программе происходит и не хочу понимать" работает в 99% случаев.
Зато в том 1%, когда он не работает, ты уже хрен докопаешься почему так произошло.

Хотя код типа такого я только пару дней назад видел
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
// FLOSS library for FPC, Delphi-compatible
function ...
var v1: array of ....;
var v2: TMyClassObject;

.....
  finally
     if Assigned(v2) then
        FreeAndNil(v2);
     if Length(v1) > 0 then 
     begin
        SetLength(v1, 0);
        v1 := nil;
     end; 
   end;
end;



Надеюсь, это его личные аберрации, а не необходимость при работе с FPC
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39793932
Foxpc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А знаете волшебную пелюлю? А я знаю! Имя ей- FillChar для самых любителей по копировать адреса в переменные. А не передавать указатели
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39794224
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

FreeAnsNil - это не подход 'я ничего не понимаю'. это подход понять, что происходит и где что не так. юзайте FreeAnsNil всегда, очень помогает.
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39794226
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxpc,

меньше слушай любителей хранить зомби-ссылки.
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39794282
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonэто не подход 'я ничего не понимаю'. это подход понять, что происходит и где

1) ты сам себе противоречишь

если тебе нужно каким угодно способом понять что и где у тебя происходит - это ровно то и означает, что ты этого не понимаешь

2) и если уж тебе хочется зачищать память - то надёжнее зачищать содержимое, а не указатели.
ОДНО изменение в программе и ВСЕ освобождаемые блоки в любых местах - становятся зачищены по содержимому.
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39794341
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

ответь на простой вопрос: зачем хранить зомби ссылки? есть причина? я как-то не могу себе представить, зачем зомби ссылки могут быть полезны. значит по-хорошему нужно от них избавляться. чистить память или нет - без разницы. очистка памяти сама по себе от зомби-ссылок не избавит.
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39794490
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я просто поменяю твои объекты местами.

ответь на простой вопрос: зачем хранить мусор в памяти? есть причина? я как-то не могу себе представить, зачем мусор в памяти может быть полезен. Значит по-хорошему нужно от него избавляться. Чистить ссылки или нет - без разницы. Очистка ссылок сама по себе от зомби-мусорв в памяти не избавит.

Если сумеешь ответить на этот вопрос - ответишь и на свой. Ответы будет идентичны друг другу, с точностью до той самой перестановки ссылок и памяти.
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39794598
Foxpc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Одну ситуацию могу придумать, где бы для меня Не был полезен FreeAndNil. Если я создаю временный класс, и больше не всовываю в разные щели, не вканчивая адрес объекта в сомнительные места.

Ведь я постоянно храню адрес на 1 объект. А что случится дальше с адресом? Я могу проверить и через <> nil с Assigned тем же FreeAndNil после очистки.


В итоге у меня всё хорошо, адрес удалён, за нулен. Все ссылки на конечный объект показывают данные зануленного адреса
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39794602
Foxpc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
type
  PButton = ^TButton;
var
  ButtonNew: TButton;
  PButtonNew: PButton;
begin
  ButtonNew := TButton.Create(NIL);
  PButtonNew := @ButtonNew;

  FreeAndNil(ButtonNew);
  if Assigned(PButtonNew^) then // PButtonNew^ = nil then
    ShowMessage('Коко');
end;
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39794603
Foxpc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
*
Код: pascal
1.
if NOT Assigned(PButtonNew^) then // PButtonNew^ = nil then
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39795371
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь за отсутствие. Проблема решилась пересозданием экземпляра TOraStoredProc.
Не панацея, но результат достигнут. Хотя все-таки ситуация странная...
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39795435
Foxpc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ты просто записал на повреждённую память новый экземпляр класса. Проблема не решилась
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39795910
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FoxpcТы просто записал на повреждённую память новый экземпляр класса. Проблема не решилась
С чего ты взял, что на поврежденную?
Перед вызовом какой либо процедуры я убиваю экземпляр класса, если он был создан ранее.
Затем создаю заново и работаю с новым экземпляром класса. Где здесь что-то повреждено?
...
Рейтинг: 0 / 0
Ошибка "this type cannot consist in table"
    #39796021
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов ЮрийПеред вызовом какой либо процедуры я убиваю экземпляр класса, если он был создан ранее.Нахрена? Дельфийской? Ораклиной? Ну Винду переустанови. :)
Смотри свой DDL .
__________________
Oracle yet nub i am
...
Рейтинг: 0 / 0
50 сообщений из 50, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Ошибка "this type cannot consist in table"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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