Im Select-Statement werden alle Felder bis auf eines aufgelistet. Dieses ist offenbar ein MemoFeld.
Wenn ich SELECT * FROM... schreibe, wird mir der Feldwert dieses Feldes nicht angezeigt,
sondern nur '(MEMO)'. http://www.lazarusforum.de/posting.php? ... f25f81907a#" onclick="window.open(this.href);return false;
Ausserdem wird nur ein Bruchteil der Datensätzte aufgelistet.
FRAGE:
Wie kann der Inhalt eines MemoFeldes dargestellt werdenhttp://www.lazarusforum.de/posting.php?mode=po ... f25f81907a#" onclick="window.open(this.href);return false;
Code: Alles auswählen
procedure TmainForm.Button3Click(Sender: TObject);
var
i, k: Integer;
S: String;
conn: TODBCConnection;
query: TSQLQuery;
transaction: TSQLTransaction;
begin
i := 0;
conn := TODBCCOnnection.Create(nil);
query := TSQLQuery.Create(nil);
transaction := TSQLTransaction.Create(nil);
try
try
conn.Transaction := transaction;
conn.Params.Add ('DBQ=C:\TheAccess.mdb');
conn.Driver := 'Microsoft Access Driver (*.mdb)';
query.DataBase := conn;
query.UsePrimaryKeyAsKey:=False;
query.SQL.Text := 'SELECT F1, F3, F4, F5 FROM TableName';
// F2 ist ein MemoFeld !!
// bei SELECT * FROM TableName tritt das o.g. Problem auf http://www.lazarusforum.de/posting.php?mode=post&f=17&sid=1d0143c7b2fe6598ccc1daf25f81907a#" onclick="window.open(this.href);return false;
query.Open;
S := '';
while not query.EOF do
begin
inc(i);
S := S + 'I >' + intToStr(i) + #13#10;
for k := 0 to query.FieldCount-1 do begin
//TODO: ConvertEncoding (S, LowerCase(DBCharset-welcher-isses-denn), 'utf8')
S := S + query.Fields.Fields[k].Text + '*'
end;
S := S + #13#10;
query.Next;
end;
finally
query.Free;
conn.Free;
end;
except
on E: Exception do
ShowMessage(E.message);
end;
ODBCMemo.Text:= S;
end;