FBINTF Change Log  version              (1.1-2) Sat, 14 Apr 2018 16:47:43 +0100

1. Firebird.pas: {$OBJECTCHECKS OFF} added to file to avoid runtime error when
   program compiled with -CR command line switch.

2. IServiceManager additions (informational):
    function getProtocol: TProtocol;
    function getPortNo: AnsiString;

3. IServiceManager improved error handling. Interfaces changed:
    function Start(Request: ISRB; RaiseExceptionOnError: boolean=true): boolean;
    function Query(SQPB: ISQPB; Request: ISRB; RaiseExceptionOnError: boolean=true) :IServiceQueryResults; overload;
    function Query(Request: ISRB; RaiseExceptionOnError: boolean=true) :IServiceQueryResults; overload;

4. IAttachment addition (informational)
    function GetSecurityDatabase: AnsiString;

5. IStatement: performance counters now updated after each Fetch. GetPerfStatistics
   thus now returns accumulated stats for a select statement from opening a cursor
   up to the last fetch.

6. DARWIN: uloadlibrary.inc bug fix. Many thanks to Luigi Naimi for correcting
   the problem.

7. Type change: "TPerfCounters = array[TPerfStats] of Int64". Note "Int64"
   replaces deprecated "comp" type.

10. Testsuite Test10 updated to include thread synchronisation for event reporting.

11. URL Connection Strings: inet4 and inet6 now recognised.

12. IBUtils: Parse and Make Connect String now recognise URL style loopback syntax.


FBINTF Change Log  version (1.1-1) Tue, 27 Feb 2018 16:51:16 +0000

1. IBUtils.QuoteIdentifierIfNeeded: Add check for space character.

2. IAttachment: add two new methods
     function HasDefaultCharSet: boolean;
     function GetDefaultCharSetID: integer;

   These return, respectively, true if a connection default character set was
   specified and the character set id of the connection default character set.
   The DefaultCharSetID is cached when the connection is opened and hence does not
   require a database lookup.

3. Avoid exception when a text blob is a stored procedure parameter.

4. Update test suite to include a test for a stored proc returning a text blob.

5. IAttachment: add
      function GetRemoteProtocol: AnsiString;
      function GetODSMajorVersion: integer;
      function GetODSMinorVersion: integer;
      function GetAuthenticationMethod: AnsiString;

   These results are cached when the connection is opened and hence do not
   require a database lookup.

6. IAttachment: add "function GetConnectString: AnsiString;" This returns the
   connect string used to create/connect to the database.

7. IAttachment: Create Database using SQL statement. The username and password
   are now extracted and used to populate a DPB made available via IAttachment.getDPB.
   It is now possible to use IAttachment disconnect/connect to reconnect to
   a database for which the initial connection was established by a create
   database sql statement. Available in FPC only.

8. Update Test 1 to test 5, 6 and 7 above.

9. IBUtils code tidy up.

10. Parameter Block interfaces "find" method. As documented, this should have
   returned a nil interface when the item could not be found. Instead, an empty
   interface item was returned. "Find" now works as documented and will return
   a nil interface if the item cannot be found.

11. DBInformation: support added for isc_info_active_tran_count and isc_info_creation_date.

12. DBInformation: New interfaces: IDIRB and IDIRBItem added to support DB Information
    requests with additional parameters. This is to enable support for fb_info_page_contents
    (return of page contents). Response to fb_info_page_contents returned as
    a string with code page CP_NONE.

13. DBInformation: Support for fb_info_pages_used and fb_info_pages_free added, plus
    test suite updated.

14. DBInformation: Support for fb_info_crypt_key (Firebird 3.0.3 onwards) added as
    a string type, and fb_info_conn_flags (Firebird 3.0.3 onwards) added as an integer type.

15. Service Manager: List of protocols supported expanded to include inet, wnet and xnet.
    An overloaded version of IIFirebirdAPI.GetServiceManager also allows a non
    default connection port to be specified.

FBINTF Change Log  version                             (1.1-0) Sun, 07 Jan 2018 15:20:02 +0000

1. Fix issues with setting SQL Param values using SetAsString with Numeric types.
   Scale is no longer ignored.

2. Fix issues with setting SQL Param values using SetAsString with Date values
   not in locale format but which are recognised by Firebird. Date values that
   cannot be converted to a string using Pascal library are now passed through
   to Firebird as Text Strings.

