PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Visual Basic Datenbank



Kampi
18.04.2012, 08:29
Hallo Forum,

ich hatte vor zwei Tagen die grandiose Idee für die Firma wo ich arbeite ein kleines Visual Basic Tool zu schreiben um die Konfiguration unserer Geräte zu erleichtern (im Moment wird das mittels einer "dummen" Excel Tabelle gemacht). Mein Tool soll eine gewisse Intelligenz beinhalten und unzulässige Optionen ausblenden (z.B. zwei Filterscheiben für einen Blitz usw.).
Jetzt bin ich aber auf eine Hürde gestoßen. Und zwar gibt es in dem System mehrere verschiedene Software Versionen. Einmal für die Kamera + Rechner, dann für die Antennen, für Einschübe usw. Die Software für das dementsprechende Modul wird mittels eines Drop-Down Menüs ausgewählt. Da diese Softwareversionen immer aktualisiert werden. kann ich die ja nicht fix einprogrammieren, da dann jedesmal das Programm geändert , neu kompiliert werden und verteilt werden muss. Darum hatte ich die Idee für jedes Gerät welches eine Software benötigt eine Datenbank zu machen, wo die Softwareversionen abgelegt werden.
Das heißt ich möchte erreichen, dass wenn Anlage 1 ausgewählt ist nur die Software 1.1, 1.2, 1.3 angezeigt wird. Sobald man Anlage 2 auswählt soll in dem dazu gehörtigen Drop-Down Menü der Kamera die Software 2.1, 2.2, 2.3 erscheinen (optimal wäre es wenn man nur ein Drop-Down Menü hat wo alle Softwareversionen in abhängigkeit von dem Anlagentyp angezeigt werden, also quasi die Kamerasoftwareversionen so gefiltert werden das nur die Versionen angezeigt werden die mit der gewünschten Anlage zusammenarbeiten).
Desweiteren sollte es möglich sein, dass gewisse Personen Softwareversionen zu dieser Datenbank hinzufügen können, ohne den Code des Programms zu ändern (z.B. durch ein Textfeld und "Hinzufügen" - Button). Die Datenbank sollte deswegen Passwortgeschützt sein um unbefugten Zugang zu blockieren
Hat hier jemand schonmal mit Datenbanken in VB gearbeitet und/oder sowas ähnliches bewerkstelligt und kann mir dabei bischen unter die Arme greifen?

pin117
18.04.2012, 08:51
Ich hab nur mal ne SQL in C++ (Windows) eingebunden. Das ganze läuft vermutlich auch bei VB über einen Connector und ist kein Zuckerschlecken bis es steht. Dann aber im Prinzip straight forward zu bedienen. Da klingt der Rest Deines Vorhabens komplizierter ;)

Den Connector solltest Du bei dem DB-Anbieter finden - z.B. mySQL

Kampi
18.04.2012, 09:02
Das Problem ist ich hab keinerlei Ahnung von Datenbanken :)
Muss mich da erstmal durchlesen ^.^
Aber danke für den Hinweis! Und Visual Studio gibt es auch für C++ soweit ich gesehen habe. Deswegen sollte das auch bei Basic gehen.

pin117
18.04.2012, 09:53
Ja, ich hattes es mit Visual Studio C++ gemacht. Aber überlege Dir vorher vielleicht, ob es nicht overkill ist ;-) Eine einfache Textdatei reicht vielleicht vollkommen aus bei den wenigen Suchanfragen?! Bei SQL Datenbanken kannst/musst Du nach dem einbinden in den Code alles mit SQL-Syntax anfragen. Macht nicht wirklich spass, bzw. ist fast eine eigene Programmiersprache für sich.

Kampi
18.04.2012, 10:06
Wie funktioniert den das mit einer Textdatei?
Ich hab mich gerade mal informiert wie das abläuft wenn eine neue Software rauskommt. Es wird eine E-Mail zu einer Person geschickt das eine neue Software raus ist und das diese Software die und die Software ersetzt, aber die alte Software darf nicht einfach gelöscht werden, da manche Kunden diese noch benötigen.
Das heißt ich bräuchte ein System wo bestimmte Personen nach und nach Softwareversionen einpflegen können und mein VB Programm ließt diese Quelldatei aus und stellt die Softwareversionen in einem Drop-Down Menü da. Falls die gewählte Softwareversion als alt markiert wurde und durch neue ersetzt wurde, soll eine Warnung ausgegeben werden, sodass man die dementsprechenden Schritte einleiten kann.
Kann man sowas mit einer einfachen Textdatei machen? Wie gesagt das soll recht einfach sein und viele verschiedene Unterpunkte kommen auch nicht da rein. Wichtig ist nur das man es mit einem Passwort schützt, sodass nur bestimmte Personen die Datei ändern können.

