vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Datenbanken
Programmabbruch / Datenbankanbindung 
Autor: Dirk.B
Datum: 03.12.11 10:20

Hallo zusammen!

Ich habe mir eine Anbindung an eine SQL - Datenbank mittel VAB erstellt.
Dieses funktioniert auch soweit prima.

Es gibt alledings ein Problem und das wäre.

Habe ich mein Programm gestartet, so erscheint eine Eingabemaske (Dialogbox).

Wird diese eine gewisse Zeit nicht benutzt, so hängt sich das Programm auf und ich muß
die gesamte Anwendung in diesem Fall AutoCAD über den Task - Manager schließen, was
zum Teilmit Datenverlußt zur Folge hat.

Für mich sieht es so aus, als wenn nach einer gewissen Zeit oder wechseln zwischen Anwendungen die Datenleitung gekappt wird, und so mit das Programm hängt und nicht weiter funktioniert.

Woran könnte das liegen?
Oder könnte man in meinem Tool so eine Art Zeitschaltuhr einbauen?
Das Programm schließt automatisch nach 2 Minuten oder so?

VG

Dirk

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Programmabbruch / Datenbankanbindung 
Autor: wb-soft
Datum: 03.12.11 14:52

Hi!

Viel kann ich aus deinem Posting nicht herauslesen. Etwas mehr Details wären hilfreich.

Wenn es tatsächlich an der Datenleitung liegt, läßt sich das Problem beheben. Einfach für jede Transaktion die Verbindung auf- und abbauen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Programmabbruch / Datenbankanbindung 
Autor: Franki
Datum: 07.12.11 03:17

Hallo Dirk,

Alternativ zur Antwort die du von wb-soft schon bekommen hast:

Du schreibst dass wenn dein Programm gestartet wird sofort die Eingabemaske erscheint. Soweit so gut, aber ist denn zu diesem Zeitpunkt schon eine Verbindung zur DB aufgebaut und wenn ja warum? Es muss doch sowieso auf die Eingaben des Users gewartet werden, es reicht also völlig erst danach die Verbindung zur DB aufzubauen und dann halt die Eingeaben des Users entsprechend zu verarbeiten.

Wenn du zu diesem Zeitpunkt noch keine Verbindung zur DB hast, dann hat das eine andere Ursache. Und wenn doch, dann gibt es auch keinen Grund warum deine Anwendung nach x Minuten komplett abstürzt nur weil der User nichts tippt in der Eingabemaske. Ein Fehler tritt erst dann auf wenn der User fertig ist, dann evtl. die Verbindung nicht mehr steht, aus welchen Gründen auch immer.
Ich vermute mal, dass da noch andere Sachen bei dir im Hintergrund laufen.

Mehr Details wären da wichtig, so kann man da nicht viel zu sagen.

Gruß,
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Programmabbruch / Datenbankanbindung 
Autor: Dirk.B
Datum: 08.12.11 19:20

Hallo zusammmen!

Vielen Dank für die Infos.

Hatte schlicht weg vergessen, die Datenbankverbindung nach dem Abfüllen des ListViews wieder
zu schließen.

Dim Cn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim LItem As ListItem
 
With Cn
    .CursorLocation = xxx
    .Provider = xxx
    .ConnectionString = "Data Source= 'xxx'; Initial Catalog='xxx';User" & _
      "ID='xxx';Password='xxx'"
    .Open
End With
 
With Rs
    .CursorType = adOpenKeyset
    .LockType = adLockPessimistic
    .Open "SELECT ..........", Cn
End With
 
With ListView1
    .ListItems.Clear
    .ColumnHeaders.Clear
End With
 
With ListView1.ColumnHeaders
    .Add , , "Sachbearbeiter", 120
End With
 
On Error Resume Next
 
Do Until Rs.EOF
    Set LItem = ListView1.ListItems.Add()
    LItem.Text = (Rs!SACHBEARBEITER & "") 
    Rs.MoveNext
Loop
Rs.Close
Set Rs = Nothing
Cn.Close
Set Cn = Nothing
Oder hab ich da noch etwas, was verbessert werden könnte.

Vielen Dank noch mal.

VG

Dirk

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Programmabbruch / Datenbankanbindung 
Autor: Franki
Datum: 09.12.11 01:56

Hallo Dirk,

schreibe doch mal genau, was du unter: "Datenbankverbindung" meinst.
Es ist keineswegs notwendig die Verbindung (Cn in deinem Beispiel) jedesmal zu schliessen und neu zu öffnen.

Die Recordsets (Rs in deinem Beispiel) musst / solltest du aber nach gebrauch schliessen.

Du kannst die Cn zur DB z.B. beim Programmstart öffnen und dann im weiterem Verlauf auf diese zugreifen und per Rs damit maachen was du willst, die Rs wieder schliessen und beim Programmende die Cn zur Datenbank zu machen.

allerdings funktioniert das so in .NET nicht mehr, aber das ist ein anderes Thema, da du damit ja nicht arbeitest.

Gruß,
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel