By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,148 Members | 779 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,148 IT Pros & Developers. It's quick & easy.

Synchronize drawings

P: n/a
My application deals with building information. Users may want to view
autocad drawings for a particular building. The problem is that the central
server is so slow for some users that it could take five to ten minutes to
open an AutoCad drawing.

So I'm looking for a strategy where I could allow users to download these
drawings to their local hard drive and then access the drawings from there.
This is also complicated by the fact that users may have drawings on their
local PC that they should share with everyone else; so these drawings should
be copied to the server.

My problem:

How do I keep everything synchronized, yet allow users to either view
drawings from their local PC or the server. Also, the backend table will
need to know which file names are related to which buildings.

Each user has a personal backend file where I could store the location on
their PC where they want to store downloaded drawings. The table in the
common backend should probably store the file name for the drawing (not
including the path) separate from the path to the server location. Then the
user could somehow set that they want my app to open the drawing on their
local PC as opposed to opening the drawing from the server. If the drawing
isn't found on their local PC the code could request if they would like to
download that drawing.

But now what happens if the user has a drawing that they need to upload to
the server. Not only does a copy of the drawing have to be made, but the
back-end table needs to be updated with the file name (not including path)
for the particular building.

I'm pretty sure I can code most of this, but with debugging it will take a
fair amount of time.

Does this sound like a reasonable approach? Advice or suggestions are
greatly appreciated.

Thank you.

--
Message posted via AccessMonster.com
http://www.accessmonster.com/Uwe/For...ccess/200611/1

Nov 23 '06 #1
Share this Question
Share on Google+
4 Replies


P: n/a
Why not just recreate a process similar to what would happen if the
drawings were opened directly from the server?

I think what I would do, is have a single back-end containing all file
names, and paths. The user would then, via his front-end, request one
of these files. You could copy the file from the server, to the local
machine, then flag the file in the back-end "in-use". Or maybe even
"in-use by [someone]".

Then, disable access to the file by other users, if the file is flagged
"in-use".

Also, don't let the files remain on the local machine. You could create
a seperate routine to restore the file to the server, or even create a
custom "close" button in AutoCad to to do it (AutoCad's VBA interface
basically the same as Access, and it's not a big deal to connect to the
BE).

rdemyan via AccessMonster.com wrote:
My application deals with building information. Users may want to view
autocad drawings for a particular building. The problem is that the central
server is so slow for some users that it could take five to ten minutes to
open an AutoCad drawing.

So I'm looking for a strategy where I could allow users to download these
drawings to their local hard drive and then access the drawings from there.
This is also complicated by the fact that users may have drawings on their
local PC that they should share with everyone else; so these drawings should
be copied to the server.

My problem:

How do I keep everything synchronized, yet allow users to either view
drawings from their local PC or the server. Also, the backend table will
need to know which file names are related to which buildings.

Each user has a personal backend file where I could store the location on
their PC where they want to store downloaded drawings. The table in the
common backend should probably store the file name for the drawing (not
including the path) separate from the path to the server location. Then the
user could somehow set that they want my app to open the drawing on their
local PC as opposed to opening the drawing from the server. If the drawing
isn't found on their local PC the code could request if they would like to
download that drawing.

But now what happens if the user has a drawing that they need to upload to
the server. Not only does a copy of the drawing have to be made, but the
back-end table needs to be updated with the file name (not including path)
for the particular building.

I'm pretty sure I can code most of this, but with debugging it will take a
fair amount of time.

Does this sound like a reasonable approach? Advice or suggestions are
greatly appreciated.

Thank you.

--
Message posted via AccessMonster.com
http://www.accessmonster.com/Uwe/For...ccess/200611/1
Nov 24 '06 #2

P: n/a
Thanks for the response. The approach you suggest seems similar to a "check
out drawings" approach. A couple of questions:

1) If the file is copied from the server to the local machine, I'm not sure
why you suggest restricting others from accessing the file on the server. Is
it because the current user of that drawing might make changes to it? Of
course, I can only disable access to the drawings by others via my
application. If someone decides to open AutoCad and directly open the server
drawing, I can't stop that.

2) You're also suggesting that any drawings downloaded to the local PC should
be deleted. The reason for this would be to prevent local PC copies and
server copies from getting out of sync. I guess I could write code that
would check if drawings had been downloaded and then copy them back to the
server and delete them from the local PC. My only concern is that I've
noticed that copy code sometimes fails due to, I think, the slow server
connection. I've been using the VBA FileCopy command, but am considering
switching to fso or even the Windows API file copy command. Any thoughts on
that?
Rational Repairs wrote:
>Why not just recreate a process similar to what would happen if the
drawings were opened directly from the server?

I think what I would do, is have a single back-end containing all file
names, and paths. The user would then, via his front-end, request one
of these files. You could copy the file from the server, to the local
machine, then flag the file in the back-end "in-use". Or maybe even
"in-use by [someone]".

Then, disable access to the file by other users, if the file is flagged
"in-use".

Also, don't let the files remain on the local machine. You could create
a seperate routine to restore the file to the server, or even create a
custom "close" button in AutoCad to to do it (AutoCad's VBA interface
basically the same as Access, and it's not a big deal to connect to the
BE).
>My application deals with building information. Users may want to view
autocad drawings for a particular building. The problem is that the central
[quoted text clipped - 38 lines]
>Message posted via AccessMonster.com
http://www.accessmonster.com/Uwe/For...ccess/200611/1
--
Message posted via AccessMonster.com
http://www.accessmonster.com/Uwe/For...ccess/200611/1

Nov 24 '06 #3

