Einzelnen Beitrag anzeigen

Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#1

Problem mit Array als Feld

  Alt 26. Mai 2008, 13:52
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!!
  Mit Zitat antworten Zitat