Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 10 of 32 total
Thread evaluating ElevateDB v2 - a few questions
Sat, Mar 7 2009 1:03 PMPermanent Link

Fred H.
With the current promotion going on for ElevateDB v2, I'm currently evaluating it (I got
v1 on a promo, but never used it) and coming from DBISAM....I'm having difficulty wrapping
my head around it.

1) I really use the RENAME and COPY table (and column) function in DBISAM, but how to do
this in EDBv2?

In the EDB Manager...ALTER (table) does not allow to change the name of a table, nor is
there any function to copy/rename a table either!  This is really a deal killer for me and
I'm very surprised such functions haven't made it in v2 at least.  This is the main reason
why I did not evaluate v1 any further.  Same thing with changing column names in a table -
can't do it!

2) I've looked everywhere in the help files and forum, but I cannot for the life of me
find out a plain jane way to deploy a local application for ElevateDB to other users.

Here's my situation - I've got 1 database structure, but multiple databases that need to
be opened on the client side (one at a time).  So using DBISAM, I compile the application
and there's a SQL routine to create a new database and also to open an existing database.
To open another database....just click Open, point to another database folder...it then
closes the open database and opens that new one.

How is this actually accomplished using ElevateDB with Session, Config file,
Catalogs...and apparently a "server" executable file?

3) I don't get the Login bit when creating (or editing) a new Session in EDB Manager.
There's a Login page/tab to enter a username and password, but I can't find the
explanation what that is actually for as the only way to open the Session was to use the
default "Administrator" and "EDBDefault" password...despite whatever I put on the Login
page/tab.

Also...when closing it and re-opening it...I have to type all that over again which is a
bit cumbersome, so is there a way to save that without having to re-enter it everytime?


I apologize for my stupidity, but having used DBISAM for so long now....I'm really having
trouble wrapping my head around ElevateDB and I'm finding the little things I loved in
DBISAM are missing in ElevateDB.
Sun, Mar 8 2009 6:49 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Fred


It sounds that like myself you really hammer some of the ease of use functionality that was built into DBISAM.

The "problem" with ElevateDB is that its an implementation of SQL:2003 or as I once posted "big box". If you're used to DBISAM its going to take a lot of getting your head round. Once you do you'll find it has a lot more features and in some areas is a lot faster. You'll also find you have less hair than when you started Smiley

>1) I really use the RENAME and COPY table (and column) function in DBISAM, but how to do
>this in EDBv2?

You can't. Tim has promised these, they're in the roadmap, but there are definite problems. Things that ElevateDB has that DBISAM doesn't are referential integrity, triggers, views and stored procedures. SO in DBISAM a table was pretty much stand alone in database terms, anything you did to it it was your responsibility to sort out your programs to match it. With ElevateDB a table or a column could be referenced all over the place so altering it can have major consequences and its now Tim's (ie ElevateDB's) responsibility to sort it out.

The only thing you can do is drop the appropriate object (table or column) having first altered all the RI, triggers etc, create a new one and then recreate the RI etc if wanted.

>In the EDB Manager...ALTER (table) does not allow to change the name of a table, nor is
>there any function to copy/rename a table either! This is really a deal killer for me and
>I'm very surprised such functions haven't made it in v2 at least. This is the main reason
>why I did not evaluate v1 any further. Same thing with changing column names in a table -
>can't do it!

See above

>2) I've looked everywhere in the help files and forum, but I cannot for the life of me
>find out a plain jane way to deploy a local application for ElevateDB to other users.

Not difficult - I assume you're talking fileserver in which case the CD Collector example is good.

>Here's my situation - I've got 1 database structure, but multiple databases that need to
>be opened on the client side (one at a time). So using DBISAM, I compile the application
>and there's a SQL routine to create a new database and also to open an existing database.
> To open another database....just click Open, point to another database folder...it then
>closes the open database and opens that new one.
>
>How is this actually accomplished using ElevateDB with Session, Config file,
>Catalogs...and apparently a "server" executable file?

