Погуглил пример. Нашел - http://wiki.freepascal.org/Database_bug_reporting , изменил sql запрос. Работает. Проходит несколько дней, работать перестал, пишет "Ошибка сегментирования"
текст вот:
- Код: Выделить всё
- program test;
 {$mode objfpc}{$H+}
 uses
 {$IFDEF UNIX}
 {$IFDEF UseCThreads}
 cthreads,
 {$ENDIF}{$ENDIF}
 Classes, sysutils,
 sqldb,
 ibconnection;
 var
 Conn: TibConnection; {*REPLACE WITH RELEVANT CONNECTION *}
 Tran: TSQLTransaction;
 Q: TSQLQuery;
 // t: tDatetime;
 begin
 // t := time;
 Conn:=TIBConnection.create(nil); {*REPLACE WITH RELEVANT CONNECTION *}
 Tran:=TSQLTransaction.create(nil);
 Q:=TSQLQuery.Create(nil);
 try
 // *REMOVE IDENTIFYING INFO AND EDIT AS NEEDED*
 Conn.HostName:='127.0.0.1';
 Conn.UserName:='SYSDBA';
 Conn.Password:='masterkey';
 Conn.DatabaseName:='employee';
 // *END IDENTIFIYING INFO*
 Conn.Transaction:=Tran;
 Q.DataBase:=Conn;
 Conn.Open;
 // *EXAMPLE BUG TESTING CODE, REPLACE WITH YOUR OWN*
 Q.SQL.Text:='select current_timestamp as t1 from rdb$database ';
 Q.Open;
 Q.Last; //force recordcount update
 writeln(q.FieldByName('t1').AsString);
 Q.Close;
 // *END EXAMPLE BUG TESTING CODE*
 finally
 Q.Free;
 Tran.Free;
 Conn.Free;
 end;
 writeln('Program complete. Press a key to continue.');
 readln;
 end.
 \0
Валится на Conn.Free и до поcледнего writeln/readln не доходит. Я уже начал сомневаться в своей адекватности.
Думаю, может и раньше валилось?





