Search code examples
delphidelphi-5

Desktop Application For Centralized Database Server


I am planning to create a library related desktop application using Delphi 5, for which there would be a single database kept at one place and this application would be installed at different places more over in different cities.

Here, my doubt is Using Delphi 5, is it possible for all the instances of this application which are installed at different cities could access one centralized database? If yes then how?

If anybody is having any other ideas kindly feel free to share it. Because I have familiar to only desktop application development, that is the reason I am asking how these different instances of an application could access only one centralized database ?

So, all the screens and coding would be done using Delphi 5, moreover it would be a desktop application only the difference would be database access would be from different places.


Solution

  • That depends upon back-end database technology. By "desktop application development" u probably mean ISAM databases like Paradox, DBF-family, etc.

    If so, then you should quickly learn about SQL, its concepts, ACID principles, etc. I believe there is a lot of good books in English about SQL in general and SQL with Delphi link in particular. For staring u may try something like http://www.firebirdsql.org/en/books/, but basically you would have to cover three areas:

    • SQL in general, principles, patterns, etc
    • Details about Delphi wrt SQL designs.
    • Details about chosen database server, including components to connect it to Delphi, bugs, gotchas, etc

    I think you'd hardly find all that in one book and would have to get two or three.

    Then you would have make a network connection between clients and server. That splits to two questions.

    1. How to find server
    2. How to connect to it

    VPN are reliable solution, you may try Windows built-in methods, or simplier methods like TeamViewer, Comodo, Hamachi, etc But that can make you whole server computer exposed to your clients.

    You'd better find not whole-featured network, but a tunnel that would connect clients for database server and nothing else. In russian comunity classic solution to Firebird/Interbase family is http://sf.net/projects/zebedee for Windows. For Linux SSH is usually used. You probably can find a lot of FAQ in English if you google for "tunneling" and you database server of Choice.