Access Violation at Address 00496757 in module 'Logon.exe'. Read of Address 0000001C.
Ich habe ein Programm geschrieben welches ein Kartenspiel simuliert und habe nun nach knapp nem Jahr mich mal wieder dran gesetzt nen bissi dran weiter zu schreiben da es nicht mal halb fertig ist ^.^
Na ja ... und es Gibt da einen EAccess Violation Fehler beim Datenbankzugriff. Das Programm selbst soll an der Stelle wo der Fehler auftritt eigentlich nur dasselbe tun was er schon x-mal vorher getan hat und zwar auf die Datenbank zugreifen und einen Teil davon geteilt in einzelne Variablen schreiben welche ich dann später weiter verwenden möchte.
Delphi-Quellcode:
If JoinPanel.Visible=true
THEN
begin
If Variable='
1'
THEN
begin
befehl:='
Select * FROM hackserv.GAMEIDA'+(Joiner)+'
';
query:= PChar(befehl);
mysql_real_query(_myCon,
query, length(
query));
_myRes := mysql_store_result(_myCon);
//alle Datensätze vom Server anfordern
if _myRes =
nil then
begin
ShowMessage('
Timer 5 :Es konnten keine Datensätze zurückgebenen werden. Ursache: ' + mysql_error(_myCon));
Exit; _myRes := mysql_store_result(_myCon);
//alle Datensätze vom Server anfordern
end;
end;
// SGErgebnisse einstellen
_myRow := mysql_fetch_row(_myRes);
// aktueller Datensatz der aktuellen Zeile
// FEHLER IN SPS := STR to int Access Violation ??
SPS:=strtoint(_myRow[7]);
//Augabe in der Tabelle
Label332.Caption:=_myRow[1];
//Augabe in der Tabelle
Label333.Caption:=_myRow[2];
//Augabe in der Tabelle
Label334.Caption:=_myRow[3];
//Augabe in der Tabelle
Label335.Caption:=_myRow[4];
//Augabe in der Tabelle
Label336.Caption:=_myRow[5];
//Augabe in der Tabelle
Label337.Caption:=_myRow[6];
//Augabe in der Tabelle
Label338.Caption:='
';
Label339.Caption:='
';
Label340.Caption:='
';
If strtoint(Label335.Caption)>strtoint(Label332.Caption)
THEN Label338.Caption := '
*';
If strtoint(Label336.Caption)>strtoint(Label333.Caption)
THEN Label339.Caption := '
*';
If strtoint(Label337.Caption)>strtoint(Label334.Caption)
THEN Label340.Caption := '
*';
GroupBox3.visible:=true;
befehl:='
delete from hackserv.GAMEIDT'+(Joiner)+'
WHERE Comunicator=5';
SQL_Insert(befehl);
befehl:='
delete from hackserv.GAMEIDT'+(Joiner)+'
WHERE Comunicator=3';
SQL_Insert(befehl);
If JoinPanel.visible=true
then
befehl:='
insert into hackserv.GAMEIDT'+(JoinEingabe.text)+'
(Comunicator,Dran) values (3,2)';
If WaitforPlayer.visible=true
then
befehl:='
insert into hackserv.GAMEIDT'+(ID)+'
(Comunicator,Dran) values (3,1)';
SQL_Insert(befehl);
end;
Das währe der Auszug ... den Fehler bekomme ich immer bei der zuweisung SPS := strtoint(_myRow[7]); Ich habe schon gedacht das es da irgendwelche Datentyp probleme gibt und den kompletten block deaktiviert, aber das bringt auch nichts. Ich bin mir inzwischen nicht mal mehr sicher ob es an diesem block liegt o.O Hoffe aber einfach das mir trotzdem jemand helfen kann. -.- Wie gesagt der Fehler kann auch wo anders liegen aber die zeile mit SPS ist die, in welcher er mich in die Delphi umgebung zurückschmeißt und mir den Fehler ausgibt.
Ich habe die komplette Datei einfach einmal angehängt. Währe echt super wenn mir wer helfen könnte. Da der Fehler mich langsam zum verzweifeln bringt ^.^ Aber na ja.
Mata ne Ava-chan