Icon View Thread

The following is the text of the current message along with any replies.
Messages 11 to 20 of 20 total
Thread Backup with client / server application from the client program.
Thu, Oct 4 2012 4:30 AMPermanent Link

Uli Becker

Phil,

> I've set the sessions...
>
> LocalConfigPath
> LocalTempTablesPath
>
> And when I connect it I get the #409 The configuration path is empty error.
>
> I read up and now find I need to ADD a TEDBEngine component to my client
> program, will this go and effect the multitude of other stuff already
> setup for client / server thats in place? Or is there a way around this
> so I don't have to add an Engine component onto the form?

Make sure that Engine.UseLocalSessionEngineSettings is set to true.

From Tim:

<<
If using the components dynamically, then you can just refer to the global
Engine() function in the edbcomps unit in order to access the global
TEDBEngine component.
>>

Regards Uli


Thu, Oct 4 2012 7:17 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Phil


The thing Uli forgot to mention is that with UseLocalSessionEngineSettings set to true you'll have to alter ALL of the sessions to hold the appropriate information regarding paths since they'll no longer get this from the engine.

Roy Lambert [Team Elevate]
Thu, Oct 4 2012 7:20 AMPermanent Link

Uli Becker

Roy,

> The thing Uli forgot to mention is that with UseLocalSessionEngineSettings set to true you'll have to alter ALL of the sessions to hold the appropriate information regarding paths since they'll no longer get this from the engine.

You are right!!

Uli
Thu, Oct 4 2012 7:21 AMPermanent Link

Fernando Dias

Team Elevate Team Elevate

Phil,

Uli has already answered your question, I only want to add this:

If you decide *not* to add a TEDBEngine component then it is even more
important that you set Engine.UseLocalSessionEngineSettings  to True,
otherwise EDB is going to ignore all the TEDBSession.Local<something>
settings and use the Engine settings for all local sessions.

So, set Engine.UseLocalSessionEngineSettings  to true and then either:
 - TEDBSession.LocalConfigPath if you want an on-disk config file
 OR
 - TEDBSession.LocalConfigMemory if you want an in-memory config file

--
Fernando Dias
[Team Elevate]
Thu, Oct 4 2012 7:26 AMPermanent Link

Uli Becker

Addition: I just looked that up again in the manual:

<<
Note
Although the TEDBSession Local* versions of the above properties will
override the corresponding
TEDBEngine properties, they are initially set to the same value as the
corresponding TEDBEngine
properties when the TEDBSession component is first created.
>>

So you should be able to use both local and global settings with
UseLocalSessionEngineSettings set to true.

Uli
Thu, Oct 4 2012 8:32 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Uli

>Although the TEDBSession Local* versions of the above properties will
>override the corresponding
>TEDBEngine properties, they are initially set to the same value as the
>corresponding TEDBEngine
>properties when the TEDBSession component is first created.
> >>
>
>So you should be able to use both local and global settings with
>UseLocalSessionEngineSettings set to true.

Yeah - my brain just did a hard reboot and realised local vs remote - duh!

Roy Lambert [Team Elevate]
Thu, Oct 4 2012 8:50 AMPermanent Link

IQA

> Uli has already answered your question, I only want to add this:
>
> If you decide *not* to add a TEDBEngine component then it is even more
> important that you set Engine.UseLocalSessionEngineSettings  to True,
> otherwise EDB is going to ignore all the TEDBSession.Local<something>
> settings and use the Engine settings for all local sessions.
>
> So, set Engine.UseLocalSessionEngineSettings  to true and then either:
>   - TEDBSession.LocalConfigPath if you want an on-disk config file
>   OR
>   - TEDBSession.LocalConfigMemory if you want an in-memory config file
>
> --
> Fernando Dias
> [Team Elevate]

Thanks Everyone...

It all just worked when I placed a TEngine set to stLocal and a Session
set to stLocal and used the following code...

DM->BKPEngine->ConfigPath = DM->CommonPath + "localstore";
DM->BKPEngine->TempTablesPath = DM->BKPEngine->GetTempTablesPath();

