Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 10 of 20 total
Thread Getting my head around EDB
Fri, Aug 21 2009 12:51 AMPermanent Link

"Adam H."
Hi Guys,

I seem to be having some major problems trying to implement my first EDB
application at a clients...

I have designed the first part of a small application, and it runs fine
within my IDE / development operating system.

When I copy the database I've created as well as the application to my
clients computer, and then set the data location in my application (as per
the script in my post "Problem opening table") I've been able to get it to
'see' the database.  (I put the database folder/files on a file server, and
the program locally - connecting directly).

But when I try to insert a record (or edit) within the application I get the
error:

ElevateDB Error #1000 An error occurred with the cursor Farms (An attempt
was made to update a read-only cursor).

I decided maybe the best thing to do would be to install EDBManager and see
what I can find with this, but when I run up EDBManager, I seem to be unable
to connect to the database correctly.

If I create a local session, and then 'create' a database and point the
location to the servers database location - it doesn't appear to be able to
'see' any tables there.

I'm not sure if I should be 'creating' a database within EDBmanager - as I
really want to 'connect' to an existing one, but there doesn't seem to be an
option to do this...

I've also tried creating a local session, but pointing the directory to the
database directory on the server. (I thought that I should be *connecting*
to a session instead of creating one , but there's no option to 'connect' -
just to create a new session).

So, I've tried this (creating a session, and pointing the path to the
location on the server), but can't see the databases - and I think all I've
managed to do is confuse myself more on how EDB is supposed to work (as
opposed to DBISam).

Any help would be greatly apprecaited...

Cheers

Adam.
Fri, Aug 21 2009 4:19 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Adam


Wow, you are confusing yourself aren't you?

>ElevateDB Error #1000 An error occurred with the cursor Farms (An attempt
>was made to update a read-only cursor).

Either this could refer to the physical state of the tables on disk, user access to the directory the tables are in or (I'm guessing) is more likely to be not giving users the right access level.

I'll let you check out the tables state on disk and disk level access privileges.

When you set users up you can either give them a role or directly give them privileges to access and do things with the tables. Check out GRANT ROLES and GRANT PRIVILEGES

>I decided maybe the best thing to do would be to install EDBManager and see
>what I can find with this, but when I run up EDBManager, I seem to be unable
>to connect to the database correctly.

>If I create a local session, and then 'create' a database and point the
>location to the servers database location - it doesn't appear to be able to
>'see' any tables there.

When you created the session did you set the File Folder in Local Configuration and the correct Login details?

If you have an encryption password then you'll need to set that in the .ini AFTER creating the session and BEFORE opening it - ie you have to close and re-open EDBManager (TIM HURRY UP ON THAT CHANGE!!!!)

Once the session is correctly set up then opening it and clicking on Databases should show them.

>I'm not sure if I should be 'creating' a database within EDBmanager - as I
>really want to 'connect' to an existing one, but there doesn't seem to be an
>option to do this...

No you shouldn't

>I've also tried creating a local session, but pointing the directory to the
>database directory on the server. (I thought that I should be *connecting*
>to a session instead of creating one , but there's no option to 'connect' -
>just to create a new session).

This is probably where you're going wrong. You need to point it at the configuration file not the tables.

Think of it as multi level storage

DISK
- configuration
--database
---tables
----records

You need to work through each level in turn. You're trying to (as with DBISAM) just straight to tables and you need to go to configuration which will tell you where the databases are which will point to the tables.

If that lot doesn't help lets see if we can arrange a suitable time for both to Skype

Roy Lambert [Team Elevate]
Fri, Aug 21 2009 11:32 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Adam,

<< But when I try to insert a record (or edit) within the application I get
the error:

ElevateDB Error #1000 An error occurred with the cursor Farms (An attempt
was made to update a read-only cursor). >>

Are you trying to edit a TEDBTable or TEDBQuery component ?

<< If I create a local session, and then 'create' a database and point the
location to the servers database location - it doesn't appear to be able to
'see' any tables there. >>

You'll need to make sure to set the configuration path properly for the
session.  You can see how here:

