Hello, friends.

Assistance is required in the question indicated in the heading, if specifically, the situation is as follows: 5 years ago, a program was written that carries out the formation of electronic reports based on data from the warehouse. The programmers could not organize collective access to the databases, so they created 3 copies of the program and 3 databases with different names and the same content. When launched, the program checks all databases, updates its database and then works with it. Everything would be fine, and these crutches would go unnoticed if it were not necessary to make several more copies of the program, and specifically - 4, that is, to organize access with 7 computers. Here was the question that if earlier there were 3 checks between the databases at launch, now there will be 36 of them, which will affect both the performance and the degree of relevance of the data.

The question is: is there a website where it is stated in an accessible language how to organize collective access, preferably so that I understand, the person who writes Delphi for the second time in his life. And anyway, what are the proposals for this work, except for the obvious "stop raping the corpse"?

    2 answers 2

    "Programmers could not organize shared access to databases." And here are the programmers? They are engaged, sorry, but no other words, masturbation 5 years !!! And there is a desire to continue indefinitely!

    What means can not? The task for the student is to combine 3 + 4 PCs into a network.

    1. Only collective access (system administrator).
    2. Rewrite processing using only SQL. Delphi is easy using ADO.
    3. Transfer tables with data to the database, for example, MS SQL Server.
    4. To do business.

    Update

    As a temporary measure (until Friday). Register in the applications the path to the tables on the file server. I don’t remember if there is a transaction on Clipper, but you can get by with locks, that is, before each command that modifies the data, set the lock and remove it upon completion. But this is a road to nowhere. By the way, ODBC and OLEDB drivers support SQL for DBF. Otherwise, I would not write about it.

    • Programmers quit long ago, and I have to rake traces of life behind them. There is a network between computers, the whole problem is that this so-called program does not allow several people to work simultaneously. It is unlikely that it will be possible to transplant to SQL, since all of our databases work through Clipper, and it only supports the dbf format. The whole question is how to fix this joint by Friday with a minimum of Delphi knowledge. - andreytemn
    • It will be easier for me to rewrite all this later on java, but I don’t have time to do it until Friday. Can you recommend any source where you can read more? - andreytemn
    • In principle, using SQL, the language is not critical. But "until Friday" ... Why not use the same Clipper, changing the finished application, as I wrote above? Just can not imagine the amount of work. - Oleg53
    • Here is the catch, the whole plant works for us through Clipper, and only one department decided to improve and run a program on Delphi. It is not possible to transfer to SQL, since it will be necessary to rewrite very many programs, and it is really easier to rewrite this program on Clipper, but I’m trying to understand if it’s not ready to fix it sooner. - andreytemn
    • Here - without options, correct ready. But in the future, it’s necessary to focus not on the language, but on the DBMS. Client applications can be written on any. As for the literature, then, in general, I did not see any better than 12 Codd rules. 12 lines and everything is clear. - Oleg53

    The question is: is there a website where it is stated in an accessible language how to organize collective access, preferably so that I understand, the person who writes Delphi for the second time in his life. And anyway, what are the proposals for this work, except for the obvious "stop raping the corpse"?

    Stop raping the corpse.
    It is necessary to rewrite and software and network architecture.

    Organize a network so that N computers all see 1 server computer. N computers can at least 7, at least 25 - it doesn’t matter anymore, expand until you get tired. :)

    On the server machine to put any DBMS, FireBird, MySQL, PostgreeSQL, MariaDB, which has rights delineation and multi-user access. I listed free.

    Next, write the administrative level software, i.e. sees everyone and everything (a la boss), creates jobs for employees (login / password, reporting on employees, etc.).

    Write local software, put on the employee's computer. Everything. The employee logs in, and they all successfully work simultaneously with the base without hemorrhoids.

    PS From the listed DBMS I will recommend FireBird, since free, functional, painlessly and transparently can be taught to work in the mode of the built-in database (when the network is gone, the data goes to the user on the railway). Supports the possibility of one-time read-write to the table by different users. Extremely functional DBMS. You can also convert DBF format to FB , all you have to do is merge all the bases into one, connect and enjoy.

    • Now we have about 250 computers on the network, everything is organized through Clipper, and it works fine, well, satisfactorily. The question was, rather, not in the organization as such, but in the writing of a crutch, which will help to hold out until next year, until we fully switch to the new system. - andreytemn