Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 10 of 13 total
Thread Dreaded Unit Compiled with Different Version error message after updating EDB.
Tue, Jun 10 2014 2:01 AMPermanent Link

Adam H.

Hi,

After updating ElevateDB I'm getting the error:

[DCC Fatal Error] edbcomps.pas(38): F2051 Unit edbserver was compiled
with a different version of edblockmgr.TEDBLockManager.MaxSesionError

I only have the standard version of DBISam, so don't actually have
edbserver.pas

It breaks in edbcomps.pas on:

{$IFNDEF EDB_NOSERVER}
edbserver,
{$ENDIF}

I have tried:

- Uninstalling all EDB installations,
- Manually deleting the EDB Installation directory
- Manually deleting all edb*.dcu files
- Reinstalling EDB fresh

.... but the problem remains.

I'm using Delphi XE2 (32bit).

The error even occurs on a blank project if I drop one EDB component on
it and do a compile (or build).

Obviously I've missed something somewhere, but I can't figure out what
else to do. Can anyone see what I'm missing?

I was originally on EDB 2.11

I've tried updating to both EDB2.17 and also EDB2.15 (for something
different) but both break.

Thanks & Regards

Adam.
Tue, Jun 10 2014 4:26 AMPermanent Link

Adam Brett

Orixa Systems

Adam H.

The problem _must_ relate to a compiled delphi unit. i.e. a dcu. or a bpl file. One of these exists which was compiled with a prior version of EDB, and this is causing the conflict. That is the only way it can happen as I understand it.

I would recommend a small-but-beautiful tool "UltraSearch" (www.jam-software.com/ultrasearch) to search for all these files fast, then you can delete them.

It sounds as though you have tried hard to do this already, but I _think_ you must have missed something.

Adam
Tue, Jun 10 2014 6:00 AMPermanent Link

Uli Becker

Adam,

in addition to Adam's answer: also *.pas files can cause this error if
the library path in Delphi points to an old directory with such files.

From an earlier post by Tim:

<< Hi, I'm just moving to the latest version and I'm getting the following
when I compile [Fatal Error] edbcomps.pas(23): Unit edbcommon was compiled
with a different version of edbconsts.SOperationAborted >>

Make sure that everything is uninstalled and removed from the installation
directory, and then re-install 1.08.  There is the possibility that 1.07's
uninstall will leave some .pas files around that may cause this issue.
This will be corrected in 1.09.

Hope the helps.

Uli

Tue, Jun 10 2014 6:45 PMPermanent Link

Adam H.

Hi Adam,

> It sounds as though you have tried hard to do this already, but I _think_ you must have missed something.

Thanks for the recommendation. I believe you're right - there has to be
something still remaining, but I don't know what to search for...

I've searched for all edb*.dcu files, edb*.bpl, edb*.pas and have
deleted the elevate directory after doing an uninstall before installing
the new version.

There must be a file somewhere called something else that I'm not aware
of, but I don't know what it would be called or what I should be looking
for...

I've searched for elevate*.dcu elevate*.bpl and elevate*.pas but there's
nothing on my machine resembling these...

Cheers

Adam.
Tue, Jun 10 2014 8:44 PMPermanent Link

Adam H.

Hi Uli,

Thanks for that. I've scanned for .pas files too, but no cigar. Frown

Cheers

Adam.
Tue, Jun 10 2014 9:05 PMPermanent Link

Adam H.

Finally found the problem!

It wasn't to do with any previously compiled units at all. The problem
was that the source directory was being picked up by the compiler.

Apparently the .pas files in \code\source compile differently and create
a new edbcomps.dcu file that is different / not compatible with the .dcu
files in the \code directory.

Eliminating the source directory from the compiler search paths has
corrected the problem.
Tue, Jun 10 2014 9:29 PMPermanent Link

Raul

Team Elevate Team Elevate