P: n/a
1) If the file is copied from the server to the local machine, I'm not sure
why you suggest restricting others from accessing the file on the server. Is
it because the current user of that drawing might make changes to it?
Yes, exactly. There is no other way to assure the files are in sync.
You can't even use file date/time property to compare. If a user opens
AutoCad, and just zooms or pans the drawing, on close, AutoCad will ask
to if you want to save. If the user clicks yes, the file will then look
the the latest and greatest, but, in reality, no changes were made.
If someone decides to open AutoCad and directly open the server
drawing, I can't stop that.
Yup. All your hard work here will be for nill.
2) You're also suggesting that any drawings downloaded to the local PC should
be deleted. The reason for this would be to prevent local PC copies and
server copies from getting out of sync.
Yup.
I've been using the VBA FileCopy command, but am considering
switching to fso or even the Windows API file copy command. Any thoughts on
that?
Not really. The only time I really deal with this is to move a file
(normally a .pdf) from a local temp location, to it's final server
location. I use the Name command:

Name strTempPathAndFile As strFinalPathAndFile

I have NEVER seen a problem with the file being moved properly, but
then again, I don't have the server issues you have referenced. I guess
you could compare file stats after the copy (file size, date/time...).
Or, after the copy back to the server, move the local file to a temp
directory, and delete after some sort of confirmation is completed.

Sound like your in a tough situation. Users being able to circumvent
your app. Not being able to realiably move files back and forth. Maybe
you should fix the server problems?

Jeff

rdemyan via AccessMonster.com wrote:
Thanks for the response. The approach you suggest seems similar to a "check
out drawings" approach. A couple of questions:

1) If the file is copied from the server to the local machine, I'm not sure
why you suggest restricting others from accessing the file on the server. Is
it because the current user of that drawing might make changes to it? Of
course, I can only disable access to the drawings by others via my
application. If someone decides to open AutoCad and directly open the server
drawing, I can't stop that.

2) You're also suggesting that any drawings downloaded to the local PC should
be deleted. The reason for this would be to prevent local PC copies and
server copies from getting out of sync. I guess I could write code that
would check if drawings had been downloaded and then copy them back to the
server and delete them from the local PC. My only concern is that I've
noticed that copy code sometimes fails due to, I think, the slow server
connection. I've been using the VBA FileCopy command, but am considering
switching to fso or even the Windows API file copy command. Any thoughts on
that?
Rational Repairs wrote:
Why not just recreate a process similar to what would happen if the
drawings were opened directly from the server?

I think what I would do, is have a single back-end containing all file
names, and paths. The user would then, via his front-end, request one
of these files. You could copy the file from the server, to the local
machine, then flag the file in the back-end "in-use". Or maybe even
"in-use by [someone]".

Then, disable access to the file by other users, if the file is flagged
"in-use".

Also, don't let the files remain on the local machine. You could create
a seperate routine to restore the file to the server, or even create a
custom "close" button in AutoCad to to do it (AutoCad's VBA interface
basically the same as Access, and it's not a big deal to connect to the
BE).
My application deals with building information. Users may want to view
autocad drawings for a particular building. The problem is that the central
[quoted text clipped - 38 lines]
Message posted via AccessMonster.com
http://www.accessmonster.com/Uwe/For...ccess/200611/1

--
Message posted via AccessMonster.com
http://www.accessmonster.com/Uwe/For...ccess/200611/1
Nov 24 '06 #4

P: n/a
Unfortunately, I'm not in a position where I can do anything about the server.
One last question. How do I handle the situation where there is an abnormal
shutdown and the flag that identified a drawing as "in use" is not reset to
false. If this happens, the drawing will not be able to be opened by anyone.

Rational Repairs wrote:
>1) If the file is copied from the server to the local machine, I'm not sure
why you suggest restricting others from accessing the file on the server. Is
it because the current user of that drawing might make changes to it?

Yes, exactly. There is no other way to assure the files are in sync.
You can't even use file date/time property to compare. If a user opens
AutoCad, and just zooms or pans the drawing, on close, AutoCad will ask
to if you want to save. If the user clicks yes, the file will then look
the the latest and greatest, but, in reality, no changes were made.
>If someone decides to open AutoCad and directly open the server
drawing, I can't stop that.

Yup. All your hard work here will be for nill.
>2) You're also suggesting that any drawings downloaded to the local PC should
be deleted. The reason for this would be to prevent local PC copies and
server copies from getting out of sync.

Yup.
> I've been using the VBA FileCopy command, but am considering
switching to fso or even the Windows API file copy command. Any thoughts on
that?

Not really. The only time I really deal with this is to move a file
(normally a .pdf) from a local temp location, to it's final server
location. I use the Name command:

Name strTempPathAndFile As strFinalPathAndFile

I have NEVER seen a problem with the file being moved properly, but
then again, I don't have the server issues you have referenced. I guess
you could compare file stats after the copy (file size, date/time...).
Or, after the copy back to the server, move the local file to a temp
directory, and delete after some sort of confirmation is completed.

Sound like your in a tough situation. Users being able to circumvent
your app. Not being able to realiably move files back and forth. Maybe
you should fix the server problems?

Jeff
>Thanks for the response. The approach you suggest seems similar to a "check
out drawings" approach. A couple of questions:
[quoted text clipped - 43 lines]
>Message posted via AccessMonster.com
http://www.accessmonster.com/Uwe/For...ccess/200611/1
--
Message posted via AccessMonster.com
http://www.accessmonster.com/Uwe/For...ccess/200611/1

Nov 25 '06 #5

This discussion thread is closed

Replies have been disabled for this discussion.