Bug in UniDac 6.0.1 ?
Bug in UniDac 6.0.1 ?
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.
Re: Bug in UniDac 6.0.1 ?
Please specify the problem in more details and describe the steps to reproduce it.
Re: Bug in UniDac 6.0.1 ?
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.
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.
Re: Bug in UniDac 6.0.1 ?
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
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
Re: Bug in UniDac 6.0.1 ?
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.
Re: Bug in UniDac 6.0.1 ?
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:
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.
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.
Re: Bug in UniDac 6.0.1 ?
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
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
Re: Bug in UniDac 6.0.1 ?
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 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.
Re: Bug in UniDac 6.0.1 ?
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?