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