Погуглил пример. Нашел - 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 не доходит. Я уже начал сомневаться в своей адекватности.
Думаю, может и раньше валилось?
