Hallo Zusammen,
ich möchte gleich zu Beginn sagen, dass ich zwar Erfahrung in der Softwareentwicklung habe, allerdings neu in VB.net und Visual Studio 2017 unterwegs bin.
Man möge mir also eventuell die ein oder andere "dumme" Frage verzeihen, falls die für euch auf der Hand liegen sollte.
Ich habe in letzter Zeit sehr viel mit VB getestet und testweise "gearbeitet" und dabei sind mir ein paar Sachen aufgefallen, die ich für mich bisher nicht sauber gelöst bekomme. Deswegen ziehe ich euch mal zu Rate
1. MySQL Connection
Es ist ja hier zu einer MySQL Datenbank pro Connection nur eine Abfrage gleichzeitig möglich. Ich werde später in meinem Programm die Situation haben, dass ich eine Abfrage in der Datenbanktabelle A mache, in dieser Abfrage 2 Werte multipliziere und diesen Wert auf eine Gültigkeit in Tabelle B prüfe. Ich habe hier also keine ID Zuordnung über die ich einen Join machen könnte. Ich weiß wie ich das Problem lösen kann, das soll jetzt hier nicht die Frage sein...
Die Frage an euch ist eher: Wie handhabt ihr die Situation, wenn ihr mehrere Abfragen ausführen müsst?
Baut ihr für jede Abfrage eine neue Connection zur Datenbank auf und schließt diese dann wieder oder habt ihr andere Techniken auf Lager?
Das wäre für mich eine neue und ungewohnte Arbeitsweise. Bisher wurde beim Programmstart eine Connection aufgebaut, die bei Programmende geschlossen wurde. Das funktioniert so aber nicht, weil wenn es mal vergessen wird, die Connection zu schließen, geht gar keine Abfrage mehr durch.
Was haltet ihr von der Idee jeder Form die erstellt wird eine eigene Connection zur Verfügung zu stellen und diese beim Schließen der Form auch zu schließen?
Ich würde mir zum Einen davon erhoffen, dass ich bei mehreren geöffneten Formen die Abfragen getrennt steuern kann und zum Anderen wäre das auch ein Stück Sicherheitsmechanismus, dass falls ich mal vergessen sollte eine Connection zu schließen nicht das ganze Programm lahm gelegt ist (zB wenn ich nur bei Programmstart eine Connection aufbaue und diese beim Beenden schließe).
Das Programm wird ein reines Datenbankprogramm. Deswegen wäre es meiner Meinung nach "unnötig" für wirklich JEDE neue Abfrage eine neue Connection aufzubauen.
2. Ordnerstruktur [BEREITS ERLEDIGT]
Gibt es in Visual Basic die Möglichkeit, auf Klassen außerhalb des Projektordners zuzugreifen?
Ich hätte gerne eine Orderstruktur wie:
VB_PRJ (Ordner, indem alle Projekte mit VB liegen werden)
- GLOBAL_CLASS (Klassen, die in allen möglichen VB-Projekten genutzt werden)
- PRJ_CLASS (Klassen für einzelne Projekte)
- - Mein_Projekt (Klassen für speziell dieses Projekt)
- Mein_Projekt (Eigentlicher Projektordner)
Hintergrund der Geschichte ist, dass es zu diesem Programm noch Jobs geben wird.
Diese Jobs sollen zum Teil auf Klassen zugreifen können, die ich zur Steuerung für diese Jobs auch benötige (zB Verschlüsselung...). Wenn ich allerdings zurzeit die Klassen in GLOBAL_CLASS ablege und in VS öffne, werden diese Klassen in den Projektordner (Mein_Projekt) kopiert.
Kann ich das irgendwie umstellen oder muss ich diese dann in ein getrenntes Projekt schieben und eine DLL daraus basteln, die geladen wird?
Ich möchten nur nicht die gleichen Klassen mit den gleichen Funktionalitäten zig mal verwalten müssen... Warum versteht ihr bestimmt.
EDIT:
3. Form über Namen ansprechen [BEREITS ERLEDIGT]
Wenn ich von der Klasse einer Form zum Beispiel 3 Objekte anlege, also 3 mal die Windowsform öffne, kann ich diese dann mit einem Namen ansprechen, wenn ich diesen vorher vergeben habe?
Ich habe zum Beispiel in einem Menü folgenden Code:
Me ist in dem Fall mein Main-Fenster
Klicke ich mehrmals auf den Button, öffnet dieser mehrmals die Form -was in Zukunft auch so gewollt ist. Keine Sorge, es wird eine Begrenzung geben
Beim Start der Form wird folgender Code ausgeführt:
Dieser Code schaut in einem Array ("MeinArray") nach, ob und wie oft das Fenster bereits geöffnet ist.
Dann wird für den nächsten freien Platz der Name zum Beispiel in "Form1_7" geändert, falls das Fenster bereits 6 mal geöffnet war.
Diesen Namen habe ich auch in dem String "wAlias" gespeichert.
Zur Info:
Die 5 in "MeinArray" ist fest für diese Form in einer konstanten hinterlegt.
cForm ist die Referenz auf die soeben erstellte Form. Der Name wird auch übernommen und im Debugger angezeigt. Das geht.
Gibt es nun eine Möglichkeit, dass ich sagen kann:
...und er weiß nun, welche Form den Fokus bekommen soll?
--> Zu dem Zeitpunkt zu dem ich diesen Code benötige, ist das Fenster zwar geöffnet, aber außer dem "wAlias" und dem Namen hätte ich das Objekt nicht im Zugriff. Falls dies nicht möglich ist, müsste ich mir noch die Referenz merken
==> Das ist zurzeit nur ein Experiment.
So, das war es mal fürs Erste. Ich stöbere dann mal noch etwas durch diverse Foren und teste noch ein paar Dinge.
Es werden bestimmt noch ein paar Fragen folgen.
Vielen Dank aber schon mal für eure Hilfe.
Lg
ich möchte gleich zu Beginn sagen, dass ich zwar Erfahrung in der Softwareentwicklung habe, allerdings neu in VB.net und Visual Studio 2017 unterwegs bin.
Man möge mir also eventuell die ein oder andere "dumme" Frage verzeihen, falls die für euch auf der Hand liegen sollte.
Ich habe in letzter Zeit sehr viel mit VB getestet und testweise "gearbeitet" und dabei sind mir ein paar Sachen aufgefallen, die ich für mich bisher nicht sauber gelöst bekomme. Deswegen ziehe ich euch mal zu Rate
1. MySQL Connection
Es ist ja hier zu einer MySQL Datenbank pro Connection nur eine Abfrage gleichzeitig möglich. Ich werde später in meinem Programm die Situation haben, dass ich eine Abfrage in der Datenbanktabelle A mache, in dieser Abfrage 2 Werte multipliziere und diesen Wert auf eine Gültigkeit in Tabelle B prüfe. Ich habe hier also keine ID Zuordnung über die ich einen Join machen könnte. Ich weiß wie ich das Problem lösen kann, das soll jetzt hier nicht die Frage sein...
Die Frage an euch ist eher: Wie handhabt ihr die Situation, wenn ihr mehrere Abfragen ausführen müsst?
Baut ihr für jede Abfrage eine neue Connection zur Datenbank auf und schließt diese dann wieder oder habt ihr andere Techniken auf Lager?
Das wäre für mich eine neue und ungewohnte Arbeitsweise. Bisher wurde beim Programmstart eine Connection aufgebaut, die bei Programmende geschlossen wurde. Das funktioniert so aber nicht, weil wenn es mal vergessen wird, die Connection zu schließen, geht gar keine Abfrage mehr durch.
Was haltet ihr von der Idee jeder Form die erstellt wird eine eigene Connection zur Verfügung zu stellen und diese beim Schließen der Form auch zu schließen?
Ich würde mir zum Einen davon erhoffen, dass ich bei mehreren geöffneten Formen die Abfragen getrennt steuern kann und zum Anderen wäre das auch ein Stück Sicherheitsmechanismus, dass falls ich mal vergessen sollte eine Connection zu schließen nicht das ganze Programm lahm gelegt ist (zB wenn ich nur bei Programmstart eine Connection aufbaue und diese beim Beenden schließe).
Das Programm wird ein reines Datenbankprogramm. Deswegen wäre es meiner Meinung nach "unnötig" für wirklich JEDE neue Abfrage eine neue Connection aufzubauen.
2. Ordnerstruktur [BEREITS ERLEDIGT]
Gibt es in Visual Basic die Möglichkeit, auf Klassen außerhalb des Projektordners zuzugreifen?
Ich hätte gerne eine Orderstruktur wie:
VB_PRJ (Ordner, indem alle Projekte mit VB liegen werden)
- GLOBAL_CLASS (Klassen, die in allen möglichen VB-Projekten genutzt werden)
- PRJ_CLASS (Klassen für einzelne Projekte)
- - Mein_Projekt (Klassen für speziell dieses Projekt)
- Mein_Projekt (Eigentlicher Projektordner)
Hintergrund der Geschichte ist, dass es zu diesem Programm noch Jobs geben wird.
Diese Jobs sollen zum Teil auf Klassen zugreifen können, die ich zur Steuerung für diese Jobs auch benötige (zB Verschlüsselung...). Wenn ich allerdings zurzeit die Klassen in GLOBAL_CLASS ablege und in VS öffne, werden diese Klassen in den Projektordner (Mein_Projekt) kopiert.
Kann ich das irgendwie umstellen oder muss ich diese dann in ein getrenntes Projekt schieben und eine DLL daraus basteln, die geladen wird?
Ich möchten nur nicht die gleichen Klassen mit den gleichen Funktionalitäten zig mal verwalten müssen... Warum versteht ihr bestimmt.
EDIT:
3. Form über Namen ansprechen [BEREITS ERLEDIGT]
Wenn ich von der Klasse einer Form zum Beispiel 3 Objekte anlege, also 3 mal die Windowsform öffne, kann ich diese dann mit einem Namen ansprechen, wenn ich diesen vorher vergeben habe?
Ich habe zum Beispiel in einem Menü folgenden Code:
Me ist in dem Fall mein Main-Fenster
Klicke ich mehrmals auf den Button, öffnet dieser mehrmals die Form -was in Zukunft auch so gewollt ist. Keine Sorge, es wird eine Begrenzung geben
Beim Start der Form wird folgender Code ausgeführt:
VB.NET-Quellcode
Dieser Code schaut in einem Array ("MeinArray") nach, ob und wie oft das Fenster bereits geöffnet ist.
Dann wird für den nächsten freien Platz der Name zum Beispiel in "Form1_7" geändert, falls das Fenster bereits 6 mal geöffnet war.
Diesen Namen habe ich auch in dem String "wAlias" gespeichert.
Zur Info:
Die 5 in "MeinArray" ist fest für diese Form in einer konstanten hinterlegt.
cForm ist die Referenz auf die soeben erstellte Form. Der Name wird auch übernommen und im Debugger angezeigt. Das geht.
Gibt es nun eine Möglichkeit, dass ich sagen kann:
...und er weiß nun, welche Form den Fokus bekommen soll?
--> Zu dem Zeitpunkt zu dem ich diesen Code benötige, ist das Fenster zwar geöffnet, aber außer dem "wAlias" und dem Namen hätte ich das Objekt nicht im Zugriff. Falls dies nicht möglich ist, müsste ich mir noch die Referenz merken
==> Das ist zurzeit nur ein Experiment.
So, das war es mal fürs Erste. Ich stöbere dann mal noch etwas durch diverse Foren und teste noch ein paar Dinge.
Es werden bestimmt noch ein paar Fragen folgen.
Vielen Dank aber schon mal für eure Hilfe.
Lg
Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von „LassMichInRuhe“ ()