Floh-2001 Geschrieben 15. Juni 2009 Teilen Geschrieben 15. Juni 2009 Hallo Ich arebite mit 2 Datenbanken und da Ich sie nicht jedesmal öffnen und schliessen möchte, wäre es gut wenn das Programm das automatisch ausführt. Ich suche eine Lösung wo er mir Prüft ob die Datenbank con.open() noch offen ist oder nicht und dann je nach dem die DBF schliesst bzw. öffnet. z.b. Wenn DBF offen msgbox("DBF offen) else dbf open() msgbox("dbf wurde geöffnet") ende wer kennt da eine lösung Arbeite in vb8 Danke Markus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gateway_man Geschrieben 15. Juni 2009 Teilen Geschrieben 15. Juni 2009 Sie ist solange offen wie kein [variable].close kommt die die verbindung schließt oder es einen Timeout gibt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
grueni Geschrieben 15. Juni 2009 Teilen Geschrieben 15. Juni 2009 Hallo ... Arbeite in vb8 ... VB8 ist übrigens .NET, auch wenns nicht im Namen vorkommt. ->nach .NET verschoben Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 15. Juni 2009 Teilen Geschrieben 15. Juni 2009 sprechen wir hier von ADODB, OLEDB, ODBC? sprechen wir bei DBF von foxpro, dbase? im übrigen gilt aber das schon geschriebene: solange das mit open() geöffnete con nicht entweder mit close() geschlossen wurde, oder via null, nothing oder ähnlich zerstört wurde, und kein timeout von seiten des datenbankanbieters erfolgt, ist die verbindung offen. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 16. Juni 2009 Teilen Geschrieben 16. Juni 2009 sprechen wir hier von ADODB, OLEDB, ODBC? Ist das nicht egal?! Die Verbindungsklassen sind doch alle von System.Data.Common.DbConnection abgleitet und überschreiben somit DbConnection.State. Und wenn connection == null (nothing) ist sie so und so nicht geöffnet. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Floh-2001 Geschrieben 16. Juni 2009 Autor Teilen Geschrieben 16. Juni 2009 Danke für die Hinweise Was ich suche ist ein IF Function die mir prüft ob die Datenbank geöffnet ist. Ich schreibe ein Programm in VB8 wo Ich im Menue die Datenbank zuerst öffnen muss. Wenn Ich das nicht mache und zum Daten aufnehmen gehe bringt er mir eine Fehler Meldung das keine Datenbank geöffnet ist. Diese Fehlermeldung möchte Ich überspringen mit einer IF anweisung. Es handelt sich um eine Access Datenbank if Datenbank close then datenbank open oder direkt zum öffnen Form verweisen else programm ablauf end if Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Nightfall Geschrieben 17. Juni 2009 Teilen Geschrieben 17. Juni 2009 Keine Ahnung ob das mit VB funktioniert. Aber in C# kannste so etwas machen: try { DeineDatenbankVariable.Open(); MessageBox.Show("Datenbank wurde geöffnet!"); } catch (Exception) { MessageBox.Show("Datenbank ist schon offen!"); } Das "catch" fängt die Exception vom Code aus dem "try" ab und du kannst darauf reagieren. Gruß Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Nightfall Geschrieben 17. Juni 2009 Teilen Geschrieben 17. Juni 2009 Manchmal habe ich meine Gedanken irgendwie nicht bei mir. :upps Also da ich meinen Beitrag nicht editieren kann muss ich das nu hier schreiben. Benutz nicht die try und catch Variante! Das ist alles andere als eine gute Variante so etwas zu regeln. Die Lösung hat die der Vorposter schon gegeben. Hier: Ist das nicht egal?! Die Verbindungsklassen sind doch alle von System.Data.Common.DbConnection abgleitet und überschreiben somit DbConnection.State. Und wenn connection == null (nothing) ist sie so und so nicht geöffnet. Nu solltest du wissen was zu tun ist. Gruß Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 17. Juni 2009 Teilen Geschrieben 17. Juni 2009 Keine Ahnung ob das mit VB funktioniert. Aber in C# kannste so etwas machen: try { DeineDatenbankVariable.Open(); MessageBox.Show("Datenbank wurde geöffnet!"); } catch (Exception) { MessageBox.Show("Datenbank ist schon offen!"); } Sowas geht zwar in C# (und VB), allerdings kannst du bei einer Exception nicht sagen, dass die Datenbank bereits geöffnet ist. Wenn du einen leeren/falschen Connectionstring angibst o.Ä. wird er auch ins catch springen, die Datenbank ist zu dem Zeitpunkt aber keines Wegs geöffnet. (Nur so als Hinweis, aber hast ja selber geschrieben, dass es keine gute Variante ist. :floet:) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Nightfall Geschrieben 17. Juni 2009 Teilen Geschrieben 17. Juni 2009 Ja wie gesagt: Manchmal habe ich meine Gedanken irgendwie nicht bei mir. :upps Du hattest die Antwort auf die Frage ja schon gegeben. Nu muss sich Floh-2001 nur noch überlegen wie er das mit State macht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Floh-2001 Geschrieben 2. September 2009 Autor Teilen Geschrieben 2. September 2009 Danke für eure Hilfe, habe das Problem wie folgt gelösst. If ofd.FileName = "" Then Beep() MsgBox("Zuerst Datenbank öffnen") ofd.FileName = "" Me.Hide() Form1.Show() Exit Sub End If Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
HJST1979 Geschrieben 2. September 2009 Teilen Geschrieben 2. September 2009 So wäre der richtige Code If con.State = ConnectionState.Open Then msgbox ("DBF offen") ELSE con.Open msgbox ("DBF wurde geöffnet") End If Gruß Hans-Jörg Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Floh-2001 Geschrieben 2. September 2009 Autor Teilen Geschrieben 2. September 2009 Danke Es Klappt Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.