External SigSegv lazarus / 12-Debugger ---------------------------------------------------------------------- lacux · 2013-01-18 18:06 Hi, when I running code (see below) Project after sometime get error "External Sigsegv" (as I can see... something with fwait). However it happens when 8301 records are processed... I am new on pascal.. so maybe I did some mistakes in code? Code: [Select]procedure TForm1.Button3Click(Sender: TObject); var j: integer;     Flex: String;     Partner: String;     Site: String;     Partner_num: Integer;     OOA: Double;     EXRATE: Extended;     OFA: Double;     RERATE: Extended;     RA: Double;     ORA: Double;     Group2: Integer; begin   try   SQLQuery1.Active:= False;   SQLQuery1.SQL.Clear;   SQLQuery1.SQL.Add('SELECT * FROM OIRR_IMPORT_TEMP');   SQLQuery1.Active:= True;   SQLQuery2.Active:= False;   SQLQuery2.SQL.Clear;   SQLQuery2.SQL.Add('SELECT * FROM OIRR_INTERFACE');   SQLQuery2.Active:= Active;   Group2:=100;   j:= 0;   while not SQLQuery1.EOF do   begin      SQLQuery2.Insert;      //FlexField   IF SQLQuery1.FieldByName('DATAFIELD_1').AsString = 'Account' then   begin     Flex:= SQLQUERY1.FieldByName('DATAFIELD_2').AsString;     SQLQuery2.FieldByName('FLEXFIELD').AsString:= Flex;   end else   begin     SQLQuery2.FieldByName('FLEXFIELD').AsString:= Flex;   end;      //Supplier   IF Copy(SQLQuery1.FieldByName('DATAFIELD_1').AsString, 1, 15) = 'Trading Partner' then   begin     Partner:= Copy(SQLQuery1.FieldByName('DATAFIELD_1').AsString, 18, 200);     Delete(Partner, Pos(', Site:', Partner), 100);     SQLQuery2.FieldByName('SUPPLIER_NAME').AsString:= Partner;   end else   begin     SQLQuery2.FieldByName('SUPPLIER_NAME').AsString:= Partner;   end;       //Site   IF Copy(SQLQuery1.FieldByName('DATAFIELD_1').AsString, 1, 15) = 'Trading Partner' then   begin     Site := Copy(SQLQuery1.FieldByName('DATAFIELD_1').AsString, Pos(', Site:', SQLQuery1.FieldByName('DATAFIELD_1').AsString)+ 8, 200);     SQLQuery2.FieldByName('SUPPLIER_SITE').AsString:= Site;   end else   begin     SQLQuery2.FieldByName('SUPPLIER_SITE').AsString:= Site;   end;        //Num   IF Copy(SQLQuery1.FieldByName('DATAFIELD_1').AsString, 1, 16) = 'Supplier Number:' then   begin     Partner_num := StrToInt(Copy(SQLQuery1.FieldByName('DATAFIELD_1').AsString, 17, 10));     SQLQuery2.FieldByName('SUPPLIER_NUM').AsInteger:= Partner_num;   end else   begin     SQLQuery2.FieldByName('SUPPLIER_NUM').AsInteger:= Partner_num;   end;      //Account_type   If Copy(Flex, 5, 5) = '25300' then   begin   SQLQuery2.FieldByName('ACCOUNT_TYPE').AsString:= 'External';     end else        begin        If Copy(Flex, 5, 5) = '25390' then        begin        SQLQuery2.FieldByName('ACCOUNT_TYPE').AsString:= 'Internal';        end else        begin        SQLQuery2.FieldByName('ACCOUNT_TYPE').AsString:= 'Other';        end;        end;    SQLQuery2.FieldByName('INVOICE_NUM').AsString:= SQLQuery1.FieldByName('DATAFIELD_1').AsString;    SQLQuery2.FieldByName('INVOICE_TYPE').AsString:= SQLQuery1.FieldByName('DATAFIELD_2').AsString;    SQLQuery2.FieldByName('INVOICE_DATE').AsString:= SQLQuery1.FieldByName('DATAFIELD_3').AsString;    SQLQuery2.FieldByName('DUE_DATE').AsString:= SQLQuery1.FieldByName('DATAFIELD_4').AsString;    SQLQuery2.FieldByName('CURR').AsString:= SQLQuery1.FieldByName('DATAFIELD_6').AsString;    If TryStrToFloat(SQLQuery1.FieldByName('DATAFIELD_7').AsString, OOA) = True then SQLQuery2.FieldByName('OOA').AsFloat:= OOA {strtofloat(SQLQuery1.FieldByName('DATAFIELD_7').AsString)} else SQLQuery2.FieldByName('OOA').AsFloat:= 0;    If TryStrToFloat(SQLQuery1.FieldByName('DATAFIELD_8').AsString, EXRATE) = True then SQLQuery2.FieldByName('EXRATE').AsFloat:= EXRATE {strtofloat(SQLQuery1.FieldByName('DATAFIELD_8').AsString)} else SQLQuery2.FieldByName('EXRATE').AsFloat:= 0;    If TryStrToFloat(SQLQuery1.FieldByName('DATAFIELD_9').AsString, OFA) = True then  SQLQuery2.FieldByName('OFA').AsFloat:= OFA {strtofloat(SQLQuery1.FieldByName('DATAFIELD_9').AsString)} else SQLQuery2.FieldByName('OFA').AsFloat:=0 ;    If TryStrToFloat(SQLQuery1.FieldByName('DATAFIELD_10').AsString, RERATE) = True then  SQLQuery2.FieldByName('RERATE').AsFloat:= RERATE {strtofloat(SQLQuery1.FieldByName('DATAFIELD_10').AsString)} else SQLQuery2.FieldByName('RERATE').AsFloat:=0 ;    If TryStrToFloat(SQLQuery1.FieldByName('DATAFIELD_11').AsString, RA) = True then  SQLQuery2.FieldByName('RA').AsFloat:= RA {strtofloat(SQLQuery1.FieldByName('DATAFIELD_11').AsString)} else SQLQuery2.FieldByName('RA').AsFloat:= 0 ;    If TryStrToFloat(SQLQuery1.FieldByName('DATAFIELD_12').AsString, ORA) = True then  SQLQuery2.FieldByName('ORA').AsFloat:= ORA {strtofloat(SQLQuery1.FieldByName('DATAFIELD_12').AsString)} else SQLQuery2.FieldByName('ORA').AsFloat:=0 ;    if j>=Group2 then    begin     SQLQuery2.Post;     SQLQuery2.ApplyUpdates;     SQLTransaction1.CommitRetaining;     Group2:= Group2 +100;    end;     SQLQuery1.Next;     Inc(j);    end;     SQLQuery2.Post;     SQLQuery2.ApplyUpdates;     SQLTransaction1.CommitRetaining;   except     on E: Exception do showmessage(pchar(Exception));   end;   end; Thanks in advance ---------------------------------------------------------------------- Leledumbo · 2013-01-18 18:58 Use the debugger, at least tell use which line causes the exception (if you can't see directly from the exception popup, look at call stack window) ---------------------------------------------------------------------- lacux · 2013-01-18 19:45 Looks like it is the same as here: http://bugs.freepascal.org/view.php?id=22809