New IBProvider 5.31.1.43971 has added the support of UTF16 symbols for alternative text literals. It means that provider will be correctly processing the following query:
select _win1251 q’?мама, мама, что я буду делать??’ from rdb$database;
I hope that Firebird will be able to process this query in the near future.
Note that, you should use UTF8 connection charset for executing the such queries.
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.
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 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. (далее…)
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.
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 🙂
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!’ 🙂
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.
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++: (далее…)
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.