ElevateDB uses databases - stand alone tables are a thing of the past (or a thing of DBISAM Smiley - every table is now a part of a database.

What you have in ElevateDB is configuration files holding the high level details (databases, users etc) associated with one or more catalogs which hold the table metadata etc.

In terms of components think of the following

TEDBEngine
All I do with this is set the UseLocalConfigSettings to True so that the settings I define in the session component are used.

TEDBSession
Set the LocalConfigPath, user name and password (see below) and session name

TEDBDatabase
This is where the real work starts set the session name, databasename and database
The database must have been created prior to this using CREATE DATABASE name PATH path (you can alter the database path using ALTER DATABASE but not if its being used)

TEDBTable
Set the sessionname, databasename, tablename and table

Its a "bit" more involved than in DBISAM but still manageable (I just scream quietly every time I just want to check something out and I need to hook up a table to try something)

If the necessary databases with the paths are created in the config then when you have things set up properly on a form it will simply be a matter of close TEDBDatabase, set TEDBDatabase to a new database and open.

>3) I don't get the Login bit when creating (or editing) a new Session in EDB Manager.
>There's a Login page/tab to enter a username and password, but I can't find the
>explanation what that is actually for as the only way to open the Session was to use the
>default "Administrator" and "EDBDefault" password...despite whatever I put on the Login
>page/tab.

Administrator is built in (as is System), if you want to use something of your own you need to create a user in the session. In EDBManager go to the session and you should see a list underneath it which will include Users, click on that and to the right you will see the prompt Create new user. Click on that and you can create a user. Depending what you want to do you may have to create and allocate a Role as well. New users are granted the Public role.

Finally you can define which users / roles can do what to the database. Its very confusing to someone who hasn't operated a similar system before. My advice would be either stick to the Administration user or add any you create to the administrator's role so they get full access to the database. You can alter this later on as you get more familiar and if you need it.

>Also...when closing it and re-opening it...I have to type all that over again which is a
>bit cumbersome, so is there a way to save that without having to re-enter it everytime?

Yeah - put it into the TEDBSession and save it with the app. Its a departure from my usage of DBISAM but anything I do now I drop an engine, session, at least one database and table component onto a datamodule and set them up in the IDE. Alternatively you can set in code.

>I apologize for my stupidity, but having used DBISAM for so long now....I'm really having
>trouble wrapping my head around ElevateDB and I'm finding the little things I loved in
>DBISAM are missing in ElevateDB.

Two years or so downstream I'm getting my head round it but DBISAM had matured with a lot of ease of use features. I know some (eg IF EXISTS) will not emerge in ElevateDB but I'm hoping others will, and I know some are on the roadmap.

Overall the transition was non-trivial but worth it.

Roy Lambert [Team Elevate]
Sun, Mar 8 2009 11:03 AMPermanent Link

Fred H.
Roy Lambert wrote:

Fred


It sounds that like myself you really hammer some of the ease of use functionality that
was built into DBISAM.

The "problem" with ElevateDB is that its an implementation of SQL:2003 or as I once posted
"big box". If you're used to DBISAM its going to take a lot of getting your head round.
Once you do you'll find it has a lot more features and in some areas is a lot faster.
You'll also find you have less hair than when you started Smiley

>1) I really use the RENAME and COPY table (and column) function in DBISAM, but how to do
>this in EDBv2?

You can't. Tim has promised these, they're in the roadmap, but there are definite
problems. Things that ElevateDB has that DBISAM doesn't are referential integrity,
triggers, views and stored procedures. SO in DBISAM a table was pretty much stand alone in
database terms, anything you did to it it was your responsibility to sort out your
programs to match it. With ElevateDB a table or a column could be referenced all over the
place so altering it can have major consequences and its now Tim's (ie ElevateDB's)
responsibility to sort it out.

The only thing you can do is drop the appropriate object (table or column) having first
altered all the RI, triggers etc, create a new one and then recreate the RI etc if wanted.

>In the EDB Manager...ALTER (table) does not allow to change the name of a table, nor is
>there any function to copy/rename a table either! This is really a deal killer for me and
>I'm very surprised such functions haven't made it in v2 at least. This is the main reason
>why I did not evaluate v1 any further. Same thing with changing column names in a table -
>can't do it!

