Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.31;
Скачать: CL | DM;

Вниз

Runtime Error 216 - что это за ошибка!?   Найти похожие ветки 

 
Uran   (2004-10-13 09:36) [0]

Работаю с большими объемами данных в Memo. В алгоритме все впорядке, проверял ... Но не могу понять, почему иногда программа просто вываливается ... Acces violation .... потом Runtime Error 216 .. и никак не могу поймать закономерность из за чего вываливается ... Интуитивно конечно догадываюсь что с памятью как то неправильно обращаюсь ...Мастера , подскажите   на что мне нужно обратить внимание!?


 
Алхимик ©   (2004-10-13 10:18) [1]

Обращаешься к какой-то "левой" области памяти.
Код в студию.


 
Johnmen ©   (2004-10-13 10:22) [2]

А что, поисковики в дауне ?
http://www.xdev.ru/dxgp/rgd_forums_e.asp?forumid=2&themeid=1328&from=0


 
Uran   (2004-10-13 10:58) [3]

вот процедура на которой вылетает :(
procedure TForm5.CreateDB;
var
i,FilesCompressed: integer;
t,tt2: string;
ttab: Ttable;
begin

ttab:= TTable.Create(nil);
with ttab do
  begin
    DatabaseName  := ExtractFilePath(ParamStr(0));  (* alias *)
        TableName    := "ph.db";
    TableType    := ttParadox ;

    with FieldDefs do
    begin
      Add("id", ftInteger,0,false);
      Add("IdOrganization", ftInteger,0,false);
      Add("Phone", ftString,12,false);
      Add("Description", ftString,250,false);
      Add("Address", ftString,250,false);
      Add("WorkTime", ftString,250,false);
      Add("Ntx", ftFloat,0,false);
    end;

    { create a calculated index }

  end;
  ttab.CreateTable;
  ttab.free;
   TAble4.Close;
  TAble4.DatabaseName  := ExtractFilePath(ParamStr(0));  (* alias *)
  TAble4.TableName    := "ph.db";
  TAble4.Open;

  Table3.Open;
   RzProgressBar2.TotalParts:=Table3.RecordCount;
  TAble3.First;

  for i:=1 to Table3.RecordCount do
  begin
  Table4.Insert;
  Memo3.Lines.Add(inttostr(Table3.findfield("id").asinteger));
  Table4.findfield("id").asinteger:=Table3.findfield("id").asinteger;
  Table4.findfield("IdOrganization").asinteger:=Table3.findfield("IdOrganization").asinteger;
   tt2:=Table3.findfield("Phone").asstring ;
if (length(tt2)>3) and (pos("0",tt2)=1) then
delete(tt2,1, 1 );

 

  Table4.findfield("Phone").asstring:=tt2;
  Table4.findfield("Description").asstring:=Table3.findfield("Description").asstring;
  Table4.findfield("Address").asstring:=Table3.findfield("Address").asstring;
  Table4.findfield("WorkTime").asstring:=Table3.findfield("WorkTime").asstring;
  t:=Table3.findfield("Ntx").asstring;

  while Pos(".", t) > 0 do
   t[Pos(".", t)] := ",";

      if length(t)>0 then Table4.findfield("Ntx").asfloat:=strtofloat(t)
  else Table4.findfield("Ntx").asfloat:=0 ;

  Table4.Post;

  RzProgressBar2.PartsComplete:=i;
  TAble3.Next;
  end;

 TAble4.Close;

end;


 
Семен Сорокин ©   (2004-10-13 12:08) [4]

Интуитивно конечно догадываюсь что с памятью как то неправильно обращаюсь
попробуй в отладчике пройтись - иногда помогает.

range check error = true?

по коду:

ttab:= TTable.Create(nil);
...
 ttab.free;


ttab:= TTable.Create
try
...
finally
ttab.free
end;

while Pos(".", t) > 0 do
  t[Pos(".", t)] := ",";

     if length(t)>0 then Table4.findfield("Ntx").asfloat:=strtofloat(t)
 else Table4.findfield("Ntx").asfloat:=0 ;


используй DecimalSeparator.


 
Uran   (2004-10-13 13:45) [5]

Уточни пожалуйста
range check error
DecimalSeparator это свойства чего!?


 
Amoeba ©   (2004-10-13 13:47) [6]


> Uran   (13.10.04 13:45) [5]
> Уточни пожалуйста
> range check error
> DecimalSeparator это свойства чего!?

Что, клавиша F1 отсутствует?



Страницы: 1 вся ветка

Текущий архив: 2004.10.31;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.051 c
1-1098106297
Pentium133
2004-10-18 17:31
2004.10.31
Сообщение WM_VSCROLL и пр...


6-1093108291
Asd
2004-08-21 21:11
2004.10.31
Асинхронная ошибка как с ней бороться


1-1097739709
AlexanderSK
2004-10-14 11:41
2004.10.31
Есть ли в дельфи константа для обозначения конца строки?


3-1096989572
Frozzen
2004-10-05 19:19
2004.10.31
Работа с dbf через ADO


3-1096992665
Виктор
2004-10-05 20:11
2004.10.31
Номер порта