Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 10 of 17 total
Thread EngineSignature questions
Tue, Jan 22 2008 1:26 PMPermanent Link

Mark Wilsdorf
I want to apply a custom EngineSignature in a project I'm doing. I've played around with
the EngineSignature in a project with already-existing tables today, and it isn't working
as expected. Maybe I'm not understanding something...

I applied the custom signature like this:

procedure TdmApp.DataModuleCreate(Sender: TObject);
begin
   with DBISAMEngine1 do begin
     Assert(Active = False);
     EngineSignature := 'mySignatureString';
   end;
end;

I assumed then, that when my application attempted to open any existing table (all of
which were not created with the custom signature), an Exception would be thrown. But
nothing happens--the tables open normally. Is this expected behavior?

Mark Wilsdorf
Wed, Jan 23 2008 2:21 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Mark,

<< I assumed then, that when my application attempted to open any existing
table (all of which were not created with the custom signature), an
Exception would be thrown. But nothing happens--the tables open normally. Is
this expected behavior? >>

DBISAM allows for a given table to be opened if the signature is a) the
EngineSignature value or b) is the default EngineSignature value.    To make
sure that the tables use the newer EngineSignature, just optimize each one
using the TDBISAMTable.OptimizeTable method or OPTIMIZE TABLE statement.

--
Tim Young
Elevate Software
www.elevatesoft.com

Wed, Jan 23 2008 7:11 PMPermanent Link

Mark Wilsdorf
Thanks for your help.

Mark Wilsdorf


Wed, Jan 23 2008 9:23 PMPermanent Link

Mark Wilsdorf
A related question...

I remember seeing somewhere a comment that changes to DBSys might be required if built
with other than Delphi 5.

Well, I'm having no success building it with BDS 2006.

First thing I encountered is that there's a unit dependency of:  QuickRpt  (QuickReports,
I assume...which I don't have). So I commented that out, to see what else might happen,
and tried to compile again.

Next I encountered the error "Unit dbisamsv was compiled with a different version of
dbisamtb.EDBISAMEngineError." I see that dbisamsv is only supplied as a .DCU, so I won't
be able to get past this one.

Is anyone building DBSys with other than D5?

If so, what changes or workarounds are needed?

Thanks,

Mark Wilsdorf
Thu, Jan 24 2008 2:27 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Mark,

<< Next I encountered the error "Unit dbisamsv was compiled with a different
version of dbisamtb.EDBISAMEngineError." I see that dbisamsv is only
supplied as a .DCU, so I won't be able to get past this one. >>

I'll have to make some modifications to the builds to correct this one.
The issue is that we recently started including the dbisamtb.pas unit in the
builds, but when you re-compile your application it recompiles the
dbisamtb.pas unit with a different interface than that used in the original
compile.  So, we're going to have to stick the dbisamtb.pas unit in the
\source subdirectory instead.

--
Tim Young
Elevate Software
www.elevatesoft.com

Mon, Jan 28 2008 4:11 PMPermanent Link

Mark Wilsdorf
"Tim Young [Elevate Software]" <timyoung@elevatesoft.com> wrote:

>>I'll have to make some modifications to the builds to correct this one. ...

My interest in the a custom engine signature idea was because I thought, as a last-minute
addition, it might add some casual data security to a project that will go out for public
testing soon.

But I don't want to send out the project with a custom engine signature if I don't have a
way to manually view customers' tables via an in-house DBSys, compiled to handle the
custom engine signature. So I guess for this project I'll be leaving that out, and just
warning users about data security for now.

I realize that the custom engine signature isn't really a security plan, anyway, and I
guess I'm going to have to "bite the encryption bullet" before this app gets to commercial
release.

Thanks,

Mark Wilsdorf
Flagship Technologies, Inc.
QuickBooks™ Add-Ons and Solutions You Can Use
http://www.goflagship.com
Mon, Feb 18 2008 11:24 AMPermanent Link

> Is anyone building DBSys with other than D5?

FWIW, I build it with D7. I think I had it working in D2007 too, after
adding the Reporting components from somewhere.

I have it in my build system for exactly the reason you want it for - that
little extra security against raw hacking. I also modified it so that for
some purposes it gets shipped, but not all the menus are enabled unless
you enter a password. I don't want people restructuring, but I do want it
there for myself if I have to remote support a PC.

/Matthew Jones/
Mon, Feb 18 2008 3:51 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Matthew,

<< I have it in my build system for exactly the reason you want it for -
that little extra security against raw hacking. I also modified it so that
for some purposes it gets shipped, but not all the menus are enabled unless
you enter a password. I don't want people restructuring, but I do want it
there for myself if I have to remote support a PC. >>

Just a general note - this is one good thing about ElevateDB that many
people don't realize.  It ships with Public and Administrators roles by
default, which means that you can ship the default EDB Manager or let them
download it from our site without any worries.  Just set up the
Administrator password that your application uses and don't give out the
password to the customers, and add another general user for "everyday" use
that can't do anything "bad".   And this works with both local/multi-user
and ElevateDB Server installations.

--
Tim Young
Elevate Software
www.elevatesoft.com

Tue, Feb 19 2008 5:18 AMPermanent Link

TVM. That'll be that scary catalog thing? One thing I really like about
DBISAM is that (for some of my apps) the users can just delete the
database directory and my app creates it all again using function calls.
IIRC there is a file needed for the catalog in ElevateDB, and I think I
need to Read the FM to learn why that isn't scary. I suppose it could be
in a resource anyway.

/Matthew Jones/
Tue, Feb 19 2008 4:04 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Matthew,

<< TVM. That'll be that scary catalog thing? >>

Actually it's the scary configuration file thing.   The scary catalog thing
is something different. Smiley

<< One thing I really like about DBISAM is that (for some of my apps) the
users can just delete the database directory and my app creates it all again
using function calls. >>

ElevateDB does that also.  In fact, it will even create an empty catalog if
one doesn't exist in the database directory.  It also automatically creates
the table files if they don't exist, which is something that DBISAM can't
even do.

<< IIRC there is a file needed for the catalog in ElevateDB, and I think I
need to Read the FM to learn why that isn't scary. >>

It isn't scary because it eliminates a major point of corruption that was an
issue with DBISAM.  Storing the metadata in the same files as the data means
that the files are constantly being updated, thus furthering the possibility
that Windows could screw up the data *and* metadata if the machine goes
down.  Any updates to the ElevateDB catalog are done in a manner that allows
for complete recovery of the original catalog in the case of corruption.

<< I suppose it could be in a resource anyway.>>

What kind of resource are you referring to here ?

--
Tim Young
Elevate Software
www.elevatesoft.com

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