See above

>2) I've looked everywhere in the help files and forum, but I cannot for the life of me
>find out a plain jane way to deploy a local application for ElevateDB to other users.

Not difficult - I assume you're talking fileserver in which case the CD Collector example
is good.

>Here's my situation - I've got 1 database structure, but multiple databases that need to
>be opened on the client side (one at a time). So using DBISAM, I compile the application
>and there's a SQL routine to create a new database and also to open an existing database.
> To open another database....just click Open, point to another database folder...it then
>closes the open database and opens that new one.
>
>How is this actually accomplished using ElevateDB with Session, Config file,
>Catalogs...and apparently a "server" executable file?

ElevateDB uses databases - stand alone tables are a thing of the past (or a thing of
DBISAM Smiley - every table is now a part of a database.

What you have in ElevateDB is configuration files holding the high level details
(databases, users etc) associated with one or more catalogs which hold the table metadata etc.

In terms of components think of the following

TEDBEngine
All I do with this is set the UseLocalConfigSettings to True so that the settings I define
in the session component are used.

TEDBSession
Set the LocalConfigPath, user name and password (see below) and session name

TEDBDatabase
This is where the real work starts set the session name, databasename and database
The database must have been created prior to this using CREATE DATABASE name PATH path
(you can alter the database path using ALTER DATABASE but not if its being used)

TEDBTable
Set the sessionname, databasename, tablename and table

Its a "bit" more involved than in DBISAM but still manageable (I just scream quietly every
time I just want to check something out and I need to hook up a table to try something)

If the necessary databases with the paths are created in the config then when you have
things set up properly on a form it will simply be a matter of close TEDBDatabase, set
TEDBDatabase to a new database and open.

>3) I don't get the Login bit when creating (or editing) a new Session in EDB Manager.
>There's a Login page/tab to enter a username and password, but I can't find the
>explanation what that is actually for as the only way to open the Session was to use the
>default "Administrator" and "EDBDefault" password...despite whatever I put on the Login
>page/tab.

Administrator is built in (as is System), if you want to use something of your own you
need to create a user in the session. In EDBManager go to the session and you should see a
list underneath it which will include Users, click on that and to the right you will see
the prompt Create new user. Click on that and you can create a user. Depending what you
want to do you may have to create and allocate a Role as well. New users are granted the
Public role.

Finally you can define which users / roles can do what to the database. Its very confusing
to someone who hasn't operated a similar system before. My advice would be either stick to
the Administration user or add any you create to the administrator's role so they get full
access to the database. You can alter this later on as you get more familiar and if you
need it.

>Also...when closing it and re-opening it...I have to type all that over again which is a
>bit cumbersome, so is there a way to save that without having to re-enter it everytime?

Yeah - put it into the TEDBSession and save it with the app. Its a departure from my usage
of DBISAM but anything I do now I drop an engine, session, at least one database and table
component onto a datamodule and set them up in the IDE. Alternatively you can set in code.

>I apologize for my stupidity, but having used DBISAM for so long now....I'm really having
>trouble wrapping my head around ElevateDB and I'm finding the little things I loved in
>DBISAM are missing in ElevateDB.

Two years or so downstream I'm getting my head round it but DBISAM had matured with a lot
of ease of use features. I know some (eg IF EXISTS) will not emerge in ElevateDB but I'm
hoping others will, and I know some are on the roadmap.

Overall the transition was non-trivial but worth it.

Roy Lambert [Team Elevate]
Sun, Mar 8 2009 11:10 AMPermanent Link

Fred H.
Roy - had an internet hiccup - can you remove the post above...below is what I was trying
to post.

-----------

Roy - thank you so much for your reply....you've definitely helped me to better understand
why ElevateDB is what it is as compared to DBISAM and I'm sure Tim has also lost a bundle
of hair just developing it!  Rather than quoting you on the below...I'm just going to
follow my number scheme as it'll get too confusing reading my comments in between both of
ours. 8)