3. Lookup character set name by codepage amended to ensure that CP_UTF8 returns
   UTF8 and not UNICODE_FSS.

4. Charset ID problem. When using Firebird 3, with no default database character set
   and a column has a non-default collation specified, an incorrect character set
   id was being reported that could result in a 'division by zero' error when
   used by IBX. This has now been fixed.

5. Move GetCharsetName, CharSetID2CodePage, CodePage2CharSetID, CharSetName2CharSetID,
   CharSetWidth from IFirebirdAPI to IAttachment. This is a better data model as
   the character sets supported can be updated on a per database basis. That is
   it is possible to add a (Firebird) user defined character set to a database.

6. Add RegisterCharSet to IAttachment. This is used to register a user defined character
   set supported by Firebird with the API.

7. Add missing isc_info_db_read_only to list of decoded Database Information items
   in FBOutputBlock.pas and update test suite to include this item.

8. FB30Client: avoid always using "StartMultiple" when only a single database attachment.

9. Loading Windows fbclient.dll: when using the FIREBIRD variable to locate the client
   library or finding it by disk location, the PATH environment variable is now also set to
   include the FIREBIRD directory. This is to ensure that the correct dlls in the
   firebird client library dependencies are loaded.

10. Testsuite: Ensure consistent UTF-8 output on Windows console.

11. Testsuite: Update Windows script to include FPC 3.0.4 in search path.

12. FB30Statement: Protect call to "Move" and avoid calling with a nil pointer

13. FB30Statement: A check has been added to ensure that all SQL Parameters
    have been given a value (including NULL). Previously, failing to set the
    value of an SQL Parameter could give rise to unpredictable results or
    an SQLDA error.

14. FB30Statement/FB25Statement: Set SQLParam "modified" when string value set.

15. FBAttachment: Avoid string reference count error when processing an Ansistring
    parameter in an array of const passed to IAttachment.OpenCursor, etc.

16. FBAttachment: Allow for WideString and UnicodeString parameters in an array
    of const passed to IAttachment.OpenCursor, etc.


FBINTF Change Log  version             (1.0-2) Sat, 04 Mar 2017 14:43:56 +0000

1. Change syntax to Mode Delphi

2. Change all uses of string type to explicit AnsiString in order to ensure
   compatibility between Delphi and FPC. 

3. Various syntax changes to ensure Delphi and FPC compilation including GUIDs
   defined for each interface.

4. Generics syntax variations for Delphi added

5. PChar replaced with PByte expect where an actual string is being referenced,
   where PAnsiChar is used instead.

6. Review of type definitions in IBExternals to ensure Delphi compatibility

7. Testsuite updated for Delphi

FBINTF Change Log  version            (1.0-1) Fri, 24 Feb 2017 12:17:57 +0000

1. Limit maximum Blob segment read/write to MaxuShort. Avoids data loss with
   large blobs and the FB3 API.

2. Update Event Handling algorithm to avoid looping due to recreation of the
   event block.

3. Avoid invalid XSQLDA error when the only parameter is updated to null

4. Array Handling: fix problem with text arrays with character set none. When the
   DB connection has a default character set (e.g. UTF8), an error is raised by
   Firebird if the space allocated is not enough to allow for transliteration, even
   though it is not required for character set none.

5. IBUtils: List of reserved words brought up-to-date

6. Add ISQL style performance statistics collection to IStatement

7. Add IFirebirdAPI.CreateDatabase variant to allow execution of user provided
   CREATE DATABASE statement.

8. Update SQL Statement parsing to allow for Array Dimensions. That is so that the ':' in
   an array dimension is not mistaken for a named parameter prefix.

9. Trim function no longer applied to result of GetAsString for SQL_TEXT
   when Character set is octets. Avoids loss of non printable characters at start of string.

10. Add function GetPerfStatistics to IStatement. This returns ISQL like performance
    statistics for the last action. Requires use of procedure IStatement.EnableStatistics
    to enable stats gathering.

11. API Version information added as constants to IB.pas

12. BlobMetaData character set id should now be the same as that given by IColumnMetaData.GetCharSetID

13. Firebird Character set "NONE" now interpreted as codepage CP_ACP.

FBINTF Change Log  version                                      (1.0-0) Tue, 06 Dec 2016 10:33:47 +0000

1. Initial Release