Bug in UniDac 6.0.1 ?

Discussion of open issues, suggestions and bugs regarding UniDAC (Universal Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
pmoegenb
Posts: 16
Joined: Wed 27 Jun 2012 07:57
Contact:

Bug in UniDac 6.0.1 ?

Post by pmoegenb » Thu 27 Nov 2014 11:16

A project with TInterBaseUniProvider runs compiled with UniDAC 5.3.10 , right. If the same project with UniDAC 6.0.1 is compiled , a missing component in a TSQLServerProvider TUniQuery is claimed.

ViktorV
Devart Team
Posts: 3168
Joined: Wed 30 Jul 2014 07:16

Re: Bug in UniDac 6.0.1 ?

Post by ViktorV » Fri 28 Nov 2014 13:09

Please specify the problem in more details and describe the steps to reproduce it.

pmoegenb
Posts: 16
Joined: Wed 27 Jun 2012 07:57
Contact:

Re: Bug in UniDac 6.0.1 ?

Post by pmoegenb » Sat 29 Nov 2014 10:07

In the project, the following components are used:

TUniconnection
TInterBaseUniProvider
TUniConnectDialog
TuniQuery (in SpecificOptions InterBase is set ), the name is BankenTblNr.

If the project with UniDAC 5.3.10 compiled the program runs without an error message.
If the project is compiled with UniDAC 6.0.1 I get the following error message:

Error reading BankenTblNr.SpecificOptions.Strings : SQL Server provider is not registered.

Uli65
Posts: 12
Joined: Wed 22 Feb 2012 10:11

Re: Bug in UniDac 6.0.1 ?

Post by Uli65 » Sun 30 Nov 2014 18:32

Hello,

I had this error too, when I change from 5.3.10 to 5.5.x. The solution is to look with a text editor in the DFM file and remove unnecessary SpecificOptions for unused providers.

Best Regards
Uli

ViktorV
Devart Team
Posts: 3168
Joined: Wed 30 Jul 2014 07:16

Re: Bug in UniDac 6.0.1 ?

Post by ViktorV » Mon 01 Dec 2014 11:38

This behavior of UniDAC is correct. You will get this error when specifying some specific options of a non-used provider. To fix it, you can either add this provider to the form or delete the specific options of the non-used provider.

stevel
Posts: 125
Joined: Tue 02 Nov 2010 19:01

Re: Bug in UniDac 6.0.1 ?

Post by stevel » Mon 01 Dec 2014 14:26

I found a potential bug in UniDAC v6.0.1 / Interbase provider :-

Using:
+ Windows 7 Professional x64 (EN-US)
+ Delphi XE2 Enterprise Update 4 Hotfix 1
+ Windows VCL Forms project 32-bit
+ UniDAC v6.0.1 for RAD Studio XE2
+ Firebird v2.5.3 64-bit running on same machine as the Delphi IDE


#1. Stored procedure (TUniStoredProc) component design-time user interface:

In the user-interface of the Stored Procedure editor, when clicking the 'Create SQL' button, the wrong type of SQL is generated for a SELECT stored procedure.

Specifics:
'EXECUTE PROCEDURE..' is generated instead of 'SELECT * FROM..'

So, when you click the 'Data Editor' button, you receive the error - 'SQL Statement doesn't return rows.'



The DDL for row-returning Firebird stored procedure is as follows:

Code: Select all

CREATE PROCEDURE ITEMCATGY_L returns (
  ROW_ID Integer, 
  DISPLAY_TEXT VarChar(20))
AS
BEGIN
  FOR SELECT 
    ROW_ID,
    DISPLAY_TEXT
  FROM ITEMCATGY
  ORDER BY 2
  INTO 
    :ROW_ID,
    :DISPLAY_TEXT
  DO BEGIN
       SUSPEND;
     END
END;

I believe that it used to work correctly in a prior version of UniDAC ie. it would correctly generate 'SELECT * FROM ..' if the stored procedure returned rows.

ViktorV
Devart Team
Posts: 3168
Joined: Wed 30 Jul 2014 07:16

Re: Bug in UniDac 6.0.1 ?

Post by ViktorV » Wed 03 Dec 2014 10:09

UniDAC is a set of universal data access components for various databases.
Unfortunately, UniDAC doesn't allow design-time query customization. In contrast, IBDAC allows to create SELECT or EXECUTE PROCEDURE statements in the Stored Procedure Editor, depending on the value of the IsQuery check-box. But you can call the method TUniStoredProc.PrepareSQL(IsQuery: boolean = False) in run-time, which creates SELECT or EXECUTE PROCEDURE statements, depending on the value of the IsQuery parameter. More details at: http://www.devart.com/unidac/docs/index ... olean).htm

pmoegenb
Posts: 16
Joined: Wed 27 Jun 2012 07:57
Contact:

Re: Bug in UniDac 6.0.1 ?

Post by pmoegenb » Thu 04 Dec 2014 09:06

ViktorV wrote:This behavior of UniDAC is correct. You will get this error when specifying some specific options of a non-used provider. To fix it, you can either add this provider to the form or delete the specific options of the non-used provider.
Another supplier as TInterBaseUniProvider does not exist in the project. Why do I need UniDAC if I can not just replace the UniProvider when changing a database.

ViktorV
Devart Team
Posts: 3168
Joined: Wed 30 Jul 2014 07:16

Re: Bug in UniDac 6.0.1 ?

Post by ViktorV » Thu 04 Dec 2014 10:33

Unfortunately, we can't quite understand the point of the last question. Please clarify what do you mean and what Edition of UniDAC are you using?

Post Reply