1) On this thought, though...I would think that if a Table or whatever is not tied to
something (constrained)...then surely you should be able to change it.  Of course, if it's
constrained / tied to another table via fields (columns)...then yeah, I would understand
why it wouldn't let you change the name, structure, etc., but not if it's a plain jane
simple table not tied to anything.

The reason why I love that feature (and the COPY function as well when data is already in
a table) is I tend to change things up down the road when the app I'm working on starts to
flourish and I get more ideas to enhance the original idea.  I'm very guilty of not
creating a firm outline/strategy before I begin work on an app that uses a database
(DBISAM) and hence my initial "outline" ends up quite different than I originally thought
and hence my naming convention also gets changed along the way.

BTW - this is a hobby of mine, so I'm by no means a programming guru, but thanks to you
Roy, I definitely understand better now why ElevateDB is more "strict" as compared to
DBISAM.  Referential Integrity is a big deal for me....so that is a big reason why I'm
seriously looking at ElevateDB.  I've got an app that I developed and it's a nightmare
when it comes to RI, so anything that makes my life easier on that side.....is a good
thing. Smile

2) OK, I'll take a looksie at the CD Collector example, but I don't know exactly what you
mean by "fileserver" in this case.  The database I mentioned is distributed to multiple
locations/operations - it's not for one (1) location...and each "install" can access
multiple databases (folders with the tables).

As well, I have a "read-only" version of the same app for customers that can view the data
and print reports, but cannot modify any data, so I also need to be able to take an
existing database and send it off on a USB drive or via email with the application.  This
is part of me having a hard time with ElevateDB being a "server" type database system and
how I would best distribute the app with databases....and you're right, I've never worked
with something like this, so bear with me! Smile

Thanks for the component explanation...I'm going to try step by step today what you said
and see if I can understand it.

QUESTION: In the Engine Component - is it necessary to set the ConfigPath property if the
ConfigName is set?  I figure if ConfigName is set...that it already knows where the Config
files are because of the path being set already in EDB Manager.

3) On the Session bit...I see, I deleted the session I created and use the default Session
(in EDB Manager) and hence it automatically used the default Username/Password without me
having to add it in there.  I'll play around with this and users more and come back if any
questions. Wink

Gotta run now and take the kids to Sunday school!!

Thanks Roy!
Sun, Mar 8 2009 12:24 PMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Fred

>Roy - had an internet hiccup - can you remove the post above...below is what I was trying
>to post.

Nope - only Tim can do that (see my other post) - and he generally doesn't Smiley

>1) On this thought, though...I would think that if a Table or whatever is not tied to
>something (constrained)...then surely you should be able to change it. Of course, if it's
>constrained / tied to another table via fields (columns)...then yeah, I would understand
>why it wouldn't let you change the name, structure, etc., but not if it's a plain jane
>simple table not tied to anything.

Remember that with ElevateDB ALL and I mean ALL tables are part of a database so to figure out if you can allow copy/rename you have to check ALL RI, Triggers etc just as if there were links in place

>The reason why I love that feature (and the COPY function as well when data is already in
>a table) is I tend to change things up down the road when the app I'm working on starts to
>flourish and I get more ideas to enhance the original idea. I'm very guilty of not
>creating a firm outline/strategy before I begin work on an app that uses a database
>(DBISAM) and hence my initial "outline" ends up quite different than I originally thought
>and hence my naming convention also gets changed along the way.

So do I <vbg>. There is a world of difference between how people develop on/for PCs than on big boxes (even if the big boxes these days are PCs or networks of them). Maybe there shouldn't be but there is. I think its something to do with the number of available staff/budget.

>BTW - this is a hobby of mine, so I'm by no means a programming guru,

Ditto

>2) OK, I'll take a looksie at the CD Collector example, but I don't know exactly what you
>mean by "fileserver" in this case. The database I mentioned is distributed to multiple
>locations/operations - it's not for one (1) location...and each "install" can access
>multiple databases (folders with the tables).

Fileserver and client/server are the two basic models. Fileserver is one PC or several PCs in a network all just accessing a harddrive directly. Its also sometimes described as local access. Client/Server has a server app in between the data and the client apps.