http://www.elevatesoft.com/manual?action=mantopic&id=edb2&product=d&version=7&category=0&topic=1

at the beginning under the Edit Session information.

<< I'm not sure if I should be 'creating' a database within EDBmanager - as
I really want to 'connect' to an existing one, but there doesn't seem to be
an option to do this... >>

If you have set the configuration path properly, and the database already
exists, then connecting the session should cause the database to appear
automatically.

<< I've also tried creating a local session, but pointing the directory to
the database directory on the server. (I thought that I should be
*connecting* to a session instead of creating one , but there's no option to
'connect' - just to create a new session). >>

Sessions are only persistent (stored) in the EDB Manager. There really isn't
any concept of a persistent session in EDB itself.

<< So, I've tried this (creating a session, and pointing the path to the
location on the server), but can't see the databases - and I think all I've
managed to do is confuse myself more on how EDB is supposed to work (as
opposed to DBISam). >>

Try to think of things like this:  everything is exactly like with DBISAM,
except that instead of a TDBISAMDatabase.Directory setting, you use
CREATE/ALTER/DROP DATABASE to specify the path to the database.  You just
need to make sure that the TEDBSession.ConfigPath is set properly so that it
is pointing to the desired configuration where these database paths (among
other things) are stored.

--
Tim Young
Elevate Software
www.elevatesoft.com

Sun, Aug 23 2009 8:05 PMPermanent Link

"Adam H."
Good Morning Roy,

Thanks for your reply...

> Wow, you are confusing yourself aren't you?

You have no idea!  <vbg>

> Once the session is correctly set up then opening it and clicking on
> Databases should show them.

Aaah - right. I get it (I think). The session points to a configuration file
that contains all the information for the database(s) (if ther are more than
one) - so the session path needs to be set correctly, but once done
everything else should fall into place...

I also think we've found the problem as to why we couldn't see the database.
We changed the configuration file's name when we first setup the
application, and forgot to change the settings in EDBmanager when we set it
up. We can now connect since we've changed this name. (In future, I think
I'll leave it set to EDBConfig by default to avoid such confusions).

>>ElevateDB Error #1000 An error occurred with the cursor Farms (An attempt
>>was made to update a read-only cursor).
>
> Either this could refer to the physical state of the tables on disk, user
> access to the directory the tables are in or (I'm guessing) is more likely
> to be not giving users the right access level.

By giving users the right access level, you're talking externally to EDB I
assume. (ie - Windows secuirty, etc) - and that a different error would
occur if it was user rights within EDB. I thought we had full access for the
users, but have since double-checked. (See below)

> When you set users up you can either give them a role or directly give
> them privileges to access and do things with the tables. Check out GRANT
> ROLES and GRANT PRIVILEGES

At this point in time, we've hardcoded Administrator and EDBDefault into the
application's EDBSession component - so we shouldn't have any problems with
EDB secuirty. (There is no need for us to have this security feature at this
time, and I'm trying to avoid additional hurdles for our first application,
so figure connecting as Administrator is the simplest method).

However - we have tried setting up the application on a different machine in
our office (the same way we have at our clients), and we have the same
problem. Now though (since we've figured out the config name problem) we can
connect using EDBManager, but still cannot edit the data (even with
EDBManager).

If I right-click and choose SET AS NULL it says that we cannot peroform this
operation on a read-only dataset.

We are using Administrator and EDBDefault as the username and password, so
should have full access according to EDB.

We have also set Windows security on the folder (and subfolders) to FULL
CONTROL for everyone (and removed all other users) and still can't figure
out why it's a read-only dataset.

I've also dropped to command prompt and executed "Attrib -r -a -s -h *.* /s"
to make sure no 'read only' attributes are set to the database and/or
tables.

There's gotta be something else we've missed, but I can't figure out what it
could be.  (We're using the UNICODE version if that makes any difference? )

> If you have an encryption password then you'll need to set that in the
> .ini AFTER creating the session and BEFORE opening it - ie you have to
> close and re-open EDBManager (TIM HURRY UP ON THAT CHANGE!!!!)

We're not using encryption in this application. (At this stage, we're trying
to keep it as close to a "stLocal DBISam" database as possible to avoid any
additional confusion).

We're also using EDB version 1 (not 2), so any change Tim makes to 2 isn't
going to help us much. Wink

> Think of it as multi level storage
>
> DISK
> - configuration
> --database
> ---tables
> ----records
>
> You need to work through each level in turn. You're trying to (as with
> DBISAM) just straight to tables and you need to go to configuration which
> will tell you where the databases are which > will point to the tables.
>
> If that lot doesn't help lets see if we can arrange a suitable time for
> both to Skype

Thanks for the offer. I'm on GMT + 10 time wise, so I'm not sure if you're
in bed when I'm awake and vise-versa. Hopefully we can get this sorted out
soon, but I appreciate the offer for skype, and might take it up if we keep
hitting a dead end.

Thanks for your help!

Adam.
Sun, Aug 23 2009 8:10 PMPermanent Link

"Adam H."
Good Morning Tim,

> << But when I try to insert a record (or edit) within the application I
> get the error:
>
> ElevateDB Error #1000 An error occurred with the cursor Farms (An attempt
> was made to update a read-only cursor). >>
>
> Are you trying to edit a TEDBTable or TEDBQuery component ?

