Hallöle ! Ich Habe folgenden Code gebastelt:
Nun, wenn ich auf auf diesen Button klicke, funktionier alles.
Wenn ich allerdings ein zweites Mal auf den Button klicke, bekomme ich eine Zugriffsverletztung:
Ich habe die 2 neuen Treiber für mySQL 5.x und weiß trotzdem nicht weiter.
Danke, Morpheusly
..:: Edit ::..
Ok, wenn ich Close und Free weglasse und stattdessen KeepConnection auf False stelle gehts wunderbar
Code:
procedure TForm1.Button1Click(Sender: TObject); var conc: String; var I: Integer; var Connection: TSQLConnection; begin conc := 'yes'; Connection := TSQLConnection.Create(nil); Connection.DriverName := 'dbxmysql'; Connection.GetDriverFunc := 'getSQLDriverMYSQL50'; Connection.LibraryName := 'dbxopenmysql50.dll'; Connection.VendorLib := 'libmysql.dll'; Connection.Params.Append('Database=dm'); Connection.Params.Append('User_Name=root'); Connection.Params.Append('Password=---------'); Connection.Params.Append('HostName=techsm.dyndns.org'); try SQLConnection1.Open; except conc := 'no'; end; if conc = 'yes' then begin with SQLQuery1 do begin SQL.Clear; SQL.Add('SELECT * FROM user'); ExecSQL(); Open; end; {Starte Passwort-Überprüfung} for I := 0 to SQLQuery1.Fields.Count - 1 do begin if Edit1.Text = SQLQuery1.Fields.Fields[I].AsString then begin if Edit2.Text = SQLQuery1.Fields.Fields[I+1].AsString then begin ShowMessage('Richtige Daten') end else ShowMessage('Falsches Passwort'); end; end; SQLQuery1.Close; SQLQuery1.Free; end; {Setze Instanzen frei} SQLConnection1.Close; SQLConnection1.Free; end;
Wenn ich allerdings ein zweites Mal auf den Button klicke, bekomme ich eine Zugriffsverletztung:
Code:
Erste Gelegenheit für Exception bei $7C812A5B. Exception-Klasse EAccessViolation mit Meldung 'Zugriffsverletzung bei Adresse 0047784E in Modul 'Project1.exe'. Lesen von Adresse 00000000'. Prozess Project1.exe (5296)
Danke, Morpheusly
..:: Edit ::..
Ok, wenn ich Close und Free weglasse und stattdessen KeepConnection auf False stelle gehts wunderbar