>As well, I have a "read-only" version of the same app for customers that can view the data
>and print reports, but cannot modify any data, so I also need to be able to take an
>existing database and send it off on a USB drive or via email with the application.

Not sure how to cope with this hopefully someone else can jump in.

>This
>is part of me having a hard time with ElevateDB being a "server" type database system and
>how I would best distribute the app with databases....and you're right, I've never worked
>with something like this, so bear with me! Smile

As with DBISAM ElevateDB is both fileserver and client/server its just that you have to set different things to make it work.

>QUESTION: In the Engine Component - is it necessary to set the ConfigPath property if the
>ConfigName is set? I figure if ConfigName is set...that it already knows where the Config
>files are because of the path being set already in EDB Manager.

EDBManager is simply an ElevateDB app. It only knows where the config files are because Tim tells it when the software is installed. The engine in any app you create could read the same ini file for the settings but I wouldn't advise it, especially for when you send product to customers Smiley

Roy Lambert [Team Elevate]

Mon, Mar 9 2009 11:47 AMPermanent Link

"James Relyea"
I'll stick in my 2 cents worth for thee parts:
>As well, I have a "read-only" version of the same app for customers that
>can view the data
>and print reports, but cannot modify any data, so I also need to be able to
>take an
>existing database and send it off on a USB drive or via email with the
>application.

>Not sure how to cope with this hopefully someone else can jump in.

Could this be an option? Set up a server role and give it select permissions
on the tables, execute permissions on the stored procs etc. Put the read
only users in the new role. That'd let the
DB engine keep the USB type of users as read only. Keeps it simple by
letting the engine do what its supposed to instead of us coding a solution.


>This
>is part of me having a hard time with ElevateDB being a "server" type
>database system and
>how I would best distribute the app with databases....and you're right,
>I've never worked
>with something like this, so bear with me! Smile

>As with DBISAM ElevateDB is both fileserver and client/server its just that
>you have to set different things to make it work.