This is a TEDBTable component. As per my reply to Roy, we've checked:

a) EDB Credentials. (We're using Administrator and EDBDefault to login).

b) Windows Security. (Even to the point of setting FULL CONTROL for
'Everyone' and removing all other users to avoid restrictions).

c) Making sure the Read Only attribute isn't set on the folder, or any
subfolders.

.... yet we still can't Edit the dataset. (And get the error 'cannot performt
this operation on a readonly dataset' if we choose 'SET AS NULL' within the
EDBManager

This is now on 2 machines (as we can't do it on our clients, so we've tried
on another machine in the office which isn't a development machine) - and it
still fails.

> << If I create a local session, and then 'create' a database and point the
> location to the servers database location - it doesn't appear to be able
> to 'see' any tables there. >>
>
> You'll need to make sure to set the configuration path properly for the
> session.  You can see how here:
>
> http://www.elevatesoft.com/manual?action=mantopic&id=edb2&product=d&version=7&category=0&topic=1
>
> at the beginning under the Edit Session information.

Thanks Tim. I think we've got this bit right now (as we can see the
tables) - just can't edit them.

> << I've also tried creating a local session, but pointing the directory to
> the database directory on the server. (I thought that I should be
> *connecting* to a session instead of creating one , but there's no option
> to 'connect' - just to create a new session). >>
>
> Sessions are only persistent (stored) in the EDB Manager. There really
> isn't any concept of a persistent session in EDB itself.

Aah - OK. Thanks. So, theorietically I could have multiple config files all
over a machine (for different databases), as long as I never needed to
connect to more than one database simultaneously. (Not that I would want to
do this - but just to get my head around the design concept).

Thanks for your help...

Adam.
Mon, Aug 24 2009 3:05 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Adam

>You have no idea! <vbg>

Oh yes I do Smiley

>I also think we've found the problem as to why we couldn't see the database.
>We changed the configuration file's name when we first setup the
>application, and forgot to change the settings in EDBmanager when we set it
>up. We can now connect since we've changed this name. (In future, I think
>I'll leave it set to EDBConfig by default to avoid such confusions).

That would do it. Since I'm using encryption my favourite is forgetting to alter the password.