I actually found if I added the following line prior to the 2 above, it
gave me an error #409 configuration path is emtpy...

DM->BKPEngine->UseLocalSessionEngineSettings = true;

So I dont think I need it in this instance.

This is on my client app, with no other engine components, just the
original remote session and database that was there prior to me adding
the local session and Engine component.

Cheers,

Phil.
Thu, Oct 4 2012 12:50 PMPermanent Link

Uli Becker

Phil,

but your question was:

<<
I've set the sessions...

LocalConfigPath
LocalTempTablesPath

And when I connect it I get the #409 The configuration path is empty error.
>>

The only way to use these local settings is to set
UseLocalSessionEngineSettings to true.

On the other hand the question is, whether or not an empty local
configuration path is replaced by the global engine value.

Uli


Tue, Oct 9 2012 3:41 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Phil,

<< I almost wonder if I could just call a remote procedure from the client
to have the server make a backup at its default store I already have in
place and then just have the server send the backup file to the client
program using TCP/IP or something. >>

I wouldn't do that.  It's what you had to do with DBISAM, but using the
store file copy operations in EDB is more efficient because they know how to
transfer *files*.  IOW, they don't just read a very large file into memory
and try to transmit the whole thing, rather they send things in nice,
manageable chunks.

<< This seems to be one of those ElevateDB things that's not as open as
DBISAM. >>

This is actually one of the things that EDB does better than DBISAM by a
very large degree.  DBISAM could not transfer a file from the server to
client, period (ignoring the server procedures for the reasons outlined
above).

I would suggest a slightly quicker route over what Fernando suggests:

1) Define a local store on the EDB Server.  This is the store to use for the
backup using BACKUP DATABASE.
2) After the backup is complete, use this method to transfer the backup file
to a local file (by using TFileStream for the target stream):

http://www.elevatesoft.com/manual?action=viewmethod&id=edb2&product=delphi&version=7&comp=TEDBSession&method=SaveStoreFileToStream

Doing it this way avoids the need for any local configuration files/stores.

If you have any other questions, please let me know.

Tim Young
Elevate Software
www.elevatesoft.com
Tue, Oct 9 2012 4:17 PMPermanent Link

IQA

> << I almost wonder if I could just call a remote procedure from the
> client to have the server make a backup at its default store I already
> have in place and then just have the server send the backup file to the
> client program using TCP/IP or something. >>
>
> I wouldn't do that.  It's what you had to do with DBISAM, but using the
> store file copy operations in EDB is more efficient because they know
> how to transfer *files*.  IOW, they don't just read a very large file
> into memory and try to transmit the whole thing, rather they send things
> in nice, manageable chunks.
>
> << This seems to be one of those ElevateDB things that's not as open as
> DBISAM. >>
>
> This is actually one of the things that EDB does better than DBISAM by a
> very large degree.  DBISAM could not transfer a file from the server to
> client, period (ignoring the server procedures for the reasons outlined
> above).
>
> I would suggest a slightly quicker route over what Fernando suggests:
>
> 1) Define a local store on the EDB Server.  This is the store to use for
> the backup using BACKUP DATABASE.
> 2) After the backup is complete, use this method to transfer the backup
> file to a local file (by using TFileStream for the target stream):
>
> http://www.elevatesoft.com/manual?action=viewmethod&id=edb2&product=delphi&version=7&comp=TEDBSession&method=SaveStoreFileToStream
>
>
> Doing it this way avoids the need for any local configuration files/stores.
>
> If you have any other questions, please let me know.
>
> Tim Young

Thanks Tim,

I needed some pushing, which I got from Fernando and Raul, in the end it
was alot easier than I had in my mind.

I've got it working using the local store on the server and a virtual
remote store in the client, which then creates a temp local store
dictated by the user as to where they wish to save their backup, this
temp store is then dropped keeping contents.

Thanks again for your help, I will look into the SaveStoreFileToStream,
but I'm happy with the current result.

Cheers,

Phil.
« Previous PagePage 2 of 2
Jump to Page:  1 2
Image