I've worked several with file server databases & client server databases;
I've never worked with DBISAM. My suggestion is to use the client server for
the most part. I don't know how ElevateDB manages broken connections, roll
backs etc with a file server model. If files are being accessed accross a
network, all of the table data has to be sent back and forth because there
is nothing on the remote side to receive a SQL call like "select field1,
field2 from table1 where field3='some text'  ". With a file server model,
you'd have to transfer all of the rows to the application and let it run the
select. Have 500 rows or 500,000 or 5,000,000 records? The more you send,
the higher the risk of data corruption. I don't know about ElevateDB, but
ask around with anyone that tried to make MS Access or AdvantageDatabase
(client only) run on a network- data corruptions are an issue. This doesn't
happen nearly as often with a client server model because the client sends
the server the SQL command(s) and only returns the matching records. For
data modification, the same thing applies. With a client-server model, you
send the records that need to be updated. The database engine can begin a
transaction, and cancel all of the changes if something goes wrong. How is
that done with a file server model? First, the entire table has to be pulled
by the client, records modifed and pushed back to the files (this is not the
only way, so don't yell at me). As records are pushed back, the updates are
usually permanent. What if something happens along the way? You may wind up
with partially updated or inserted records. I'm relatively new to ElevateDB,
so I can't really comment on how transactions are managed with a file server
model. I'm inclined to think it can't be nearly as clean as with a server.
You'll also get tied up with NFTS permissions and share permissions possibly
with file server models too. The server can be installed as a service so no
one even knows its running (another plus perhaps).

I looked at ElevateDB with a model of client-server for multi user apps, and
file server for running the app on the machine with the data files but opted
to use a client server only. ElevateDB runs on less than 20 megs of RAM with
nothing significant in the swap file so it's not a memory pig on most PCs
even if they're not 2008 PC hardware specs. Plus it's still 1 app that can
be deployed in multiple places. If you're using VS2008 for the writing,
ElevateDB ties in very well so far from what I'm seeing. From a $$
perspective, there is no extra cost for distributing the server. Dollars,
performance, data reliability, small foot print are all big plusses not to
use a file server model.

I saw "big boxes" referred to but I'm not sure what the heck a "big box"
is... could someone tell me?

Well, that's pretty much my 2 cents worth before coffee this morning Smile

Smile
jr








"Roy Lambert" <roy.lambert@skynet.co.uk> wrote in message
news:039D18E8-6128-4263-9265-292EFFE18833@news.elevatesoft.com...
> Fred
>
>>Roy - had an internet hiccup - can you remove the post above...below is
>>what I was trying
>>to post.
>
> Nope - only Tim can do that (see my other post) - and he generally doesn't
> Smiley
>
>>1) On this thought, though...I would think that if a Table or whatever is
>>not tied to
>>something (constrained)...then surely you should be able to change it. Of
>>course, if it's
>>constrained / tied to another table via fields (columns)...then yeah, I
>>would understand
>>why it wouldn't let you change the name, structure, etc., but not if it's
>>a plain jane
>>simple table not tied to anything.
>
> Remember that with ElevateDB ALL and I mean ALL tables are part of a
> database so to figure out if you can allow copy/rename you have to check
> ALL RI, Triggers etc just as if there were links in place
>
>>The reason why I love that feature (and the COPY function as well when
>>data is already in
>>a table) is I tend to change things up down the road when the app I'm
>>working on starts to
>>flourish and I get more ideas to enhance the original idea. I'm very
>>guilty of not
>>creating a firm outline/strategy before I begin work on an app that uses a
>>database
>>(DBISAM) and hence my initial "outline" ends up quite different than I
>>originally thought
>>and hence my naming convention also gets changed along the way.
>
> So do I <vbg>. There is a world of difference between how people develop
> on/for PCs than on big boxes (even if the big boxes these days are PCs or
> networks of them). Maybe there shouldn't be but there is. I think its
> something to do with the number of available staff/budget.
>
>>BTW - this is a hobby of mine, so I'm by no means a programming guru,
>
> Ditto
>
>>2) OK, I'll take a looksie at the CD Collector example, but I don't know
>>exactly what you
>>mean by "fileserver" in this case. The database I mentioned is distributed
>>to multiple
>>locations/operations - it's not for one (1) location...and each "install"
>>can access
>>multiple databases (folders with the tables).
>
> Fileserver and client/server are the two basic models. Fileserver is one
> PC or several PCs in a network all just accessing a harddrive directly.
> Its also sometimes described as local access. Client/Server has a server
> app in between the data and the client apps.
>
>>As well, I have a "read-only" version of the same app for customers that
>>can view the data
>>and print reports, but cannot modify any data, so I also need to be able
>>to take an
>>existing database and send it off on a USB drive or via email with the
>>application.
>
> Not sure how to cope with this hopefully someone else can jump in.
>
>>This
>>is part of me having a hard time with ElevateDB being a "server" type
>>database system and
>>how I would best distribute the app with databases....and you're right,
>>I've never worked
>>with something like this, so bear with me! Smile
>
> As with DBISAM ElevateDB is both fileserver and client/server its just
> that you have to set different things to make it work.
>
>>QUESTION: In the Engine Component - is it necessary to set the ConfigPath
>>property if the
>>ConfigName is set? I figure if ConfigName is set...that it already knows
>>where the Config
>>files are because of the path being set already in EDB Manager.
>
> EDBManager is simply an ElevateDB app. It only knows where the config
> files are because Tim tells it when the software is installed. The engine
> in any app you create could read the same ini file for the settings but I
> wouldn't advise it, especially for when you send product to customers Smiley
>
> Roy Lambert [Team Elevate]
>
>

Mon, Mar 9 2009 1:35 PMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

James

>Could this be an option? Set up a server role and give it select permissions
>on the tables, execute permissions on the stored procs etc. Put the read
>only users in the new role. That'd let the
>DB engine keep the USB type of users as read only. Keeps it simple by
>letting the engine do what its supposed to instead of us coding a solution.

