Announcement

Collapse
No announcement yet.

XML Datenbank

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XML Datenbank

    Hallo

    Ich arbeite mit Delphi 7 Enterprise. Muss eine kleine Datenbank in Delphi entwickeln. Am liebsten möchte ich nur ein XML File dazu benützen. Die Strings in der Datenbank müssen aber unicodetauglich sein.
    Die Standartkomponenten im Delphi habe ich durch TNT Komponten ersetzt. Mit XML konnte ich bis jetzt aber noch keine Unicode Strings in Delphi v
    visualisieren.
    Ist dies überhaupt möglich?

    Danke

  • #2
    Sicherlich kann man mit Delphi auch <a href="http://www.philo.de/xml/downloads_de.shtml">Unicode in XML Dateien</a> bearbeiten.<br>
    Was für Komponenten verwendest Du den?

    Aber Du willst XML als Datenbank verwenden? Wenn Du mehr als ein paar 100 Datensätze hast, so ist XML völlig ungeeignet. Nimm doch eine Lokale Datenbank wie ADS oder TurboDB. Erfordern keine Installation sondern nur maximal ein paar Dateien im Anwendungsverzeichnis. Und damit steht dir die Welt von SQL offen

    Comment


    • #3
      Im Archiv habe ich ein schönes Beispiel gefunden. Der universelle Transformer. Folgende Komponenten werden benutzt. XMLTransformPrivider, ClientDataSetXML und Data Source.
      Mit diesem Beispiel kann ich in einem DBGrid eine xml Datenbank visualisieren.

      Ich habe den DBGrid mit einem TNTDBGrid ersetzt. Der XML Mapper versteht aber die Unicode Zeichen nicht.

      Wie kann man Unicode Strings (UTF16) in dieser Art visualisieren

      Comment


      • #4
        Ich vermute mal das die XMLTranfromProvider/ClientDatasetXML-Komponenten nicht Unicod-Fähig sind. D.h. wenn Du unbedingt Unicode auf dieser Schiene benötigst wirst Du die entsprechenden Source-Dateien patchen müssen

        Comment


        • #5
          Ich hoffe mal, das ich verstehe, was du willst. Ich habe mir jedenfalls so beholfen, das ich die Strings konvertiere.

          <pre>
          function StrToXML(s: WideString): String;
          var
          t: integer;
          i: word;
          c: WideChar;
          cs: WideString;

          begin // Konvertiert einen UNI-Code String ins XML format
          result:='';
          for t:=1 to length(s) do
          begin
          cs:=copy(s, t, 1);
          i:=ord(cs[1]); // # & < >
          if (i>127) or (i<14) or (i=35) or (i=38) or (i=60) or (i=62) then
          result:=result+'&#'+IntToStr(i)+';'
          else
          result:=result+cs;

          end;

          end;

          function XMLToStr(s: string): WideString;
          var
          p1,p2: integer;
          s2: String;

          begin
          result:='';
          s2:=s;
          p1:=Pos('&#', s2);
          while (p1>0) do
          begin
          p2:=InStr(p1+2, s2, ';');
          result:=result+copy(s2,1, p1-1) + WideChar(StrToInt(copy(s2, p1+2,p2-p1-2)));
          s2:=copy(s2 ,p2+1 ,length(s2)-p2+1);
          p1:=Pos('&#', s2);
          end;

          result:=result+s2;
          end;
          </pre&gt

          Comment


          • #6
            > Ich hoffe mal, das ich verstehe, was du willst. Ich habe mir jedenfalls so beholfen, das ich die Strings konvertiere.

            Eigentlich sollte das die Komponenten selbst machen. U.u. hast Du jetzt doppelte Kodierung und jedes andere Programm müsste diese nochmalge Codierung auch nachbauen, wenn es deine XML-Dateien lesen will

            Comment


            • #7
              Naja, ich parse selbst, und baue die XML Datei selbst zusammen. Da hab ich das problem nicht. Würde ihm zumindest helfen, wenn nur sein Prog. die Datei verwendet.
              &#10

              Comment

              Working...
              X