Hallo zusammen,
ich hatte Anfangs Probleme auf die Daten von
MySQL vernünftig zuzugreifen. Nun denke ich habe ich es geschafft jedoch besteht noch ein kleines Problem bei meinem Mehrdimensionalen Array in dem ich die Abfragen speichere. Dies ist mein Code:
Die Procedure, die die Daten ins Array schreibt:
Delphi-Quellcode:
type TFeld = array of array of String;
//::::::::::::::::::::::::::::::::::::::
Procedure TSqlVerbindung.GetErgebnis(a: TFeld);
var i, j: integer;
af: TMysql_FieldDef;
cr: integer;
begin
if assigned(FResult) then begin
if FResult.ResultType=rtStored then begin
cr := FResult.RecNo;
SetLength(a, FResult.FieldsCount+1,FResult.RowsCount+1);
for i:=0 to FResult.FieldsCount-1 do begin
af := FResult.FieldDef(i)^;
a[i+1,0] := af.Name;
end;
FResult.First;
for i:=0 to FResult.RowsCount-1 do begin
if FResult.RecNo=cr then
a[0,i+1] := '*'
else
a[0,i+1] := '';
for j:=0 to FResult.FieldsCount-1 do
a[j+1,i+1] := FResult.FieldValue(j);
FResult.Next;
end;
FResult.RecNo := cr;
end
else begin
SetLength(a, FResult.FieldsCount+1,2);
for i:=0 to FResult.FieldsCount-1 do begin
af := FResult.FieldDef(i)^;
a[i+1,0] := af.Name;
end;
for j:=0 to FResult.FieldsCount-1 do
a[j+1,1] := FResult.FieldValue(j);
end;
end;
end;
So rufe ich das ganze auf:
Delphi-Quellcode:
procedure TSQL.Button1Click(Sender: TObject);
var vSQL:Tsqlverbindung;
s:TFeld;
begin
vsql:=Tsqlverbindung.Create;
vsql.SelectDB('Kom');
vsql.SendBefehl('SELECT * FROM iuser i;');
vsql.GetErgebnis(s);
showmessage(s[1][1]);
vsql.Free;
end;
Leider bekomme ich eine Zugriffsverletzung
aber warum?
Danke für Eure Hilfe!
Delphi is ......... DELPHI!!