The problem I can see is that you'll need to set the database path each time its plugged in. This might not be a problem and I might have been carried away by the comment about read only - I was thinking read only memory stick, but if you can write to it then it won't be a problem.

>I've worked several with file server databases & client server databases;
>I've never worked with DBISAM. My suggestion is to use the client server for
>the most part. I don't know how ElevateDB manages broken connections, roll
>backs etc with a file server model.

It can't - it doesn't.

>If files are being accessed accross a
>network, all of the table data has to be sent back and forth because there
>is nothing on the remote side to receive a SQL call like "select field1,
>field2 from table1 where field3='some text' ". With a file server model,
>you'd have to transfer all of the rows to the application and let it run the
>select. Have 500 rows or 500,000 or 5,000,000 records? The more you send,
>the higher the risk of data corruption. I don't know about ElevateDB, but
>ask around with anyone that tried to make MS Access or AdvantageDatabase
>(client only) run on a network- data corruptions are an issue.

DBISAM was solid and I think ElevateDB is the same. I think a lot of people switched to DBISAM because of corruption problems. I'd be lying if I said that they never happen but its certainly in the manageable domain and mainly caused by things like power failure of duff network cards.

>I saw "big boxes" referred to but I'm not sure what the heck a "big box"
>is... could someone tell me?

Think back to Oracle, Ingres etc they ran on mini-computers as a minimum and preferably mainframe hence "big box" since you needed a big box to run them. Also they usually had a full regime of acolytes to look after them (DBA, SysAdmin, SysProgs etc). These days of course PCs are so powerful they can be used.

Roy Lambert
Mon, Mar 9 2009 3:35 PMPermanent Link

Fred H.
OK Roy....tried out the CD Collector app...but I can't get the dang the working.  <sigh>

I can build the app (non unicode version) with no problems (using D2007 here), but when I
tried to run it - I get this error:

