Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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

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

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ß

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ß

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:)

Ja wie gesagt: Manchmal habe ich meine Gedanken irgendwie nicht bei mir. :rolleyes: :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.

  • 2 Monate später...

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

Danke

Es Klappt

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.