Autor Beitrag
Aias
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Fr 09.11.12 08:23 
Die Frage hat sich erledigt ... ich musste meinen alten Code von BDE (der anscheinend mit den Memo Probleme hat) auf ADO umstellen .. und siehe da: Problem gelöst


Hallo ...

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

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
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 in:
www.delphipraxis.net...tquery-zu-lesen.html
forum.delphi-treff.d...-mit-TQuery-zu-lesen