"ElevateDB Error #600 File manager error (Cannot create file
c:\cdcollector\EDBConfig.EDBCfg (OS Error: The system cannot find the path specified."

I've done a complete search in the "ElevateDB VCL Trial" directory and the only
"EDBConfig" file I found was this one: edbconfig.dcu

I did manage to convert one of my DBISAM v4 databases, but replacing and changing over the
DBISAM components to ElevateDB proved to be not very friendly (got stuck in Form text mode
with an error).   Anyway....got things up and running with new components all hooked up
(simple app)....threw everything over to my 2nd laptop....no go - crashes, won't even
open.  I left the app in the original directory and data directory under it....Config file
directory on top of the app directory.....so same structure, different computer = no go.

You're right.....I'm already losing hair and I'm not even out of the gate! Frown
Mon, Mar 9 2009 8:01 PMPermanent Link

Jan Ferguson

Data Software Solutions, Inc.

Team Elevate Team Elevate

Roy Lambert wrote:

<<<<As well, I have a "read-only" version of the same app for customers
<<<<that can view the data and print reports, but cannot modify any
<<<<data, so I also need to be able to take an existing database and
<<<<send it off on a USB drive or via email with the application.
<<
<<Not sure how to cope with this hopefully someone else can jump in.

Roy and Fred,

I wrote a "Network Configuration" utility for DBISAM which I include
with my applications. I simply had to modify it a little for the
"Local" property settings. Essentially what the utility does is write a
INI file (which could be hand written as well but most clients have no
idea how to do that), which is read by my application in the data
module OnCreate procedure. The property values are read from the INI
file and placed into variables which tell the EDBEngine and EDBSession
where the data is...both on a C/S application and/or a local
"fileserver" application. I ship the configuration files with the
application and blank data files.

Here is my code for the data module OnCreate procedure. I hope it helps
you.

procedure TdmDetails.DataModuleCreate(Sender: TObject);
var RemoteAddress: String[15];
   RemotePort: String[5];
   RemoteHost: String[25];
   SessionType: String[10];
   DataDirectory: String;
begin
if DetailsSession.Connected = True then DetailsSession.Connected :=
False;
 with ConfigIni do
   begin
   RemoteAddress :=
ReadString('Configuration','RemoteAddress','RemoteAddress');
   RemotePort := ReadString('Configuration','RemotePort','RemotePort');
   RemoteHost := ReadString('Configuration','RemoteHost','RemoteHost');
   SessionType :=
ReadString('Configuration','SessionType','SessionType');
   DataDirectory :=
ReadString('Configuration','DataDirectory','DataDirectory');
   end;
 if SessionType = 'Remote' then
   begin
   DetailsSession.SessionType := stRemote;
   DetailsSession.RemotePort := StrToInt(RemotePort);
   DetailsSession.RemoteHost := RemoteHost;
   DetailsSession.RemoteAddress := RemoteAddress;
     try
     DetailsSession.Connected := True;    //Connect remote session
     DetailsDB.Connected := True;        //Connect remote database
     tblLocations.Active := True;
     tblConfig.Active := True;
     tblCalendar.Active := True;
     except
       MessageDlg('Cannot connect to the Server! This might be caused
by one of the following reasons:' +
       #10#13#10#13 + '1. Your network connection is not active' +
       #10#13 + '2. The server is undergoing maintenance updates' +
       #10#13 + '3. The server is not accepting new connections in
preparation for maintenance updates' +
       #10#13 + '4. You have changed the network settings incorrectly
in the configuration file' +
       #10#13#10#13 + 'Please try again in 15 minutes. If your network
connection is active '+
                 'and you still cannot connect to the Details
application, please notify your Network ' +
                 'Administrator.', mtWarning, [mbOK], 0);
       Application.Terminate;
     end;
   end else
   if SessionType = 'Local' then
     begin
     EDBEngine1.ConfigPath := DataDirectory;
     DetailsSession.SessionType := stLocal;
     DetailsSession.LocalConfigPath := DataDirectory;
       try
       DetailsSession.Connected := True;    //Connect local session
       DetailsDB.Connected := True;        //Connect local database
       tblLocations.Active := True;
       tblConfig.Active := True;
       tblCalendar.Active := True;
       except
         MessageDlg('Cannot connect to the data! You may have changed
the network settings incorrectly in ' +
                    'the configuration file. Please double check that
the "Local Data" setting is the same ' +
                    'location as where the EDBConfig.EDBcfg is located
on your drive.', mtWarning, [mbOK], 0);
         Application.Terminate;
     end;
     end;
end;


--
Regards,
Jan Ferguson [Team Elevate]
Tue, Mar 10 2009 3:36 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Fred

>OK Roy....tried out the CD Collector app...but I can't get the dang the working. <sigh>
>
>I can build the app (non unicode version) with no problems (using D2007 here), but when I
>tried to run it - I get this error:
>
>"ElevateDB Error #600 File manager error (Cannot create file
>c:\cdcollector\EDBConfig.EDBCfg (OS Error: The system cannot find the path specified."

That error looks clear enough so I apologise for asking the obvious questions

1. Do you have a path c:\cdcollector\
2. Do you have the necessary rights to it?

I've just built and run it from its install directory ( in my case C:\3rdParty\ElevateDB\examples\cdcollector) and there's no trouble. Moved it to c:\cdcollector and still no trouble.

>I've done a complete search in the "ElevateDB VCL Trial" directory and the only
>"EDBConfig" file I found was this one: edbconfig.dcu

I don't know where that one is from but when CDCollector starts it should create EDBConfig.EDBCfg  .EDBLog  .EDBLck but as your error states it can't create them.

>I did manage to convert one of my DBISAM v4 databases, but replacing and changing over the
>DBISAM components to ElevateDB proved to be not very friendly (got stuck in Form text mode
>with an error). Anyway....got things up and running with new components all hooked up
>(simple app)....threw everything over to my 2nd laptop....no go - crashes, won't even
>open. I left the app in the original directory and data directory under it....Config file
>directory on top of the app directory.....so same structure, different computer = no go.

If you want to email me your source for this app I'll have a look at it, see if I can sort it out and send it back to you working.

Roy Lambert [Team Elevate]
Page 1 of 4Next Page »
Jump to Page:  1 2 3 4
Image