Форум: "Основная";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.07 c