Hallo Leutz,
ich hab da ein Problem mit meinem progi.
Hintergrund:
clients senden per winsock an den server einen string, der server nimmt diesen auf und reagiert entsprechend...
mein server nimmt im laufe der zeit etwas viel MB im speicher.
Immer wenn ein User sendet wird mehr Speicher benötigt....
habe schon einiges ausgeklammert, es MUSS an dem quelltext unten liegen !
Wo liegt der fehler ? Kann mir da einer helfen ?
Option Explicit
Dim Server, Port, User, PW, DBase, Tabelle As String
Private Connection As ADODB.Connection
Dim RS As Recordset
Dim access As Boolean
'Die eigentliche sub:
Private Sub empfang_auswerten(daten As String, ip As String)
Dim programm, userid, userpw, os As String
Dim U1,U2 As Long
Dim pos As Integer
pos = InStr(daten, ";")
programm = Left(daten, pos - 1)
daten = Right(daten, (Len(daten) - pos))
pos = InStr(daten, ";")
userid = Left(daten, pos - 1)
daten = Right(daten, (Len(daten) - pos))
pos = InStr(daten, ";")
userpw = Left(daten, pos - 1)
daten = Right(daten, (Len(daten) - pos))
pos = InStr(daten, ";")
os = Left(daten, pos - 1)
daten = Right(daten, (Len(daten) - pos))
pos = InStr(daten, ";")
U1 = Left(daten, pos - 1)
daten = Right(daten, (Len(daten) - pos))
U2 = daten
'DB Connect
On Error GoTo err_Handler
Set Connection = New ADODB.Connection
Set RS = New ADODB.Recordset
Dim SQLString As String
Dim last_use As String
access = False
Dim U3 As Long
Connection.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};" _
+ "SERVER=" & Server & ";" + "DATABASE=" & DBase & ";" + "UID=" & User & _
";PASSWORD=" & PW & ";Option=16386"
Connection.Open
SQLString = "SELECT userpw,check_1 FROM " & Tabelle & " WHERE userid = '" & _
userid & "'"
RS.Open SQLString, Connection
If (RS.Fields(0) = userpw) Then
access = True
U3 = RS.Fields(1)
End If
RS.Close
If (access) Then
'letzte Nutzung aktualisieren
last_use = Format(DateDiff("s", "01.01.1970 00:00:01", Now), "0")
SQLString = "UPDATE ........."
RS.Open SQLString, Connection
Else
Fehler.Text = "FALSCHES PW FÜR USER " & userid & vbNewLine & "Passwort: " & _
userpw
End If
Connection.Close
Set Connection = Nothing
Exit Sub
err_Handler:
Fehler.Text = " Userid: " & userid & vbNewLine & "Fehlernummer " & _
Err.Number & Chr$(13) & Error$(Err)
End Sub |