English version Russian version




Version 1.6

Concerning multithreading.

Generally speaking there are no special problems but we explain as follows:

  • GDS32.DLL in common case does not support concurrent access to DataBase by one connection.
  • IBProvider implements own two-level lock mechanism:
    1. IB API level. Each connection has own synchronizing object.
    2. Components level. For example different threads can process data of the same rowset.

By other words the possibility of working of the client in a multithreading mode completely depends on used access libraries.

Most interesting that use of new possibility of IB6.5(cancellation of query executing) is possible only when calling isc_dsql_free_statement without synchronization of second (ICommand::Execute) and first level (isc_dsql_execute_xxx). And it does not guarantee passed handle stmt_handle is available. There is hope that specialists of Borland will be able to present an example of reliable in every respect using of this possibility. Periodically called callback-function could give more positive effect. But it is a subjective opinion.

Using compiler

_IBProvider.dll was compiled using "Free Borland C++ Compiler". Import of functions of gds32.dll is effected using names. Compatibility with client part of IB4 is present.

Eliminated errors

  • In case of NUMERIC/DECIMAL columns of a resulting set the incorrect size of a type DBTYPE_R8 returned.
  • More correct check of names of types passed to ICommandWithParameters::SetParameterInfo. Earlier it was possible to pass such name "DOUBLEPRECISIO N" for example.

Changes

  • New load base address of _IBProvider.dll is 0x45E00000. Thanks to BCB5 linker the relocation table is kept.
  • Floating conversion of INT64 to VARIANT. Types VT_I4/VT_R8 are available for conversion. Only VT_R8 was available before.

New functionality

  • Realization of IDBInfo.
  • Specialized support of queries "select * from table" was implemented. In this case IBProvider defines table name and grants the information about primary key columns into columns rowset. To tell the truth there is no own full-fledged SQL syntax analizer.)
  • Now VARIANT supports VT_I1, VT_UI2, VT_UI4, VT_INT, VT_UINT types.
  • Fault tolerance. One of potential vulnerable places of OLEDB is data exchange buffer. Because of variety of types and ways of data transmitting, guarantee of the buffer correct processing is necessary. In current version new method of compulsory bypass of all buffer items was implemented. If OLEDB client works correctly, it warrants fault tolerance for any dynamic errors (for example memory allocation.)
  • isc_rollback_retaining supporting. In this case connection to server with DB Base Level=6 and use of GDS32 by IB6 are checking.

Optimization

At present if we need it then only on server level:). Nevertheless a main direction of this work is the elimination of unnecessary creation of temporary C++ objects and conversions between ANSI and UNICODE. Testing and comparison on this problem is represent to you. If it will be necessary we'll grant equivalent of sale version.

New properties of "Data Source Information" set

  • "Provider Version"
  • "Read-Only Data Source"
  • "Provider Owned Memory"
  • "ORDER BY Columns in Select List"
  • "GROUP BY Support"
  • "Maximum Row Size"
  • "Maximum Row Size Includes BLOB"
  • "Maximum Index Size"
  • "Maximum Tables in SELECT"
  • "Identifier Case Sensitivity"
  • "Quoted Identifier Sensitivity"
  • "Rowset Conversions on Command"
  • "Subquery Support"
  • "Isolation Retention"
  • "IB Base Level"
  • "IB GDS32 Version"
  • "IB Version"
  • "IB Database Dialect"
  • "IB ODS Version"
  • "IB ODS Minor Version"
  • "IB Remote Connection"
  • "IB Database Page Size"

Schema Rowsets

  • 25 sets. All main and set of auxiliary ones.
  • Tested for IB4, IB5, FB 0.9.4 è FB 6.2.641. We hope it will work and under IB6.5
  • Support of limitations.
  • Sorting of contents according to standard.
  • Possibility to manage the mode of metadata caching. See new properties "schema_cache" and Session Schema Cache
  • Weak lockout of metadata cache ensures efficiency of multithreaded applications.
  • Possibility of an prohibition of implicit transactions for execution of queries of metadata obtaining. See properties "inner_trans" and "Session InnerTrans". If the user started explicitly transaction, just it will be used for metadata obtaining. In case of start of implicit transaction the level of isolation indicated in "Autocommit Isolation Levels" will be used.
  • Some sets were extended to present the more sensible information. In particular
    • DBSCHEMA_REFERENCIAL_CONSTRANTS
    • DBSCHEMA_TABLE_PRIVILEGES
    • DBSCHEMA_COLUMN_PRIVILEGES
  • Returning sets support IColumnsRowset
  • The intensive use of an internal pool of objects minimizes the expenses of recreation of sets.

