Problem mit Mehrbenutzerumgebung/Server

Hallöchen,

bin noch recht neu was Visual Basic angeht, deshalb die vielleicht etwas dumme Frage. Ich soll eine Kundenverwaltung erstellen bei der mehrere Benutzer gleichzeitig die Daten lesen/ändern können.

Die Kommunikation läuft über ein TCP/IP-Netzwerk (hab ich gemacht, weil ich bezüglich SQL-Server oder ähnlichem keinerlei Ahnung habe und auch nicht die Zeit, mir das anzueignen).

Die Anfragen verarbeite ich im Serverprogramm über Klassenaufrufe, wobei ich am Anfang einfach eine (und nur eine) Instanz geschaffen habe, die die Datenbank ausliest und die Ergebnisse zurückschickt (in der TCPIP-Anwort). Funkioniert im Prinzip auch.

Mir ist aber nicht ganz klar, was passiert, wenn jetzt mehrere Aufrufe gleichzeitig verarbeitet werden müssen. Muß ich explizit jeweils eine neue Instanz schaffen (für jeden Client), die dann die entsprechenden Ergebnisse zurückliefert? Falls ja, müßte ich wohl auch so eine Art Wartschlange generieren, in der die Anfragen gespeichert und nacheinander abgearbeitet werden…

Bin für jeden Tip dankbar,

Stephan

Hallo

Ich habe mir auch mal Gedanken darüber gemacht .
Kundenverwaltung hin oder her , es handelt sich um Dateizugriff mehrerer Benutzer .

„Alle auf einmal“ geht sicher nicht .

Etwas „wildes“ wäre vielleicht möglich , beim Schreiben von Datensätzen , also eine Art Stapelei von Datensätzen .
Aber wahrscheinlich soll mal was zukommen , und dann wieder gelöscht werden .

Also muß eine Art „Behandler“ von Aufträgen her .
Das ist dann zum Beispiel eine einmalig gestartete DLL oder Exe .
Aber was passiert , wenn mehrere cgi’s , andere Scripte oder andere Anwendungen Nachrichten an das Exe oder dll senden ?
Da muß dann sichergestellt werden , das das „Behandlerprogramm“ nur einmal gestartet wurde , Nachrichten empfangen kann , und Bestätigungen zurücksendet .
Wie man das realisiert , muß ich mir aber echt selber noch mal aneignen .
MfG

Hallo Stephan,

Die Kommunikation läuft über ein TCP/IP-Netzwerk (hab ich
gemacht, weil ich bezüglich SQL-Server oder ähnlichem
keinerlei Ahnung habe und auch nicht die Zeit, mir das
anzueignen).

keine Ahnung, was Du da genau machst. Ich würde jedenfalls im Multiuser-Bereich eine Datenbank auf dem Server aufsetzen. Am billigsten ist das wohl mit mySQL (www.mysql.com). Den VB-Zugriff machst Du dann über ODBC. Den Treiber kannst Du ebenfalls bei mysql.com herunterladen.

Das ist sicher die einfachste und sicherste Option. Was Du da beschreibst, scheint mir so, als ob Du einen eigenen DB-Server entwickeln würdest. Das ist sicherlich viel aufwendiger als sich in SQL einzuarbeiten.

Der DB-Server sorgt üblicherweise selbst dafür, dass es nicht zu Kollisionen kommt. Wenn du natürlich Daten in der DB änderst, die ein anderer Nutzer gerade im Zugriff hat, musst Du das in Deiner Software abfangen.

Wenn zum Beispiel User-A die Telefonnummer für eine Adresse ändert und gleichzeitig User-B die Hausnummer für den gleichen Datensatz.

Gruß
Marian

kann ich nur zu sagen: warum einen SQL-Server neu schreiben,
wenn es den umsonst gibt. Statt MySQL würde ich aber
PostgreSQL empfehlen. Beide kostenlos auf ner Linuxkiste
zu betreiben. Für beide gibt es VB-Sources wie Du den
ODBC-Treiber ansprichst und entsprechende Tutorials
findest Du im Internet auch. Hab zwar mal irgendwo einen
Demo-Source gesehen, der genau das macht, was Du gerade
probierst, aber ist auch nur ne Pseudo-Lösung.

Alex