hariweb
asked on
Convert Standalone Delphi/Dbase IV to Network version
Hi All,
Greetings!
The task is to convert a Delphi (version 5) Dbase IV Standalone application to Client Server without spending a single penny for the conversion. The Delphi application uses BDE, TTable and TQuery. TTable is used extensively to navigate, edit data and also to handle indexes(AddIndex, DeleteIndex).
Suggested solution:
1. Put the database (DBF and MDX files) in a shared directory in the system meant as Server
2. Install BDE in all the client systems and point the Alias path to the shared directory on Server. Also we have to configure the BDE (things like Local Share = true, use same IDAPI32 and so on..)
This should make the application client-server type.
Following issues have to be considered:
1. How to handle the table/row locking in a Multiuser environment in a smooth manner?
2. The current code applies a Exclusive table lock before Deleting/Adding Indexes?
To handle the locking problems, I have thought of using the CLientDateSet-Provider combination (along with the famous reconcile error dialog) for each TTable and TQuery.
But, the real problems are creeping up only when I try to use the CLientDataSet instead of TTable.
For example the tTable.AddIndex/DeleteInde x - will it work from a ClientDataSet ?
Is it not related to the physical DBF file?
Is the Add/Delete index really requried since a single MDX file can hold a lot of indexes?
Is the Exclusive lock in this case really neccesary (it seems so)?
If we leave the tTable as it is for handling Index alone, what will happen when a Exclusive lock is applied for adding/deleting indexes in a multiuser environment?
Actullay, I did consider using CachedUpdates first. But, the help itself seems to recommend the CLientdataset-provider model. Should I retrace my steps and settle for CachedUpdates instead of Clientdataset? (Then I hope I do not have to bother about index handling code. But, I will have to forget the beautiful reconcile dialog (: in the bargain)
I have all these troubling questions and I am lost.
Any help and guidance is most welcome....(and I am running of time)
Greetings!
The task is to convert a Delphi (version 5) Dbase IV Standalone application to Client Server without spending a single penny for the conversion. The Delphi application uses BDE, TTable and TQuery. TTable is used extensively to navigate, edit data and also to handle indexes(AddIndex, DeleteIndex).
Suggested solution:
1. Put the database (DBF and MDX files) in a shared directory in the system meant as Server
2. Install BDE in all the client systems and point the Alias path to the shared directory on Server. Also we have to configure the BDE (things like Local Share = true, use same IDAPI32 and so on..)
This should make the application client-server type.
Following issues have to be considered:
1. How to handle the table/row locking in a Multiuser environment in a smooth manner?
2. The current code applies a Exclusive table lock before Deleting/Adding Indexes?
To handle the locking problems, I have thought of using the CLientDateSet-Provider combination (along with the famous reconcile error dialog) for each TTable and TQuery.
But, the real problems are creeping up only when I try to use the CLientDataSet instead of TTable.
For example the tTable.AddIndex/DeleteInde
Is it not related to the physical DBF file?
Is the Add/Delete index really requried since a single MDX file can hold a lot of indexes?
Is the Exclusive lock in this case really neccesary (it seems so)?
If we leave the tTable as it is for handling Index alone, what will happen when a Exclusive lock is applied for adding/deleting indexes in a multiuser environment?
Actullay, I did consider using CachedUpdates first. But, the help itself seems to recommend the CLientdataset-provider model. Should I retrace my steps and settle for CachedUpdates instead of Clientdataset? (Then I hope I do not have to bother about index handling code. But, I will have to forget the beautiful reconcile dialog (: in the bargain)
I have all these troubling questions and I am lost.
Any help and guidance is most welcome....(and I am running of time)
Besides that you should really consider a RDBMS like MSSQL, Oracle, Firebird, MySQL, ...
SOLUTION
membership
Create a free account to see this answer
Signing up is free and takes 30 seconds. No credit card required.
ASKER
Hi All,
Greetings!
Thanks very much for your inputs.
I already suggested moving to other RDBMS. But, the customer does not agree for fear of lot of changes, migration etc. So, I am forced to get along with Dbase.
Johnjces, your comments are encouraging. I will look into tDBF and get back.
Hari
Greetings!
Thanks very much for your inputs.
I already suggested moving to other RDBMS. But, the customer does not agree for fear of lot of changes, migration etc. So, I am forced to get along with Dbase.
Johnjces, your comments are encouraging. I will look into tDBF and get back.
Hari
ASKER CERTIFIED SOLUTION
membership
Create a free account to see this answer
Signing up is free and takes 30 seconds. No credit card required.
Oh yeah, I forgot: we didn't really have a solution for this one:
Backups were done on tape.
Tapes were stored next to the server.
Everything in the server room got stolen (even the tapes).
Solution:
Put an add in the paper to return a recent tape or a harddrive ...
Backups were done on tape.
Tapes were stored next to the server.
Everything in the server room got stolen (even the tapes).
Solution:
Put an add in the paper to return a recent tape or a harddrive ...
why ?
simply explained with : time is money.
someone is going to spend time on this issue in a production environment.
someone wants to get paid for his/her time.
even installing the tool i created once for just that and hitting that single button "GO"
takes 20 min to install + some time to let it run.