Digg It Reddit Technorati Del.icio.us Google Bookmarks Slashdot StumbleUpon Yahoo MyWeb All

Publish date: 13-12-2001. Copyright: IBProvider. This material may be reproduced on other web sites, without written permission but link to http://www.ibprovider.com required.

All IBProvider news:
06-11-2008 New IBProvider – support of 49 code pages, ability to work without provider registering, prevention of memory leaks in Firebird client.
03-10-2008 In the new edition of IBProvider Professional 7 codepages support was implemented, bugs were fixed, BLOB-fields access and memory management was improved
25-08-2008 The 6 world-wide Firebird Conference in Bergamo, Italy
30-07-2008 IBProvider updates are available. Operation with NUMERIC-types and connection pooling were improved. External and temporary tables support in metadata schemes was added. Disabled metadata cache mode performance was increased in 2.5 times.
08-07-2008 New IBProvider Release Candidate 3 is available. Support of the integrated Windows authentication (SSPI) for Firebird 2.1, Support of long names and BOOLEAN type in Interbase 7.x and Interbase 2007, etc.
17-06-2008 IBProvider releases have appeared. OCTETS character set support, data type converter release, 64 bits values in metadata schematics.
12-05-2008 IBProvider releases have appeared. New implementation of the data types converter.
07-04-2008 New IBProvider v3 for 64 bits operational systems.
11-03-2008 New build No 3965 of IBProvider v 3.0 RC2 has appeared.
08-02-2008 New IBProvider releases have appeared. Visual Studio 2008 support and DTC support were improved, known bugs were fixed and Firebird/Interbase compatibility was enhanced.
26-12-2007 We have changed the IBProvider license agreements and now give discounts.
08-11-2007 The second Russian Firebird and Interbase conference will take place in Moscow, November 23, 2007
30-10-2007 IBProvider Free Edition (3.0.0.3313 Release Candidate 2 [RC2]) has appeared.
29-10-2007 IBProvider v3 Release Candidate 2 (RC2) has appeared.
18-10-2007 New release of the IBProvider Professional Edition appears. We have improved Integration with Microsoft office and fixed known bugs.
13-09-2007 New providers versions in the Professional Edition now can be used with Microsoft SQL Server 2005 Business Intelligence Development Studio
20-07-2007 The latest editions of IBProvider Professional and IBProvider Free now support new features of Firebird 2.1
25-05-2007 Download engine now working. All customers will receive personal releases more quikly.
27-04-2007 The latest editions of IBProvider Professional and IBProvider Free are available for download.
13-12-2006 C++ client library for OLE DB-providers now support the Unicode project types (which based on unicode strings).
04-12-2006 New releases appear: IBProvider Professional Edition - is a professional developer kit for Interbase and Firebird. IBProvider Free Edition - is an absolutely free of charge and most powerful version based on the commercial core of IBProvider v3.
07-10-2006 IBProvider 3.0.0.2385 [RC1] and IBProvider 2.5.0.2088 [Release] now avaliable. New properties aliases: Charset, PSWD. Metadata reading algorithm and SQL parser was optimized. Supporting arrays in ADO .Net.
28-08-2006 IBProvider 3.0.0.2065 [Beta]. IBProvider 2.4.7.2034 [Release]. MSSQL 2000/2005 integration improvement.
13-08-2006 IBProvider 3.0.0.1959 [Beta]. IBProvider 2.4.6.1989 [Release]. Ñ++ library for OLEDB providers now support VC8 (VS2005)
25-05-2006 IBProvider 3.0.0.1324 [Beta]. IBProvider 2.4.5.1953 [Release]. Client Library for C++.
05-05-2006 IBProvider price will be changed after 23 may 2006. New demo versions are avalible
30-03-2006 IBProvider release v.2.4.4 (v.1.7.26) build 1885 now available. IBProvider v.3 [build 1107. beta]
27-02-2006 IBProvider v.1/v.2 [build 1877 Release Candidate 1]. IBProvider v.3 [build 1062. beta]
30-11-2005 IBProvider 2.4.3.1859. Release.
01-11-2005 Fix of problem with arithmetic errors in .NET applications.
28-09-2005 IBProvider v3 [build 913] [beta version].
22-09-2005 IBProvider v3 [build 890] [beta version]. IBProvider v2/v1 [build 1811].
01-09-2005 The InterBase and Firebird Developer Magazine.
28-07-2005 IBProvider v3 [build 789] [beta version]. IBProvider v2/v1 [build 1802].
15-06-2005 IBProvider v3 [build 779] [beta version]. IBProvider v2/v1 [build 1795].
12-04-2005 IBProvider User Forum is Open
22-03-2005 IBProvider 2.4.2.1772. Release.
28-02-2005 IBProvider 3.0.0.639 beta. Change of the corporate license.
11-02-2005 IBProvider 3.0.0.573 beta.
24-12-2004 IBProvider 3.0.0.449 beta.
12-11-2004 IBProvider 2.4.1.1720/1.7.23.1720. Release.
31-05-2004 IBProvider 2.4.0.1607/1.7.22.1607. Release.
14-05-2004 Release Candidate 2.4.0.1588/1.7.22.1588
30-04-2004 Version 2.3.3.1523 beta
29-03-2004 Version 2.3.3.1416 beta
17-12-2003 Version 2.3.3.1300
18-10-2003 Version 2.3.2.1233
22-08-2003 Version 2.3.1.1184
25-06-2003 Version 2.3.0.1134 - extended support of MS AS, MS SQL
23-04-2003 Version 2.2.0.969 - Data Links dialog support, localization
31-03-2003 Version 2.1.2.
26-03-2003 Version 2.1.1.
04-03-2003 Version 2.1. The error processing mechanism is completely reconstructed.
26-02-2003 Discounts on IBProvider.
18-02-2003 Changes in License Terms
23-01-2003 Version 2.0.1.735. Bug fix, optimization, HTML help
10-12-2002 The second generation IBProvider
21-11-2002 Version 1.7.11.584 and 1.8.0.584 beta
06-11-2002 Version 1.7.10.542 and 1.8.0.542 beta
20-10-2002 Version 1.7.9.481 and 1.8.0.481 beta
12-08-2002 Version 1.7.6.350 and 1.8.0.350 beta
30-07-2002 Version 1.7.5.311 - Bugs fixing
10-07-2002 Version 1.7.4.289
20-06-2002 Version 1.7.3.269
30-05-2002 Version 1.7.2.255
08-05-2002 Version 1.7.1
22-04-2002 Version 1.7.0.227. Support of UNICODE. New prices.
29-03-2002 Version 1.6.3.213
28-02-2002 Version 1.6.2.201
08-02-2002 Version 1.6.2.199
19-01-2002 Version 1.6.1.185
24-12-2001 Free Version 1.5.2
13-12-2001 Version 1.6
14-11-2001 1.5.1 - Change of Compiler. Optimization. IColumnsRowset. etc.
30-08-2001 IN-OUT Parameters. Arrays. ....
16-07-2001 Error with test of connection in Data Links
21-05-2001 Support of stored procedure
16-05-2001 New samples on Delphi for MTS from Andrei Semak
14-05-2001 The final touches to RowSet
30-04-2001 Commercial release
20-04-2001 Support of DTC and Resource pooling
04-04-2001 Support of null-containing character arrays
16-03-2001 Implementaion of IOpenRowset::OpenRowset
15-03-2001 Support of DECIMAL and NUMERIC
12-03-2001 Errors correction...
01-03-2001 Fix bug in command prepare
03-01-2001 The main cardinal change is in accordance with implementation of operation auto-commit support.
01-12-2000 IBProvider and client library Reconstruction.
15-09-2000 New version of IBProvider for IB6.

Firebird and Interbase related articles



Prev Next Site Build No. 3.0.0.1682