ODBC read error in Unidac 8.4.2 and 8.4.3

Discussion of open issues, suggestions and bugs regarding UniDAC (Universal Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
Samuel
Posts: 29
Joined: Fri 11 Feb 2011 12:36
Location: Brazil

ODBC read error in Unidac 8.4.2 and 8.4.3

Post by Samuel » Mon 19 Apr 2021 14:49

After upgrading to Unidac 8.4.3, the ODBC provider cannot find all data on an Informix server. The same problem occurs with Unidac 8.4.2.

In Unidac 8.4.1 the data is read correctly.

For example, the code below:

/////////////////////////////////////
var
wNome_Lista_1, wNome_Lista_2: String;
cEmpresa: String;
begin
cEmpresa:='01';
With uniQuery do Begin
SQL.Clear;
SQL.Add('select num_list_preco, den_list_preco, dat_ini_vig, dat_fim_vig');
SQL.Add('from desc_preco_mest where cod_empresa=:empresa and num_list_preco=:lista');
ParamByName('empresa').AsString:=cEmpresa;
ParamByName('lista').AsInteger:=StrToIntDef(Lista_1.Text, 26);
Open;
wNome_Lista_1:=FieldByName('den_list_preco').AsString+'. Vigência '+
FormatDateTime('DD/MM/YYYY', FieldByName('dat_ini_vig').AsDateTime)+' a '+
FormatDateTime('DD/MM/YYYY', FieldByName('dat_fim_vig').AsDateTime)+'.';
Close;
ParamByName('lista').AsInteger:=StrToIntDef(Lista_2.Text, 26);
Open;
wNome_Lista_2:=FieldByName('den_list_preco').AsString+'. Vigência '+
FormatDateTime('DD/MM/YYYY', FieldByName('dat_ini_vig').AsDateTime)+' a '+
FormatDateTime('DD/MM/YYYY', FieldByName('dat_fim_vig').AsDateTime)+'.';
Close;
End;
Showmessage(wNome_Lista_1+#13#10+);
wNome_Lista_2);
end;
/////////////////////////////////

Unidac version 8.4.1 returns:
----------------------------------------
Lista Capital. Vigência 01/04/2021 a 31/12/2021
Lista Interior. Vigência 08/04/2021 a 31/12/2021
----------------------------------------

But in versions 8.4.2 and 8.4.3 the second open returns as empty:
----------------------------------------
Lista Capital. Vigência 01/04/2021 a 31/12/2021
. Vigência 30/12/1899 a 30/12/2021
----------------------------------------

I detected that this problem occurs with the Informix ODBC driver (with PostgreSQL ODBC the query is done correctly).

The customer is using Informix ODBC version 09.56.0000 FC12WE.

I had to downgrade to version 8.4.1, as in versions 8.4.3 and 8.4.2, UniQuery correctly executes only the first query. Subsequent queries in the same TUniQuery do not return data (isEmpty = True).

So far this has only happened with the ODBC driver for the Informix database.

Samuel
Posts: 29
Joined: Fri 11 Feb 2011 12:36
Location: Brazil

Re: ODBC read error in Unidac 8.4.2 and 8.4.3

Post by Samuel » Tue 18 May 2021 16:40

Were you able to detect this problem that, for now, I only detected in Informix ODBC?

Until Unidac version 8.4.1 this problem did not occur (the problem started with versions 8.4.2 and 8.4.3).

MaximG
Devart Team
Posts: 1822
Joined: Mon 06 Jul 2015 11:34

Re: ODBC read error in Unidac 8.4.2 and 8.4.3

Post by MaximG » Wed 19 May 2021 16:59

Thank you for your patience. We have reproduced the issue and will investigate its origin.

Samuel
Posts: 29
Joined: Fri 11 Feb 2011 12:36
Location: Brazil

Re: ODBC read error in Unidac 8.4.2 and 8.4.3

Post by Samuel » Thu 24 Jun 2021 12:20

Hi,

It's been over two months since I've reported this issue and it still hasn't been fixed.

Can you send me a patch fixing this bug?

Thank you,

murkay
Posts: 14
Joined: Thu 08 Aug 2013 09:18

Re: ODBC read error in Unidac 8.4.2 and 8.4.3

Post by murkay » Fri 25 Jun 2021 10:06

The same problem is also valid for MSAccess

Samuel
Posts: 29
Joined: Fri 11 Feb 2011 12:36
Location: Brazil

Re: ODBC read error in Unidac 8.4.2 and 8.4.3 (and 8.4.4)

Post by Samuel » Fri 16 Jul 2021 18:24

This issue still occurs in the new version 8.4.4.

Can someone from Devart let know when it will be resolved?

Thank you.

MaximG
Devart Team
Posts: 1822
Joined: Mon 06 Jul 2015 11:34

Re: ODBC read error in Unidac 8.4.2 and 8.4.3

Post by MaximG » Mon 06 Sep 2021 11:00

We've reproduced the issue and fixed it. The fix will be included in the next build of our product.

Post Reply