From Lazarus wiki


Just a guy fiddling with computers. I don't have a Delphi or formal programming background... but Lazarus/FreePascal really works for me!

Wiki/forum contributions license

Unless explicitly indicated in the contribution itself, I herewith

  • place my past, present and future contributions to the Lazarus and FreePascal wikis and forums in the public domain. However, I won't accept any liability.
  • in jurisdictions where that is not possible, I grant permission to use them in any way (e.g. copying, modifying) but do not accept any liability.

Database test framework run

Ran database test framework for FPC trunk on 25 September 2012.

Remarks on some TTestFieldTypes tests:

  • TTestFieldTypes.TestInsertLargeStrFields tries to create a 16000 character field; UTF8 encoded Firebird dbs only support up to about 8000 characters (32768 bytes). So the same problem as the UTF8 field length issue.
  • TTestFieldTypes.TestCrossStringDateParam: exception invalid variant type cast=>conversion error or something? would require stepping through the code to find out what's wrong I suppose
  • TTestFieldTypes.TestTemporaryTable: fixed test; Firebird supports temp tables
  • TTestFieldTypes.TestLargeRecordSize: fields are 8192 chars; same issue as TTestFieldTypes.TestInsertLargeStrFields

todo: do the rest

Sybase with FPC trunk => fix this:

create table FPDEV_FIELD (ID INT NOT NULL,FString VARCHAR(10),FSmallint SMALLINT,FInteger INTEGER,FBoolean BIT,FFloat FLOAT,FCurrency MONEY,FBCD DECIMAL(18,4),FDate DATETIME,FDateTime DATETIME,FBytes BINARY(5),FVarBytes VARBINARY(10),FBlob IMAGE,FMemo TEXT,FFixedChar CHAR(10),FWideString NVARCHAR(10),FLargeint BIGINT,FTimeStamp TIMESTAMP,FFMTBcd NUMERIC(18,6),FFixedWideChar NCHAR(10),PRIMARY KEY (ID)).........a..
....O.Column or parameter #5:  -- can't specify Null values on a column of type BIT.
......Can't find type 'TIMESTAMP'.

SQLDB internals

dsMaxStringSize (e.g. in indicates maximum (string field)? size that an internal buffer provides. If a field is larger, a temporary buffer will need to be used.

Firebird 3 API

See Probably only usable on Windows and by accident as C++ is used not C. See discussion on firebird development list by Tony Whyman.

TSQLScript parameter bug

Still present in 2.6.4; fixed 2.7.1.

TSQLScript Firebird script bugs

Running CREATE scripts for stored procedures fails even with set term enabled as TSQLScript chops up the script. Issue #26137

Probably easiest to reuse work of and the SQL parser in SQLDB to properly parse the script and run it.

Still issues in current trunk; setting CommentsInSQL to false works around bug when creating stored procs/triggers with comments inside them, see Issue #26571

Errors compiling re _fini and _init

On Linux, errors like this when linking:

cprt0.o: In function `_haltproc_eabi':
(.text+0x88): undefined reference to `_fini'
cprt0.o: In function `_haltproc_eabi':
(.text+0x90): undefined reference to `_init

... can be addressed by installing build-essential package see Issue #24056

Should this go on the wiki somewhere...? But where? Occasional reports on the forum about this..

Interesting things

  • Gdb 7.3.50 appears broken for i386 running with Lazarus since about 1.1; get invalid application or something when running under debugger. 7.2 (as distributed with current installers) does seem to work.

Perhaps worth having a look:

Issue tracker link:

LCL documentation link:

  • Internal error 200306067: can happen with PPU loading (stale PPUs etc). Compile with -vut to show which unit loads are attempted.
  • List Lazarus modified .po files on multiple lines ready for svn revert:
svn -q status | grep "\.po$" | sed "s|.po$|.po ^|g" | sed "s|M       ||g"

... or pokiller in