Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 10 of 10 total
Thread DBISAM ver 3.24 -> replacing a file in use (read only)
Fri, Jun 2 2006 10:44 AMPermanent Link

Bryan
Hello,

I'm a registered user of DBISAM for many years and have been using version 3.24.

Is this possible?

I have a DBISAM table open in read only mode (includes file.dat, file.idx, and file.blb).
While that table is open and in read only mode, I replace the file.dat, file.idx, and file.blb via an automated downloader.

My problem:  I have these files that are updated on a regular basis with new records.  If a user currently has one of these file open as read only, I want to be sure that
when there is an update downloaded, these file get replaced even though they are currently open.

Please adivse on the proper way to accomplish this.
Best Regards,
Bryan
Fri, Jun 2 2006 11:22 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Bryan,

<< Is this possible?

I have a DBISAM table open in read only mode (includes file.dat, file.idx,
and file.blb).  While that table is open and in read only mode, I replace
the file.dat, file.idx, and file.blb via an automated downloader.

My problem:  I have these files that are updated on a regular basis with
new records.  If a user currently has one of these file open as read only, I
want to be sure that when there is an update downloaded, these file get
replaced even though they are currently open. >>

Unfortunately there is no way to do what you want because Windows will not
allow you to replace the files while they are opened by another process.
You'll have to get everyone to at least close the tables before they can be
updated.

--
Tim Young
Elevate Software
www.elevatesoft.com

Fri, Jun 2 2006 11:36 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Bryan


Single user or multi user?

Does the updated table only contain new records or are there deleted records as well?

Roy Lambert
Fri, Jun 2 2006 11:42 AMPermanent Link

Bryan
Roy Lambert <roy.lambert@skynet.co.uk> wrote:

Bryan


Single user or multi user?

Does the updated table only contain new records or are there deleted records as well?

Roy Lambert


Hi Roy,

Single user, and only new records are added and maybe a correction to a previous record.
Bryan
Fri, Jun 2 2006 12:11 PMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Bryan

>Single user, and only new records are added and maybe a correction to a previous record.

The best advice is to grab the current records ID, close the table, download the new one, reopen and do a Locate or FindKey.

If that's not possible the best suggestion I can come up with is

1. download the new table under another name
2. run through the new table either inserting or updating records in the existing table
3. delete the downloaded table

Its a bit more risky but if the tables aren't to large and you make sure the update routine isn't closed part way through it should work.

Another suggestion would be to:

1. download the new table under another name
2. when the app starts check for this table and if it exists delete the existing one and rename the new one

It should be possible to do this somehow when Windows starts - but please don't ask me how cos I don't know Smiley

Roy Lambert
Fri, Jun 2 2006 12:28 PMPermanent Link

"Robert"

"Tim Young [Elevate Software]" <timyoung@elevatesoft.com> wrote in message
news:8DCD06D2-CE76-4970-9B1D-E8E51CB2298B@news.elevatesoft.com...
> Bryan,
>
> << Is this possible?
>
> I have a DBISAM table open in read only mode (includes file.dat, file.idx,
> and file.blb).  While that table is open and in read only mode, I replace
> the file.dat, file.idx, and file.blb via an automated downloader.
>
> My problem:  I have these files that are updated on a regular basis with
> new records.  If a user currently has one of these file open as read only,
> I want to be sure that when there is an update downloaded, these file get
> replaced even though they are currently open. >>
>
> Unfortunately there is no way to do what you want because Windows will not
> allow you to replace the files while they are opened by another process.
> You'll have to get everyone to at least close the tables before they can
> be updated.
>

1. Create a table with DBSYS. Add two records (one and two)
2. Close the table.
3. With Explorer, make a copy of the DAT and IDX files, store them somewhere
4. Open the table again in DBSYS. Add another record (three). At this point,
all three records are displayed
5. With explorer, reverse the copy made in step 3. Say Yes to All to replace
files.
6. In DBSYS, press Refresh button, now you only see two records.

Robert


> --
> Tim Young
> Elevate Software
> www.elevatesoft.com
>
>

Fri, Jun 2 2006 1:51 PMPermanent Link

Bryan
"Robert" <ngsemail2005withoutthis@yahoo.com.ar> wrote:

>1. Create a table with DBSYS. Add two records (one and two)
>2. Close the table.
>3. With Explorer, make a copy of the DAT and IDX files, store them somewhere
>4. Open the table again in DBSYS. Add another record (three). At this point,
>all three records are displayed
>5. With explorer, reverse the copy made in step 3. Say Yes to All to replace
>files.
>6. In DBSYS, press Refresh button, now you only see two records.

>Robert

Very interesting...
I think I will go with closing the table, then reopen it.
At least until I find a better design scheme for what I'm trying to do.
Thanks to all,
Bryan
Fri, Jun 2 2006 2:10 PMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Robert


Now you mention it I also remember seeing this but its a dangerous practice and I hate to think what might happen if someone tries to move records or refresh the table whilst the .dat has been overwritten but the .idx or .blb haven't.

Roy Lambert
Fri, Jun 2 2006 5:44 PMPermanent Link

"Robert"

"Roy Lambert" <roy.lambert@skynet.co.uk> wrote in message
news:06370576-E6D0-4138-BE80-5E92A2135B36@news.elevatesoft.com...
> Robert
>
>
> Now you mention it I also remember seeing this but its a dangerous
> practice and I hate to think what might happen if someone tries to move
> records or refresh the table whilst the .dat has been overwritten but the
> .idx or .blb haven't.
>

Oh, could not agree more, it is not something that you'd do on purpose. It
just happened once or twice during testing, that I restored a set of tables
while one or more were open, only to find out that the contents of the
restored tables were still accessible.

Alos nice once every two years or so to prove Tim wrong Smiley

Robert

Sat, Jun 3 2006 5:46 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Robert

>Alos nice once every two years or so to prove Tim wrong Smiley

Yeah! Lets gang up on him <evil Dick Dastardly like chuckle>

Roy Lambert
Image