Einzelnen Beitrag anzeigen

Aias

Registriert seit: 9. Nov 2012
2 Beiträge
 
#1

Zugriffsverletzung bei Versuch Datenbank-Memofeld mit TQuery zu lesen

  Alt 9. Nov 2012, 08:16
Datenbank: Access • Version: 2000 • Zugriff über: BDE
Hallo ...

ich lese mittels TQuery mehrere Access Datenbanktabellen aus, unter anderem folgende:

Delphi-Quellcode:
procedure TDBClient.SelectFeatsFromDB;
var
  query : TQuery;
  i : integer;
  feat : TFeat;
begin
  query := m_dbServer.SelectQuery('SELECT * FROM Feats');
  while not query.Eof do begin
    feat := TFeat.Create;
    feat.ID := query.Fields[0].AsInteger;
    feat.Name := query.Fields[1].AsString;
    feat.Description := query.Fields[2].AsString;
    feat.Passive := query.Fields[3].AsBoolean;
    FFeatList.AddFeat(feat);
    query.next;
  end;//while not eof
end;
das Problem ist folgendes. Hinter query.Fields[2] verbirgt sich ein Datenbankfeld vom Typ "Memo", was anscheinend zu Problemen führt, da ich bei dieser Zeile eine Zugriffsverletzung erhalte (Zugriffsverletzung bei 4DA0F40F und Zugriff auf 000002E0). Ändere ich das Datenbankfeld auf den Typ "Text" wie beispielsweise hinter query.Fields[1], dann klappts. Aber ich brauche mehr als 255 Zeichen und folglich auch den Typ Memo. Was habe ich verbrochen? Kann mir da jemand helfen?

Ich arbeite auf einem 64-bit Windows 7 System. Als Entwicklungsumgebung benutze ich zur Evaluation eine Testversion von Embarcadero Delphi XE3. Dieses kann in der Testversion nur Win32 Programme Compilieren. Sollte ja aber eigentlich auch kein Problem darstellen. Oder muss ich unter den Compiler-Optionen was ändern? Ich bin da nicht so sattelfest.

Hoffe, es weiss jemand Rat.

Besten Dank
Andreas

selbes Thema auch unter:
http://www.entwickler-ecke.de/topic_...en_110544.html
http://forum.delphi-treff.de/showthr...Query-zu-lesen

Geändert von Aias ( 9. Nov 2012 um 08:37 Uhr)
  Mit Zitat antworten Zitat