Source code UniDAC version 6.2.10 doesn't compile

Discussion of open issues, suggestions and bugs regarding UniDAC (Universal Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
ezijp
Posts: 6
Joined: Tue 23 Feb 2016 12:02

Source code UniDAC version 6.2.10 doesn't compile

Post by ezijp » Tue 23 Feb 2016 12:09

When I try to compile my project I get the following errors:

[dcc64 Error] Tds7ProtocolUni.pas(86): E2037 Declaration of 'OQO0OCQOQ0' differs from previous declaration
[dcc64 Error] Tds7ProtocolUni.pas(87): E2037 Declaration of 'OQQ0OCQOQ0' differs from previous declaration

In Tds7ProtocolUni the method is defined as

Code: Select all

procedure OQO0OCQOQ0(OOQC0CQ0Q0:OO00C0COQ0;const OQQC0CQ0Q0:OQOCQQCOQ0;var OCQC0CQ0Q0:OCCQQQCOQ0 {$IFDEF DEBUG};OQOQQQO0Q0,OCOQQQO0Q0:Boolean {$ENDIF});override;
while in TdsProtocolUni the base method is defined as

Code: Select all

procedure OQO0OCQOQ0(OCO0OCQOQ0:OO00C0COQ0;const O0Q0OCQOQ0:OQOCQQCOQ0;var OOQ0OCQOQ0:OCCQQQCOQ0 {$IFDEF DEBUG};O0COCQO0Q0,OOCOCQO0Q0:Boolean {$ENDIF});virtual;abstract;
The parameter names of the derived method differ from the base method.

Erik

AlexP
Devart Team
Posts: 5530
Joined: Tue 10 Aug 2010 11:35

Re: Source code UniDAC version 6.2.10 doesn't compile

Post by AlexP » Tue 23 Feb 2016 12:23

Hello,

Please check there are no old dcu or pas files of these module.

ezijp
Posts: 6
Joined: Tue 23 Feb 2016 12:02

Re: Source code UniDAC version 6.2.10 doesn't compile

Post by ezijp » Tue 23 Feb 2016 12:42

Ok thanks. The solution for me was to add the directory for the UniProvider\TDS to my library path.

Erik

AlexP
Devart Team
Posts: 5530
Joined: Tue 10 Aug 2010 11:35

Re: Source code UniDAC version 6.2.10 doesn't compile

Post by AlexP » Tue 23 Feb 2016 13:07

Glad to see that the issue was resolved. If you have any further questions, feel free to contact us.

JensVitec
Posts: 9
Joined: Tue 25 Jul 2017 08:01

Source code UniDAC version 7.0.2 doesn't compile

Post by JensVitec » Mon 31 Jul 2017 08:36

I have the same problem. Different procedures but basically the same problem.

[dcc32 Error] Tds7ProtocolUni.pas(107): E2037 Declaration of 'OCCOOCQOQ0' differs from previous declaration
[dcc32 Error] Tds7ProtocolUni.pas(108): E2037 Declaration of 'OC0Q0CQOQ0' differs from previous declaration


I have UniDAC version 7.0.2 Installed on Delphi 10.2 Tokyo.
In Tools-Options I have added
- UniDAC\Source\UniProviders\TDS
- UniDAC\Source\UniProviders\SQLServer
- UniDAC\Source

In that order.

There are the dcu versions of the file in UniDAC\Lib\Delphi25\Win32\Tds7ProtocolUni.dcu and in UniDAC\Lib\Delphi25\Win64\Tds7ProtocolUni.dcu
I do not have path to thise file. I have tried renaming the existing dcu files to something else, and I still have no luck

Help is appreciated
Kind Regards
Jens Fudge

azyk
Devart Team
Posts: 1119
Joined: Fri 11 Apr 2014 11:47
Location: Alpha Centauri A

Re: Source code UniDAC version 6.2.10 doesn't compile

Post by azyk » Tue 01 Aug 2017 09:12

If you want to use precompiled Source Code, add the UniDAC\Lib\Delphi25\Win32 directory to "Library Path" for the 32-bit Windows platform, the UniDAC\Lib\Delphi25\Win64 directory to "Library Path" for the 64-bit Windows platform.

To read more detailed instruction, open the 'UniDAC\ReadmeSrc.html' file from UniDAC with source code edition, in the table go to the 'Using make-files' column, click the 'Embarcadero RAD Studio 10.2 Tokyo' link, and go to the NOTE section.

JensVitec
Posts: 9
Joined: Tue 25 Jul 2017 08:01

Re: Source code UniDAC version 6.2.10 doesn't compile

Post by JensVitec » Wed 02 Aug 2017 06:50

Hi Azyk,
Thanks for the reply.
However I must have been unclear in my question.
I do not want to use the pre-compiled version of the sourcecode.
I do want to use the sourcecode.
As stated I have a problem in compiling this file Tds7ProtocolUni.pas.

I have been looking deeper into this. In Tds7ProtocolUni.pas the class OC0QOCO0Q0 inherits from OOQCOCQOQ0 in TdsProtocolUni.pas
The procedure signature is different in the two:

In the subclass we have
procedure OCCOOCQOQ0(OO0O0CO0Q0:OQQCO0COQ0;const OQ0O0CO0Q0:OCCCQQCOQ0;var OC0O0CO0Q0:O0QCQQCOQ0 {$IFDEF DEBUG};OQOOCO00Q0,OCOOCO00Q0:Boolean {$ENDIF});override;

In the superclass we have
procedure OCCOOCQOQ0(O00Q0CQOQ0:OQQCO0COQ0;const OO0Q0CQOQ0:OCCCQQCOQ0;var OQ0Q0CQOQ0:O0QCQQCOQ0 {$IFDEF DEBUG};O0C0CO00Q0,OOC0CO00Q0:Boolean {$ENDIF});virtual;abstract;




Any suggestions in getting this to compile is highly appreciated.
Thanks in advance

Kind Regards
Jens Fudge

azyk
Devart Team
Posts: 1119
Joined: Fri 11 Apr 2014 11:47
Location: Alpha Centauri A

Re: Source code UniDAC version 6.2.10 doesn't compile

Post by azyk » Thu 03 Aug 2017 13:51

The mentioned declaration difference in Tds7ProtocolUni.pas and TdsProtocolUni.pas cannot be the cause of the specified error, because the parameters description of both methods is identical.

It seems that UniDAC units from previous versions remained on your computer (in the folders with documents/user projects/in system paths/etc). To solve the problem, find and delete all Tds7ProtocolUni.dcu and TdsProtocolUni.dcu . Then find all Tds7ProtocolUni.pas and TdsProtocolUni.pas and replace them with the latest versions from UniDAC archive.

JensVitec
Posts: 9
Joined: Tue 25 Jul 2017 08:01

Re: Source code UniDAC version 6.2.10 doesn't compile

Post by JensVitec » Tue 08 Aug 2017 07:26

Azyk,

Thanks for clarifying.
However, this a an installation on a completely new blank machine with just the newest Windows, newest Delphi and only newest Devart.
I will when I get time try to dig deeper. For now I have removed the two pas-files in question, and am compiling with the pre-compiled dcu-files. This gets my project going.

Thanks for awesome components though.

Jens Fudge

Post Reply