pin117
18.04.2012, 10:12
Im Prinzip ist eine Datenbank nichts anderes als eine Textdatei - mit besserer Verteilung, damit man die Daten schneller findet. Du kannst aber genauso auch ganz simpel Dir in dem Source-Code die Daten alle brav in eine simple Textdatei legen und beim Neustart in Verkette-Listen einbinden. Ist zwar sehr rudimentär, aber bei der heutigen Performance von Computern lange ausreichend. Wie Du den Text formatierst (welche Daten wo stehen), kannst Du Dir ja selber aussuchen und somit auch gewisse Suchmöglichkeiten einbauen.

Simples Beispiel:
user001:Hans Peter#version:1.1#undsoweiter##
user002:x

Dein Sourcecode liest dann die Textdatei ein oder sucht in der zeile für Zeile durch nach den Daten die Du brauchst. Die Trennzeichen wie hier # kannst Du plump nutzen, damit Du flexible Längen der Werte nehmen kannst.

Das ist alles sehr hingefrickelt, aber wie gesagt. Bei einer "kleinen" Anforderung durchaus zu gebrauchen.

PS: Eine professionelle SQL-DB lohnt sich erst wenn Du zeitintensive Abfragen machst und viele Einträge hast. Ich würde mal geraten ab 100.000+ Datensätzen sagen. Wobei auch die in C++ zumindest schnell gelesen sind.

Kampi
18.04.2012, 10:49
Ok das hört sich zumindest leichter an als eine Datenbank.
Ich sollte vielleicht dazu sagen, dass es sich bei der ersten Version nur um ein Vorstellungsobjekt handelt (ich möchte das als Verbesserungsvorschlag einreichen).
Ob man das dann später mit einer Datenbank macht oder nicht kann man dann immernoch entscheiden. Wie gesagt erstmal soll dieses Funktionskriterium erfüllt werden und da ist es mir egal ob man dann ne Textdatei macht oder ne SQL-DB.
Eventuell kann man später dann alles über eine DB abwickeln aber mal schauen....
Die Frage ist nur....kann ich bei dieser Textdatei irgendwas einstellen das nur bestimmte Leute die öffnen können?

pin117
18.04.2012, 10:53
Machs wie Cäsar und shifte einfach die Zeichen. Oder als Binär abspeichern oder ... vielleicht reicht auch einfach verstecken etc. Aber denk an den Datenschutz und Basel II falls es für die Firma sein soll ;)

Kampi
18.04.2012, 11:24
Machs wie Cäsar und shifte einfach die Zeichen. Oder als Binär abspeichern oder ... vielleicht reicht auch einfach verstecken etc. Aber denk an den Datenschutz und Basel II falls es für die Firma sein soll ;)

Ja das ist schon klar (im Moment sind da ja keinerlei Firmeninterne Sachen drin. Für die ersten Tests habe ich einfach Dummys genommen die keinerlei Bedeutung haben. Ich will denen ja auch nur ein Prinzip vorstellen und kein 100%ig fertiges Programm :) )
Gut ich schau mal wie ich das am besten machen kann. Dank dir für die Infos.

pin117
18.04.2012, 11:26
Gern, ich löte mir hier meine neuen Bauteile zusammen und hoffe immer noch, dass mir jemand bei meinem PWM-Problem helfen kann (falls Du davon Ahnung hast?): https://www.roboternetz.de/community/threads/57575-Mit-PWM-die-Spannung-halbieren

Neutro
18.04.2012, 16:18
Vielleicht hilft dir das ja weiter, ich selber habe bislang aber noch nix mit Datenbanken gemacht.
http://openbook.galileocomputing.de/einstieg_vb_2010/einstieg_vb_2010_kap_06_003.htm#mjfd6a69525b103c50 4d3afc95ac39362b.

Gruß

Neutro

Kampi
18.04.2012, 16:59
Vielleicht hilft dir das ja weiter, ich selber habe bislang aber noch nix mit Datenbanken gemacht.
http://openbook.galileocomputing.de/einstieg_vb_2010/einstieg_vb_2010_kap_06_003.htm#mjfd6a69525b103c50 4d3afc95ac39362b.

Gruß

Neutro

Danke. Das ist super und sollte für den Anfang reichen :)

Neutro
18.04.2012, 18:00
bei uns in der Firma wird das übrigens so gemacht, das die Software sich automatsch einstellt indem ein Barcode eingescannt wird, der auf der Baugruppe angebracht ist. Somit wird immer die korrekte Software übertragen.

Gruß
Neutro

pin117
19.04.2012, 16:57
Da der Barcode ja vom Scanner als ganz normale Zahleneingabe an den Computer übertragen wird, ist das sicher leicht umzusetzten und in der Tat eine Erleichterung ;)

Kampi
21.04.2012, 17:03
Also ich habe mich jetzt doch für eine Accesdatenbank entschieden (wegen dem Passwortschutz).
Ich habe hier auch eine Anleitung bekommen wie man das am besten ohne den Windoof Provider machen kann:
http://home.arcor.de/eckardahlers/Programmer/Downloadpage/index.html