Recent

Author Topic: [SOLVED]EXTERNAL SIGSEGV error  (Read 3406 times)

Kevinn33

  • New Member
  • *
  • Posts: 26
[SOLVED]EXTERNAL SIGSEGV error
« on: May 09, 2018, 01:32:50 pm »
im making a project and it was running smoothly, then suddenly it appear error after successfully compile.

please help me :(

Code: Pascal  [Select][+][-]
  1. procedure TFSewa.Timer3Timer(Sender: TObject);
  2. var
  3.     data2 :String;
  4. begin
  5.   //cek isiloker
  6.    zquery1.close;
  7.    zquery1.SQL.Clear;
  8.    zquery1.SQL.add('select * from uji1 where Noloker = 1 order by Tanggal desc limit 1');
  9.    zquery1.ExecSQL;
  10.    zquery1.open;
  11.    while not zquery1.EOF do begin
  12.     data2+=zquery1.FieldByName('Isiloker').AsString;
  13.     zquery1.Next;
  14.    end;
  15.    zquery1.close;
  16.    zquery1.SQL.Clear;
  17.    zquery1.SQL.add('select * from uji1 where Noloker = 2 order by Tanggal desc limit 1');
  18.    zquery1.ExecSQL;
  19.    zquery1.open;
  20.    while not zquery1.EOF do begin
  21.     data2+=zquery1.FieldByName('Isiloker').AsString;
  22.     zquery1.Next;
  23.    end;
  24.    zquery1.close;
  25.    zquery1.SQL.Clear;
  26.    zquery1.SQL.add('select * from uji1 where Noloker = 3 order by Tanggal desc limit 1');
  27.    zquery1.ExecSQL;
  28.    zquery1.open;
  29.    while not zquery1.EOF do begin
  30.     data2+=zquery1.FieldByName('Isiloker').AsString;
  31.     zquery1.Next;
  32.    end;
  33.    zquery1.close;
  34.    zquery1.SQL.Clear;
  35.    zquery1.SQL.add('select * from uji1 where Noloker = 4 order by Tanggal desc limit 1');
  36.    zquery1.ExecSQL;
  37.    zquery1.open;
  38.    while not zquery1.EOF do begin
  39.     data2+=zquery1.FieldByName('Isiloker').AsString;
  40.     zquery1.Next;
  41.    end;
  42.    zquery1.close;
  43.    zquery1.SQL.Clear;
  44.    zquery1.SQL.add('select * from uji1 where Noloker = 5 order by Tanggal desc limit 1');
  45.    zquery1.ExecSQL;
  46.    zquery1.open;
  47.    while not zquery1.EOF do begin
  48.     data2+=zquery1.FieldByName('Isiloker').AsString;
  49.     zquery1.Next;
  50.    end;
  51.    zquery1.close;
  52.    //perubahan isiloker ke warna GUI
  53.    //loker1
  54.    if data2[1]='1' then
  55.     Shape1.Brush.Color := clRed
  56.    else
  57.     Shape1.Brush.Color := clGreen;
  58.    //loker2
  59.    if data2[2]='1' then
  60.     Shape2.Brush.Color := clRed
  61.    else
  62.     Shape2.Brush.Color := clGreen;
  63.    //loker3
  64.    if data2[3]='1' then
  65.     Shape3.Brush.Color := clRed
  66.    else
  67.     Shape3.Brush.Color := clGreen;
  68.    //loker4
  69.    if data2[4]='1' then
  70.     Shape4.Brush.Color := clRed
  71.    else
  72.     Shape4.Brush.Color := clGreen;
  73.    //loker5
  74.    if data2[5]='1' then
  75.     Shape5.Brush.Color := clRed
  76.    else
  77.     Shape5.Brush.Color := clGreen;
  78. end;
« Last Edit: May 12, 2018, 06:08:10 pm by Kevinn33 »

balazsszekely

  • Guest
Re: EXTERNAL SIGSEGV error
« Reply #1 on: May 09, 2018, 01:57:27 pm »
First of all you either use ExecSQL or Open. The former does not return a value the later does. For example when you wish to insert something in the database, you should go with ExecSQL, when you query something from the database go with Open.
Secondly it looks like your query did not return a value so data2(string) is empty. You cannot access data2[1], hence the sigsegv.  You have two choice:
1. Test if the query is empty
2. Test if data2 <> ''

Kevinn33

  • New Member
  • *
  • Posts: 26
Re: EXTERNAL SIGSEGV error
« Reply #2 on: May 09, 2018, 02:36:44 pm »
 thanks Getmem, i'll try it later after dinner  :D :D

Kevinn33

  • New Member
  • *
  • Posts: 26
Re: EXTERNAL SIGSEGV error
« Reply #3 on: May 11, 2018, 01:55:01 pm »
well i just found out it was because i use 2 zconnection in 2 form that connects to the same database table. so it sometimes crash
thanks for the advice Getnem

 

TinyPortal © 2005-2018