473,406 Members | 2,843 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,406 software developers and data experts.

Synchronize drawings

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
4 1709
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
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
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
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 thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

8
by: Thomas Rademacher | last post by:
Hallo, I want to synchronize the main function of my script. I havn't a class structure in my script. def main(): # my code to synchronized if __name__=='__main__': main()
4
by: gene.ellis | last post by:
Using a web interface, I am placing text into a SQL database. From time to time, I would like to synchronize one of my other tables in the database with the table that I am inserting content into....
0
by: J. H. Lernbeiss | last post by:
Hallo! I can show Autocad drawings in a Access Form useing Autodesk Volo View Control field. But I can not print out this fields. The data of the drawing are stord on a table with path and...
8
by: Zlatko Matić | last post by:
There is a form (single form) and a combobox. I want that current record of the form is adjusted according to selected value in the combobox. Cuurrent record should be the same as the value in the...
0
by: ChadDiesel | last post by:
I have a table of parts that I would like to add a field for drawings. These drawings are image files that are on different tabs in an Excel Workbook--1 image/drawing per worksheet/tab. Most of...
7
by: ChadDiesel | last post by:
Hello everyone, I'm having a problem with Access that I need some help with. The short version is, I want to print a list of parts and part quantities that belong to a certain part group---One...
1
by: Stephen | last post by:
Hi, Is there a sample application using ASP .NET to synchronize folder contents? I want to synchronize folder contents on 2 different machines Thanks, Stephen
6
by: Fredmanglis | last post by:
I've been teaching myself the C++ Programming language. So far however, I have not come across any useful tutorials on how I can output coloured text, create drawings or graphics in C++. All I can...
1
by: phil | last post by:
Hope someone can help We need to integrate the following into our C# (.net) product. load DWG/DWF drawings from external files
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.