Release of ADO.NET Provider v1.27

Hello All.

It is a small update of our LCPI ADO.NET provider.

We have added the support of latest new IBProvider properties:

  • decfloat16_rules
  • decfloat34_rules
  • int128_rules
  • dbtimestamp_with_tz_rules
  • dbtime_with_tz_rules
  • timezones_source
  • icuin_library
  • icuin_library_64
  • sql_cache__scope
  • sql_cache__instance_id
  • sql_cache__size
  • sql_cache__time
  • sql_cache__max_len

All the changes were made in OleDbConnectionStringBuilder. You can see these changes in the connection configuration of DDEX provider.

Data provider was not changed.

Additionally, ADO.NET provider was tested with FB4. No problems were found, everything works as expected.

Getting NUMERIC and DECIMAL as text

The new build (5.31.0.43938) of IBProvider adds the new feature — getting the NUMERIC/DECIMAL values as text.

It will help resolve the problems with reading these datatypes through linked server.

For example, Firebird (and InterBase) allows to save value 1 into column with datatype NUMERIC(4,4). Yes, it is really possible:

When you try to read this data through MSSQL linked server, you will get the error:

OLE DB provider ‘LCPI.IBProvider.5’ for linked server ‘FB4’ returned invalid data for column ‘[FB4]…[NUM].N_4_4’.

(далее…)

The support of DBTIMESTAMPOFFSET

The following example demonstrates the support of DBTIMESTAMPOFFSET datatype for non-FB4 servers.

This simple code connects to FB3 and asks IBProvider to translate ‘2023-08-09 21:53 Europe/Moscow’ string into binary presentation of TIMESTAMP WITH TIME ZONE datatype — DBTIMESTAMPOFFSET.

Provider will do it with help ICU library. (далее…)

[FB4] TIMESTAMP WITH TIME ZONE

Hello All.

I think, the development of FB4 TIMESTAMP WITH TIME ZONE support has been arrived a final stage.

Provider can process time zone regions itself and through ICU (v63.1).

By default, this datatype will be mapped on the text (WSTR) but you can map it on MSSQL datatype DBTIMESTAMPOFFSET, too.

For configuring a behavior the following properties were added:

So, please, download IBProvider Trial 5.31.0.43750 and contact us if you have any questions or comments on this feature.

Thanks.

MSSQL and TIMESTAMP WITH TIME ZONE

Hello one more time.

As I have said early, MSSQL processes TIMESTAMP WITH TIME ZONE datatype using DBTIMESTAMPOFFSET structure OLE DB.

Today I have checked it again. It is so really.

By default IBProvider publishes TIMESTAMP WITH TIME ZONE as text but you can change this behavior using dbtimestamp_with_tz_rules property. That I did in this case — I defined this property in connection string with «1» value.

PS. I think, it is the first time when MSSQL connect to FB4. Although, maybe, one of our clients have already done it 🙂

MSBuild and long file path

Hello.

If you have a problem with long file path while the compilation of project in Visual Studio, look at this trick that help me from time to time:

<DefineConstants>$(DefineConstants);V_SRC_ROOT_DIR__TESTS=$([System.IO.Path]::GetFullPath('$(IBP_RootDir)..\TestCode\'))</DefineConstants>

[System.IO.Path]::GetFullPath(‘…’) converts relative path into absolute and this operation can significantly reduce the final string of file path.

Every time when it helps me, I say ‘Hallelujah!’ 🙂

Friday news

The load test of IBProvider v5.30 with FB4 lasted more than two weeks and ended today.

No problems were detected.

Firebird v4.0.3.2950 state.

Ok. Let’s start the next tests.

MSSQL For Real Man

When I started adding the support of a new FB4 datatype TIMESTAMP WITH TIME ZONE, I did a small test with MSSQL 2008, where this datatype is presented as datetimeoffset:

create table TBL__TS_WITH_TZ
(
 COL_TS_WITH_TZ datetimeoffset(4)
);

insert into TBL__TS_WITH_TZ (COL_TS_WITH_TZ) VALUES ('2023-04-27 11:18:00.0000 +03:30')
insert into TBL__TS_WITH_TZ (COL_TS_WITH_TZ) VALUES ('2023-04-27 11:19+04:30')
insert into TBL__TS_WITH_TZ (COL_TS_WITH_TZ) VALUES ('2023-06-21 13:19:57+04:37')

It was a couple months ago.

Today it was needed to read these records through MSSQL OLE DB provider (MSOLEDBSQL) to check this data. Provider returns datetimeoffset in DBTIMESTAMPOFFSET structure.

Ok, I was thought and wrote the following utility on C++: (далее…)

FB4 and Connection Pool

Hello All.

The new example was added at IBProvider website — «Resetting the session settings before reusing a connection (C#, FB4)».

This examples demonstrates an implicit usage of the new magic FB4 feature — «ALTER SESSION RESET».

It allows to implement the true connection pool at last.

Both installers (IBProvider Trial and ADO.NET provider) were updated for including the source code of this example.

The support of DECFLOAT16 and DECFLOAT34 [FB4]

Hello All.

The new trial [5.30.0.42557] provides the support for the new FB4 datatypes — DECFLOAT16 and DECFLOAT34.

There is supported simple columns and columns with arrays.

Currently, IBProvider maps these types to string datatype (WSTR).

I think, in the future the provider will provide other, native ways for work with these datatypes.