On 6/10/2014 2:01 AM, Adam H. wrote:
> After updating ElevateDB I'm getting the error:
>
> [DCC Fatal Error] edbcomps.pas(38): F2051 Unit edbserver was compiled
> with a different version of edblockmgr.TEDBLockManager.MaxSesionError

it looks like its finding a edbserver.dcu that does not match your
delphi edition and/or platform (32/64) so i'd search for edbserver.dcu.

I have 2 of them - one under 32 and one under 64 bit folders:
- 32 bit edbserver.dcu is dated Friday, May 16, 2014, 10:22:08 AM and
size is 123,040 bytes (
- 64bit is Friday, May 16, 2014, 10:22:36 AM and 204,226 bytes

Also as of 2.17 there is no longer separate Unicode and non unicode
versions so you should have just "RAD Studio XE2 (Delphi Win32)" and
"RAD Studio XE2 (Delphi Win64)" folders under your install folder (in
something like "c:\program files\ElevateDB 2 <edition>").


> I'm using Delphi XE2 (32bit).

I dug out my XE2 vm and installed the 2.17 on it (32bit exe, 64bit exe
and utils) and everything works OK (i do have source code edition though
but it's not trying to recompile any of the pas files though).

What EDB files you do have ?

Mine has :

The install itself ("c:\program files\ElevateDB 2 <edition>" with 32 and
64 bit subfolders)

"c:\program files\ElevateDB 2 ADD" or such for utilities

"C:\Documents and Settings\All Users\Documents\RAD Studio\9.0\Bpl":
- edbutilcompsdesign.bpl

"C:\Program Files\Embarcadero\RAD Studio\9.0\bin":
- edbrun217rsdelphiwin64xe2.bpl
- edbrun217rsdelphiwin32xe2.bpl

C:\Documents and Settings\All Users\Documents\RAD Studio\9.0\Dcp:
- edbutilcompsdesign.dcp

Raul
Tue, Jun 10 2014 11:59 PMPermanent Link

Adam H.

Hi Raul,

Thanks for your reply. I found the problem in the end, but it wasn't
related to rogue DCU files...

The problem was that the 'source' directory was being picked up by the
compiler.

Apparently the .pas files in \code\source must compile differently the
compiler was using edbcomps.pas instead of edbcomps.dcu which appear to
be incompatible. (I'm guessing previous versions weren't)?

Either way - eliminating the source directory from the compiler search
paths has corrected the problem.

Hopefully this helps someone else in the future when looking for the
issue. Smile

Adam.
Wed, Jun 11 2014 9:20 AMPermanent Link

Raul

Team Elevate Team Elevate

Thanks Adam

This is useful to know.

On 6/10/2014 11:59 PM, Adam H. wrote:
> Apparently the .pas files in \code\source must compile differently the
> compiler was using edbcomps.pas instead of edbcomps.dcu which appear to
> be incompatible. (I'm guessing previous versions weren't)?

Since it found the pas file it will always try to compile it (i've used
this behavior in the past of dropping one or more DBISAM pas files with
custom changes into my project to force it to use it). So the issue
would be due to common shared unit that now has 2 different dcu
signatures i guess. Since it works we can leave it.

Raul
Wed, Jun 11 2014 7:07 PMPermanent Link

Adam H.

Hi Raul,

> Since it found the pas file it will always try to compile it (i've used
> this behavior in the past of dropping one or more DBISAM pas files with
> custom changes into my project to force it to use it). So the issue
> would be due to common shared unit that now has 2 different dcu
> signatures i guess. Since it works we can leave it.

Although I would have thought that the dcu should have been the same as
the one generated when the .pas file was compiled. The only thing I can
think of is that maybe the .pas file references to the full / server
version where the .dcu doesn't which could make it incompatible. (I've
only got the standard version of EDB and not the full server version).

Maybe the wrong .pas file was included in the standard distribution?

Cheers

Adam.
Page 1 of 2Next Page »
Jump to Page:  1 2
Image