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 (4 years, 2 months ago) by tony
File size: 14238 byte(s)
Log Message:
Fixes merged

File Contents

# Content
1 FBINTF Change Log version (1.1-6 Build 12344) Fri, 21 Aug 2020 15:15:24 +0100
2
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 7. IColumnMetaData and IArrayMetaData: new method
28 function GetCharSetWidth: integer;
29
30
31 FBINTF Change Log version (1.1-5 Build 12044) Fri, 17 Apr 2020 12:30:01 +0100
32
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 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 FBINTF Change Log version (1.1-4 Build 11515) Fri, 28 Dec 2018 10:04:19 +0000
53
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 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
61 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
65 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 FBINTF Change Log version (1.1-3) Wed, 05 Dec 2018 14:28:10 +0000
91
92 1. DARWIN only syntax error: fix missing semi-colon in TFBClientAPI.LoadIBLibrary
93
94 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 FBINTF Change Log version (1.1-2) Mon, 16 Apr 2018 09:30:32 +0100
114
115 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 10. Testsuite Test10 updated to include thread synchronisation for event reporting.
141
142 11. URL Connection Strings: inet4 and inet6 now recognised.
143
144 12. IBUtils: Parse and Make Connect String now recognise URL style loopback syntax.
145
146 13. IAttachment.CharSetName2CharSetID is now performed case insensitive.
147
148
149 FBINTF Change Log version (1.1-1) Tue, 27 Feb 2018 16:51:16 +0000
150
151 1. IBUtils.QuoteIdentifierIfNeeded: Add check for space character.
152
153 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 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
162 3. Avoid exception when a text blob is a stored procedure parameter.
163
164 4. Update test suite to include a test for a stored proc returning a text blob.
165
166 5. IAttachment: add
167 function GetRemoteProtocol: AnsiString;
168 function GetODSMajorVersion: integer;
169 function GetODSMinorVersion: integer;
170 function GetAuthenticationMethod: AnsiString;
171
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 database sql statement. Available in FPC only.
183
184 8. Update Test 1 to test 5, 6 and 7 above.
185
186 9. IBUtils code tidy up.
187
188 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 FBINTF Change Log version (1.1-0) Sun, 07 Jan 2018 15:20:02 +0000
211
212 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 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 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
239 8. FB30Client: avoid always using "StartMultiple" when only a single database attachment.
240
241 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
246 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 15. FBAttachment: Avoid string reference count error when processing an Ansistring
260 parameter in an array of const passed to IAttachment.OpenCursor, etc.
261
262 16. FBAttachment: Allow for WideString and UnicodeString parameters in an array
263 of const passed to IAttachment.OpenCursor, etc.
264
265
266 FBINTF Change Log version (1.0-2) Sat, 04 Mar 2017 14:43:56 +0000
267
268 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 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 FBINTF Change Log version (1.0-0) Tue, 06 Dec 2016 10:33:47 +0000
324
325 1. Initial Release
326