ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/fbintf/changelog
Revision: 311
Committed: Mon Aug 24 09:32:58 2020 UTC (3 years, 7 months ago) by tony
File size: 14238 byte(s)
Log Message:
Fixes merged

File Contents

# User Rev Content
1 tony 311 FBINTF Change Log version (1.1-6 Build 12344) Fri, 21 Aug 2020 15:15:24 +0100
2 tony 308
3     1. GetImplementationVersion now correctly returns '3.0' for Firebird 3 API
4     with a Firebrid 3 client library.
5    
6     2. Linux Only: FIREBIRD environment variable is now checked when loading the client library.
7     If a client library path is not explicitly provided and the FIREBIRD environment
8     variable is set then the directory given by this variable and any 'lib' subdirectory
9     are searched for the Firebird client library. Only if none is found, is the default
10     client library used.
11    
12     3. IUtil.FormatStatus now used to format error messages when using new API
13    
14     4. Fixed Array SDL: array_desc_scale now correctly encoded as a signed integer.
15    
16     5. SQL_TEXT handling changed. When the value of an SQL_TEXT (i.e. fixed width string) column is
17     returned using GetAsString and the string codepage is UTF8, the string is truncated so
18     that the byte length corresponds to the number of characters specified for the column.
19     SQL_TEXT strings are no longer automatically trimmed to remove all trailing white space. This is
20     correct behaviour but may affect some implementations that relied upon automatic
21     trimming of trailing white space.
22    
23     6. New IFirebirdAPI Calls:
24     function GetClientMajor: integer;
25     function GetClientMinor: integer;
26    
27 tony 309 7. IColumnMetaData and IArrayMetaData: new method
28     function GetCharSetWidth: integer;
29 tony 308
30 tony 309
31 tony 298 FBINTF Change Log version (1.1-5 Build 12044) Fri, 17 Apr 2020 12:30:01 +0100
32 tony 287
33     1. ISQLParams.GetHasCaseSensitiveParams added. Returns true if param names are
34     case sensitive
35    
36     2. Single line SQL comments starting with '--' are now recognised by SQL Parser.
37    
38 tony 291 3. New API Calls:
39     IColumnMetaData.GetStatement
40     IColumnMetaData.GetTransaction
41     ISQLData.GetStrLength
42     IResults.GetStatement
43     IAttachment.OpenBlob (using Blob metadata)
44     IAttachment.OpenArray (using array metadata)
45    
46     4. FBMessages: removal of unused messages
47    
48     5. TFBArray.Create (2nd case): ensure that FFirebirdClientAPI is correctly set.
49    
50     6. TIBSQLStatementType: SQLSavePoint added to end of enumeration.
51    
52 tony 280 FBINTF Change Log version (1.1-4 Build 11515) Fri, 28 Dec 2018 10:04:19 +0000
53 tony 265
54     1. Fix a problem with the SQL parameter parser that failed to recognise parameters
55     where the second character of the parameter name is a numeric.
56    
57 tony 266 2. New method for IAttachment: procedure getFBVersion(version: TStrings);
58     This returns the isc_version connection information as one or more lines.
59     This is the same information as returned by isql with the -z option.
60 tony 265
61 tony 270 3. If -dFIREBIRD3APIONLY is used as a compiler option then the legacy Firebird API
62     is no longer compiled in. Likewise, if -dLEGACYFIREBIRDAPIONLY is used as a
63     compiler option then the Firebird 3 API is no longer compiled in.
64 tony 266
65 tony 270 4. IColumnMetaData: new method.
66    
67     TIBDateTimeFormats = (dfTimestamp, {SQL TIMESTAMP}
68     dfDateTime, {SQL DATETIME}
69     dfTime);
70    
71     function GetDateTimeStrLength(DateTimeFormat: TIBDateTimeFormats): integer;
72    
73     This returns the max. number of characters returned by the "AsString" method
74     when the SQL type of the column is respectively TIMESTAMP, DATETIME or TIME.
75    
76     5. Additional argument for IAttachment.PrepareWithNamedParameters -
77     CaseSensitiveParams: boolean = false
78    
79     If this argument is set to true then SQL parameter names are assumed to be case
80     sensitive and must be referenced (using ISQLParams.ByName) using the case
81     sensitive name.
82    
83     6. Bug fix: when setting a query parameter, it is now possible, when the parameter
84     is of type VarChar or Char to set the parameter to a numeric value (e.g. using
85     .AsCurrency) and then subsequently to update the value to a non-numeric string
86     using .AsString.
87    
88    
89    
90 tony 263 FBINTF Change Log version (1.1-3) Wed, 05 Dec 2018 14:28:10 +0000
91 tony 238
92     1. DARWIN only syntax error: fix missing semi-colon in TFBClientAPI.LoadIBLibrary
93    
94 tony 263 2. Restrict IsMultiThread check to Unix only for compatibility with
95     https://bugs.freepascal.org/view.php?id=30535
96    
97     3. New SQL Tokeniser added to IBUtils. This is used to pre-process SQL with
98     named parameters and is intended to avoid problems with (e.g.) Execute Block
99     and processing internal parameters as statement parameters.
100    
101     4. New interface IFirebirdLibrary provides access to the underlying firebird DLL
102     or shared object. Available via a new member (GetFBLibrary) of IFirebirdAPI.
103    
104     5. New function added to IB.pas
105    
106     function LoadFBLibrary(aLibPathName: string): IFirebirdLibrary
107    
108     This allows a Firebird Library to be loaded from an explicit path. use the
109     IFirebirdLibrary.GetFirebirdAPI member function to get the Firebird API using
110     the library. It is possible to load Firebird libraries from different locations
111     simultaneously, each with a distinct IFirebirdAPI.
112    
113 tony 233 FBINTF Change Log version (1.1-2) Mon, 16 Apr 2018 09:30:32 +0100
114 tony 59
115 tony 209 1. Firebird.pas: {$OBJECTCHECKS OFF} added to file to avoid runtime error when
116     program compiled with -CR command line switch.
117    
118     2. IServiceManager additions (informational):
119     function getProtocol: TProtocol;
120     function getPortNo: AnsiString;
121    
122     3. IServiceManager improved error handling. Interfaces changed:
123     function Start(Request: ISRB; RaiseExceptionOnError: boolean=true): boolean;
124     function Query(SQPB: ISQPB; Request: ISRB; RaiseExceptionOnError: boolean=true) :IServiceQueryResults; overload;
125     function Query(Request: ISRB; RaiseExceptionOnError: boolean=true) :IServiceQueryResults; overload;
126    
127     4. IAttachment addition (informational)
128     function GetSecurityDatabase: AnsiString;
129    
130     5. IStatement: performance counters now updated after each Fetch. GetPerfStatistics
131     thus now returns accumulated stats for a select statement from opening a cursor
132     up to the last fetch.
133    
134     6. DARWIN: uloadlibrary.inc bug fix. Many thanks to Luigi Naimi for correcting
135     the problem.
136    
137     7. Type change: "TPerfCounters = array[TPerfStats] of Int64". Note "Int64"
138     replaces deprecated "comp" type.
139    
140 tony 217 10. Testsuite Test10 updated to include thread synchronisation for event reporting.
141 tony 209
142 tony 231 11. URL Connection Strings: inet4 and inet6 now recognised.
143 tony 217
144 tony 231 12. IBUtils: Parse and Make Connect String now recognise URL style loopback syntax.
145    
146 tony 233 13. IAttachment.CharSetName2CharSetID is now performed case insensitive.
147 tony 231
148 tony 233
149 tony 209 FBINTF Change Log version (1.1-1) Tue, 27 Feb 2018 16:51:16 +0000
150    
151 tony 107 1. IBUtils.QuoteIdentifierIfNeeded: Add check for space character.
152    
153 tony 109 2. IAttachment: add two new methods
154     function HasDefaultCharSet: boolean;
155     function GetDefaultCharSetID: integer;
156    
157     These return, respectively, true if a connection default character set was
158 tony 117 specified and the character set id of the connection default character set.
159     The DefaultCharSetID is cached when the connection is opened and hence does not
160     require a database lookup.
161 tony 109
162 tony 110 3. Avoid exception when a text blob is a stored procedure parameter.
163 tony 109
164 tony 111 4. Update test suite to include a test for a stored proc returning a text blob.
165    
166 tony 117 5. IAttachment: add
167     function GetRemoteProtocol: AnsiString;
168     function GetODSMajorVersion: integer;
169     function GetODSMinorVersion: integer;
170 tony 143 function GetAuthenticationMethod: AnsiString;
171 tony 117
172     These results are cached when the connection is opened and hence do not
173     require a database lookup.
174    
175     6. IAttachment: add "function GetConnectString: AnsiString;" This returns the
176     connect string used to create/connect to the database.
177    
178     7. IAttachment: Create Database using SQL statement. The username and password
179     are now extracted and used to populate a DPB made available via IAttachment.getDPB.
180     It is now possible to use IAttachment disconnect/connect to reconnect to
181     a database for which the initial connection was established by a create
182 tony 120 database sql statement. Available in FPC only.
183 tony 117
184     8. Update Test 1 to test 5, 6 and 7 above.
185    
186     9. IBUtils code tidy up.
187    
188 tony 143 10. Parameter Block interfaces "find" method. As documented, this should have
189     returned a nil interface when the item could not be found. Instead, an empty
190     interface item was returned. "Find" now works as documented and will return
191     a nil interface if the item cannot be found.
192    
193     11. DBInformation: support added for isc_info_active_tran_count and isc_info_creation_date.
194    
195     12. DBInformation: New interfaces: IDIRB and IDIRBItem added to support DB Information
196     requests with additional parameters. This is to enable support for fb_info_page_contents
197     (return of page contents). Response to fb_info_page_contents returned as
198     a string with code page CP_NONE.
199    
200     13. DBInformation: Support for fb_info_pages_used and fb_info_pages_free added, plus
201     test suite updated.
202    
203     14. DBInformation: Support for fb_info_crypt_key (Firebird 3.0.3 onwards) added as
204     a string type, and fb_info_conn_flags (Firebird 3.0.3 onwards) added as an integer type.
205    
206     15. Service Manager: List of protocols supported expanded to include inet, wnet and xnet.
207     An overloaded version of IIFirebirdAPI.GetServiceManager also allows a non
208     default connection port to be specified.
209    
210 tony 107 FBINTF Change Log version (1.1-0) Sun, 07 Jan 2018 15:20:02 +0000
211    
212 tony 59 1. Fix issues with setting SQL Param values using SetAsString with Numeric types.
213     Scale is no longer ignored.
214    
215     2. Fix issues with setting SQL Param values using SetAsString with Date values
216     not in locale format but which are recognised by Firebird. Date values that
217     cannot be converted to a string using Pascal library are now passed through
218     to Firebird as Text Strings.
219    
220 tony 60 3. Lookup character set name by codepage amended to ensure that CP_UTF8 returns
221     UTF8 and not UNICODE_FSS.
222    
223     4. Charset ID problem. When using Firebird 3, with no default database character set
224     and a column has a non-default collation specified, an incorrect character set
225     id was being reported that could result in a 'division by zero' error when
226     used by IBX. This has now been fixed.
227    
228     5. Move GetCharsetName, CharSetID2CodePage, CodePage2CharSetID, CharSetName2CharSetID,
229     CharSetWidth from IFirebirdAPI to IAttachment. This is a better data model as
230     the character sets supported can be updated on a per database basis. That is
231     it is possible to add a (Firebird) user defined character set to a database.
232    
233     6. Add RegisterCharSet to IAttachment. This is used to register a user defined character
234     set supported by Firebird with the API.
235    
236 tony 61 7. Add missing isc_info_db_read_only to list of decoded Database Information items
237     in FBOutputBlock.pas and update test suite to include this item.
238 tony 60
239 tony 63 8. FB30Client: avoid always using "StartMultiple" when only a single database attachment.
240 tony 61
241 tony 68 9. Loading Windows fbclient.dll: when using the FIREBIRD variable to locate the client
242     library or finding it by disk location, the PATH environment variable is now also set to
243     include the FIREBIRD directory. This is to ensure that the correct dlls in the
244     firebird client library dependencies are loaded.
245 tony 63
246 tony 68 10. Testsuite: Ensure consistent UTF-8 output on Windows console.
247    
248     11. Testsuite: Update Windows script to include FPC 3.0.4 in search path.
249    
250     12. FB30Statement: Protect call to "Move" and avoid calling with a nil pointer
251    
252     13. FB30Statement: A check has been added to ensure that all SQL Parameters
253     have been given a value (including NULL). Previously, failing to set the
254     value of an SQL Parameter could give rise to unpredictable results or
255     an SQLDA error.
256    
257     14. FB30Statement/FB25Statement: Set SQLParam "modified" when string value set.
258    
259 tony 70 15. FBAttachment: Avoid string reference count error when processing an Ansistring
260     parameter in an array of const passed to IAttachment.OpenCursor, etc.
261 tony 68
262 tony 70 16. FBAttachment: Allow for WideString and UnicodeString parameters in an array
263     of const passed to IAttachment.OpenCursor, etc.
264    
265    
266 tony 56 FBINTF Change Log version (1.0-2) Sat, 04 Mar 2017 14:43:56 +0000
267 tony 47
268 tony 56 1. Change syntax to Mode Delphi
269    
270     2. Change all uses of string type to explicit AnsiString in order to ensure
271     compatibility between Delphi and FPC.
272    
273     3. Various syntax changes to ensure Delphi and FPC compilation including GUIDs
274     defined for each interface.
275    
276     4. Generics syntax variations for Delphi added
277    
278     5. PChar replaced with PByte expect where an actual string is being referenced,
279     where PAnsiChar is used instead.
280    
281     6. Review of type definitions in IBExternals to ensure Delphi compatibility
282    
283     7. Testsuite updated for Delphi
284    
285     FBINTF Change Log version (1.0-1) Fri, 24 Feb 2017 12:17:57 +0000
286    
287 tony 47 1. Limit maximum Blob segment read/write to MaxuShort. Avoids data loss with
288     large blobs and the FB3 API.
289    
290     2. Update Event Handling algorithm to avoid looping due to recreation of the
291     event block.
292    
293     3. Avoid invalid XSQLDA error when the only parameter is updated to null
294    
295     4. Array Handling: fix problem with text arrays with character set none. When the
296     DB connection has a default character set (e.g. UTF8), an error is raised by
297     Firebird if the space allocated is not enough to allow for transliteration, even
298     though it is not required for character set none.
299    
300     5. IBUtils: List of reserved words brought up-to-date
301    
302     6. Add ISQL style performance statistics collection to IStatement
303    
304     7. Add IFirebirdAPI.CreateDatabase variant to allow execution of user provided
305     CREATE DATABASE statement.
306    
307     8. Update SQL Statement parsing to allow for Array Dimensions. That is so that the ':' in
308     an array dimension is not mistaken for a named parameter prefix.
309    
310     9. Trim function no longer applied to result of GetAsString for SQL_TEXT
311     when Character set is octets. Avoids loss of non printable characters at start of string.
312    
313     10. Add function GetPerfStatistics to IStatement. This returns ISQL like performance
314     statistics for the last action. Requires use of procedure IStatement.EnableStatistics
315     to enable stats gathering.
316    
317     11. API Version information added as constants to IB.pas
318    
319     12. BlobMetaData character set id should now be the same as that given by IColumnMetaData.GetCharSetID
320    
321     13. Firebird Character set "NONE" now interpreted as codepage CP_ACP.
322    
323 tony 45 FBINTF Change Log version (1.0-0) Tue, 06 Dec 2016 10:33:47 +0000
324    
325     1. Initial Release
326