>>>ElevateDB Error #1000 An error occurred with the cursor Farms (An attempt
>>>was made to update a read-only cursor).
>>
>> Either this could refer to the physical state of the tables on disk, user
>> access to the directory the tables are in or (I'm guessing) is more likely
>> to be not giving users the right access level.
>
>By giving users the right access level, you're talking externally to EDB I
>assume. (ie - Windows secuirty, etc) - and that a different error would
>occur if it was user rights within EDB. I thought we had full access for the
>users, but have since double-checked. (See below)

I was thinking at either level, but from what you've posted that shouldn't be a problem.

>There's gotta be something else we've missed, but I can't figure out what it
>could be. (We're using the UNICODE version if that makes any difference? )

>We're also using EDB version 1 (not 2), so any change Tim makes to 2 isn't
>going to help us much. Wink

I'm using ANSI and v2 and fileserver so almost totally different. Can you post the .ini configuration file for EDBManager so we can see if there's anything obvious there. It might also be worth downloading an evaluation version of 2 just to see.

>Thanks for the offer. I'm on GMT + 10 time wise, so I'm not sure if you're
>in bed when I'm awake and vise-versa. Hopefully we can get this sorted out
>soon, but I appreciate the offer for skype, and might take it up if we keep
>hitting a dead end.

Let's hope.

Roy Lambert [Team Elevate]

Mon, Aug 24 2009 12:48 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Adam,

<< This is a TEDBTable component. As per my reply to Roy, we've checked:

a) EDB Credentials. (We're using Administrator and EDBDefault to login).

b) Windows Security. (Even to the point of setting FULL CONTROL for
'Everyone' and removing all other users to avoid restrictions).

c) Making sure the Read Only attribute isn't set on the folder, or any
subfolders.

... yet we still can't Edit the dataset. (And get the error 'cannot
performt this operation on a readonly dataset' if we choose 'SET AS NULL'
within the EDBManager >>

Where is the table being stored, and is this XP or Vista ?

<< Aah - OK. Thanks. So, theorietically I could have multiple config files
all over a machine (for different databases), as long as I never needed to
connect to more than one database simultaneously. (Not that I would want to
o this - but just to get my head around the design concept). >>

You don't need multiple configuration files unless you're using different
encryption settings, or the configuration files belong to different
applications with different database definitions, etc.  Think of the
configuration file as an application configuration repository for the
database engine.  You can define up to 4096 databases in a single
configuration file, so you could use the same configuration file for many
different databases.

--
Tim Young
Elevate Software
www.elevatesoft.com

Tue, Aug 25 2009 7:22 PMPermanent Link

"Adam H."
Good Morning Tim,

Thanks for your reply again...

> << This is a TEDBTable component. As per my reply to Roy, we've checked:
>
> a) EDB Credentials. (We're using Administrator and EDBDefault to login).
>
> b) Windows Security. (Even to the point of setting FULL CONTROL for
> 'Everyone' and removing all other users to avoid restrictions).
>
> c) Making sure the Read Only attribute isn't set on the folder, or any
> subfolders.
>
> ... yet we still can't Edit the dataset. (And get the error 'cannot
> performt this operation on a readonly dataset' if we choose 'SET AS NULL'
> within the EDBManager >>
>
> Where is the table being stored, and is this XP or Vista ?

At my clients on a XP machine. Testing it here in the office is Vista. (We
have tried doing a right-click on EDBManager and chosing 'Run as
Administrator', but still can't edit the data).

It's got me beat as to why they're read only. Could it be that we designed
and made the database on one machine (my development machine) and then
copied the data directories to another machine and tried to run? (is this a
no-no with EDB, or could it have caused problems with the Read Only)?

Cheers

Adam.
Tue, Aug 25 2009 7:28 PMPermanent Link

"Adam H."
Hi Roy,

Thanks again for your reply...

>>We're also using EDB version 1 (not 2), so any change Tim makes to 2 isn't
>>going to help us much. Wink
>
> I'm using ANSI and v2 and fileserver so almost totally different. Can you
> post the .ini configuration file for EDBManager so we can see
> if there's anything obvious there. It might also be worth downloading an
> evaluation version of 2 just to see.

Sure - have posted on the binary's newsgroups under 'EDBManager Config File
for Roy'.

I'd like to avoid switching over to EDB2 as a test to start with if we can
help it just at the moment, but I guess if we can't find anything else wrong
I may have no choice...

Cheers

Adam.
Wed, Aug 26 2009 3:47 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Adam

>It's got me beat as to why they're read only. Could it be that we designed
>and made the database on one machine (my development machine) and then
>copied the data directories to another machine and tried to run? (is this a
>no-no with EDB, or could it have caused problems with the Read Only)?

That's no problem (at least with v2, non-unicode and fileserver) since its exactly what I've done.

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