Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#11

Re: aus ms access db im utf-8 format einlesen

  Alt 18. Mai 2005, 12:52
Man muss richtig casten, dann klappt es mit den WideStrings.
Delphi-Quellcode:
var
   f : TField;
....
while not ADOTable1.eof do
    begin

      child:= doc.createElement('Records');
      root.appendchild(child);
      for i:=0 to ADOTable1.FieldCount-1 do
      begin
        // erst mal das aktuelle Feld in Variable merken
        f := ADOTable1.Fields[i];

        child1:=doc.createElement(f.FieldName);
        child.appendchild(child1);

        // prüfe, ob der Inhalt (NULL) ist
        if f.IsNull then
            temp := '(NULL)'

        // Sonderbehandlung für WideStringfelder
        // nur mit dem Cast kommt man an das Property Value vom Typ WideString ran
        // (evtl. ginge es auch über .AsVariant)
        // .AsString geht definitiv nicht, da .AsString immer einen Ansistring liefert
        else if f is TWideStringField then
            temp := TWideStringField(f).Value // property Value: WideString
        else
            temp := f.AsString; // für numerische Felder, usw.
       
       child1.appendChild(doc.createTextNode(UTF8encode(temp)));
      end;
    ADOTable1.Next;
    end;
Andreas
  Mit Zitat antworten Zitat