?
Solved

How can I prevent two applications from accessing/updating the same information in a database?

Posted on 2006-10-24
7
Medium Priority
?
265 Views
Last Modified: 2010-04-23
I am working on a VB.Net application that uses the same database as another application (Access 2000).  The problem I am having with my program is occasionally both programs try to access/update the same table(s) at the same time.  Can anyone suggest a way I can prevent that situation from happening in my program?
0
Comment
Question by:steverguy
  • 2
  • 2
  • 2
  • +1
7 Comments
 
LVL 13

Expert Comment

by:newyuppie
ID: 17801253
the subject of concurrency is very very wide to post in its entirety here. ill provide 2 useful links and maybe you can draw conclusions. or maybe you can try to narrow your question down to a specific technical problem when applying these suggestions.

http://msdn2.microsoft.com/en-US/library/cs6hb8k4.aspx
http://msdn.microsoft.com/msdnmag/issues/04/09/DataPoints/
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=232672&SiteID=1

or search the MSDN for data concurrency
0
 
LVL 21

Expert Comment

by:K V
ID: 17801534
well newyupie have posted LINKs ...
i thought let me put an idea... ;)
ok here we go...
why not use to IPC(oops !!! how come that comes into picture)

App A                               App B
------------------------------------------
Uz DB            ------>          flag set
finished uz DB ------->        flag unset

now based on flags .. it will access the db.. if SET then wait till it becomes UNSET
wanna learn IPC:- here is the link V.Ezy....  http://www.codeproject.com/Purgatory/KzIPC.asp
i found its the best way to interact betn applications ..
well if you could find any Prog. option other than this WORKING pls post...
 we were using something like  "adopendynamic/ adlockoptimistic".. try that thing.... i dont remember though :))
0
 
LVL 10

Expert Comment

by:Kinger247
ID: 17802296
Yes I agree with newyuppie, concurrency/locking is the only way to do this .. or amend the way your program operates.
Setting flags is doomed to fail :(
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 1

Author Comment

by:steverguy
ID: 17804343
I have something I want to clarify as far as the locking is concerned.  I have control over only one of the programs that uses the database.  The other program was written and compiled by another company.  Will using lock optimistic or lock pesimistic still be effective if one of those locking methods is being used by only one program?
0
 
LVL 10

Expert Comment

by:Kinger247
ID: 17804843
As far as I know, your application instructs the database to lock in a specific way. So its the database locking the tables not your app.
Thats how I understand it.
0
 
LVL 1

Author Comment

by:steverguy
ID: 17804933
Is there some way to detect whether or not the other application has locked a table or record?
0
 
LVL 13

Accepted Solution

by:
newyuppie earned 1500 total points
ID: 17805730
in most cases if you apply a concurrency locking strategy on your application, and especially if you are using 2005, it will depending on the strategy, deal with the locking automatically.
moreover, some database servers (MySQL for instance) provides row and table locking strategies as well. you can instruct MySQL to lock a table when you are reading, and/or updating it. when some other app tries to access the db, they will have to wait until you are finished with the table. same with your app, if another app has the lock on the table, you will need to wait. most of the times there is no need to have specific methods for waiting around in your application. generally you will such a strategy that your program will issue the command to the database and the database itself will handle when to run the command, like Kinger comments (once the lock is off).

its not so hard to understand if you read the proper documentation, as it is to explain months of testing and programming in 1 single answer to a very general question.

0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A while ago, I was working on a Windows Forms application and I needed a special label control with reflection (glass) effect to show some titles in a stylish way. I've always enjoyed working with graphics, but it's never too clever to re-invent …
Introduction When many people think of the WebBrowser (http://msdn.microsoft.com/en-us/library/2te2y1x6%28v=VS.85%29.aspx) control, they immediately think of a control which allows the viewing and navigation of web pages. While this is true, it's a…
Please read the paragraph below before following the instructions in the video — there are important caveats in the paragraph that I did not mention in the video. If your PaperPort 12 or PaperPort 14 is failing to start, or crashing, or hanging, …
This lesson discusses how to use a Mainform + Subforms in Microsoft Access to find and enter data for payments on orders. The sample data comes from a custom shop that builds and sells movable storage structures that are delivered to your property. …

862 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question