Programm um Nummern zu generieren (in verbindung mit einer Datenbank)
Wie im Topic schon beschrieben bin ich auf der Suche nach einem Programm, oder besser einer Programmiersprache, mit der sich das verwirklichen lässt.
Erklärung in Worten: Prüfmittelnummern werden benötigt (bsp. 6-stellig) - Zufällige Nummer (+1 oder ganz zufällig, egal) soll auf Knopfdruck generiert werden - Nummer soll ausgegeben werden und gleichzeitig in einer Datenbank abgespeichert werden mit der bei jedem generieren abgeglichen wird, damit jede Nummer nur 1mal vergeben wird.
Ich hoffe das war soweit verständlich.
Im Anhang die Skizze (
), wie das Programm ungefähr aussehen sollte.
Die Frage ist also: Wie lässt sich sowas am Besten / Einfachsten realisieren?
Danke schonmal für Eure Ideen.
Gruß
Erklärung in Worten: Prüfmittelnummern werden benötigt (bsp. 6-stellig) - Zufällige Nummer (+1 oder ganz zufällig, egal) soll auf Knopfdruck generiert werden - Nummer soll ausgegeben werden und gleichzeitig in einer Datenbank abgespeichert werden mit der bei jedem generieren abgeglichen wird, damit jede Nummer nur 1mal vergeben wird.
Ich hoffe das war soweit verständlich.
Im Anhang die Skizze (
), wie das Programm ungefähr aussehen sollte.Die Frage ist also: Wie lässt sich sowas am Besten / Einfachsten realisieren?
Danke schonmal für Eure Ideen.
Gruß
http://zoryfl.wmw.cc
naja programmiersprache kannst du im grunde jede verwenden die dir die möglichkeit bietet in die db reinzuschreiben und eine gui bietet (da kommen also sehr viele in frage).
einen zufallsgenerator gibts wohl auch in fast jeder gängigen programmiersprache. mit dem lässt du dir einfach eine 6 stellige nummer generieren und das machst du so lange bis du eine nummer hast die noch nicht in der datenbank steht (SELECT `id` FROM db_table WHERE `checksum`='generierteChecksumme' --> wenn keine datensatz geliefert wird ist die id eindeutig).
was natürlich zusätzlich noch geht ist, dass du das feld in der datenbank auf unique setzt, dann kannst du schonmal keine gleichen checksummen in die datenbank eintragen, weil dann alle eindeutig sein müssen.
weiters kannst du die zufallszahlenlogik natürlich auch bereits durch die datenbank erledigen lassen. hier am beispiel von mysql: http://dev.mysql.com/doc/refman/5.0/en/m…l#function_rand
du musst dich halt entscheiden welche funktionalität du wo einsetzen willst. solltest dabei denken wie streng du es machst (unique in der spalte sichert wirklich dass du auch nichts falsches reinschreiben kann) und auch an erweiterbarkeit des programms denken.
hoffe das hilft dir ein wenig.
jperl
einen zufallsgenerator gibts wohl auch in fast jeder gängigen programmiersprache. mit dem lässt du dir einfach eine 6 stellige nummer generieren und das machst du so lange bis du eine nummer hast die noch nicht in der datenbank steht (SELECT `id` FROM db_table WHERE `checksum`='generierteChecksumme' --> wenn keine datensatz geliefert wird ist die id eindeutig).
was natürlich zusätzlich noch geht ist, dass du das feld in der datenbank auf unique setzt, dann kannst du schonmal keine gleichen checksummen in die datenbank eintragen, weil dann alle eindeutig sein müssen.
weiters kannst du die zufallszahlenlogik natürlich auch bereits durch die datenbank erledigen lassen. hier am beispiel von mysql: http://dev.mysql.com/doc/refman/5.0/en/m…l#function_rand
du musst dich halt entscheiden welche funktionalität du wo einsetzen willst. solltest dabei denken wie streng du es machst (unique in der spalte sichert wirklich dass du auch nichts falsches reinschreiben kann) und auch an erweiterbarkeit des programms denken.
hoffe das hilft dir ein wenig.
jperl
Konfuzius [chinesischer Philosoph (551 - 479 v. Chr.)]
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.
Ich würde die Datenbasis in den Mittelpunkt stellen,
also erst Datensatz erstellen und dann Datensatz ausgeben (jperl gab da ne gute Anleitung).
Jetzt gibts das ungelöse praktische problem der asynchronen ID-Vergabe (Zwischen INSERT und SELECT MAX gibts weitere INSERTS).
Ich würde daher ein "LOCK TABLE" und "UNLOCK TABLE" ausführen.
Also
LOCK TABLE register
INSERT INTO register (xxx);
SELECT MA
register)
UNLOCK TABLE register;
Versuchs halt.
also erst Datensatz erstellen und dann Datensatz ausgeben (jperl gab da ne gute Anleitung).
Jetzt gibts das ungelöse praktische problem der asynchronen ID-Vergabe (Zwischen INSERT und SELECT MAX gibts weitere INSERTS).
Ich würde daher ein "LOCK TABLE" und "UNLOCK TABLE" ausführen.
Also
LOCK TABLE register
INSERT INTO register (xxx);
SELECT MA
register)UNLOCK TABLE register;
Versuchs halt.
Das sollte sich eigentlich mit fast jeder Programmier - oder Scriptsprache bewerkstelligen lassen. Egal, ob du nun PHP-cli (clientseitig ) + GTK,
Zitat
... nach einem Programm, oder besser einer Programmiersprache, mit der sich das verwirklichen lässt ...
Java,
C#,
VB,
c /c++,
und wie sie alle heißen, einsetzt.
EDIT: hoppla, da waren ja schon 2 Antworten --
Die genannte Anforderung ist so grundlegend, dass dieses prinzipiell mit nahezu jeder Programmier - und Skriptsprache möglich sein sollte (mal abgesehen von umgebungsspezifischen Sicherheitsbeschränkungen , z.B. starke Restriktionen in Browser- Umgebungen -> javascript, Java-Applets).
Die Frage ist, was du unter Datenbank verstehst und wo das Programm ausgeführt werden soll.
Meinst du mit Datenbank eine Datenbank auf einem Datenbankmanagementsystem oder eine einfache (Text-)Datei (csv, ini, xml etc...)?
Soll das Programm eher serverseitig laufen oder clientseitig?
In welcher Sprachen verfügst du über die weitesten Kenntnisse, hast also möglichst geringe Einarbeitungszeiten?
Darfst du dazu eine virtual machine oder einen Interpreter nutzen/ installieren?
Soll es möglichst Plattformunabhängig sein oder in einer klar deffinierten Umgebung laufen?
Dürfen Aus- und Eingaben über die Kommandozeile/ Shell getätigt werden oder muß und soll ein von dir gezeigtes Fenster genutzt werden?
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »ospx« (14. August 2008, 10:38)
Erstmal vielen Dank für eure Ideen und Anregungen!
Nachdem ich mich etwas schlau gemacht habe, zugegebenermaßen nur oberflächlich, habe ich mich dafür entschieden, das ganze einmal mit php-gtk zu versuchen. Macht einen recht guten Eindruck auf mich.
Die 'normalen' mySQL Aktionen via php sind dort nicht eingeschränkt, oder?
Bei aufkommenden Fragen behalte ich mir vor mich hier wieder zu melden
Nachdem ich mich etwas schlau gemacht habe, zugegebenermaßen nur oberflächlich, habe ich mich dafür entschieden, das ganze einmal mit php-gtk zu versuchen. Macht einen recht guten Eindruck auf mich.
Die 'normalen' mySQL Aktionen via php sind dort nicht eingeschränkt, oder?
Bei aufkommenden Fragen behalte ich mir vor mich hier wieder zu melden
http://zoryfl.wmw.cc
bin mir nicht sicher ob dein problem noch aktuell ist aber ich würde das mit c++ in verbindung mit msaccess db machen oder c++ und mysql connector(falls du die datenbank über internet anspechen willst)
oder schlicht mit php + mysql
MFG
PS: ich kann dir auch das programm schreiben wenn du willst
oder schlicht mit php + mysql
MFG
PS: ich kann dir auch das programm schreiben wenn du willst
Mein kleines Projekt
-Cruel Online-
-Cruel Online-
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »cccpmik« (17. September 2008, 16:40)
Ähnliche Themen
-
Archiv: Software »-
Programm zum Nummern herausfinden!
(13. November 2005, 10:53)
-
Sonstige Programmiersprachen »-
[C++]Zufallszahlen - kein richtiger Zufall
(22. Juni 2004, 19:59)
-
eigener Server »-
MySQL - lokale Installation
(12. März 2004, 14:23)
-
PHP »-
Datenbank Problem...
(18. März 2003, 21:27)
-
Datenbanken »-
verbindung zu mysql
(8. November 2002, 15:10)


