Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQLiteDB und BLOB(text) auslesen (https://www.delphipraxis.net/165993-sqlitedb-und-blob-text-auslesen.html)

Werwurm 25. Jan 2012 16:03

AW: SQLiteDB und BLOB(text) auslesen
 
Hallo DeedyH,

habe Deinen Ansatz probiert:
Delphi-Quellcode:
Var i: Integer;
  BStream: TStream;
  SStream: TStringStream;

begin
  DM.ZCon.Connect;
  DM.ZQ_Alben.SQL.Clear;
  DM.ZQ_Alben.SQL.Add('select titlesort, title from albums;');

  DM.ZQ_Alben.Open;
  DM.ZQ_Alben.First;
  ShowMessage(IntToStr(DM.ZQ_Alben.RecordCount)); // Nur um zu sehen ob DB-Verbindung läuft
  BStream := DM.ZQ_Alben.CreateBlobStream(DM.ZQ_Alben.FieldByName('title'), bmRead);

  try
    SStream := TStringStream.Create;
  try
      //SStream.Encoding.ASCII;
      //SStream.Encoding.UTF8;
      //SStream.Encoding.UTF7;
      //SStream.Encoding.Unicode;
      //SStream.Encoding.BigEndianUnicode;
      //SStream.Encoding.Default;
 // Alle Varianten bringen dasselbe Ergebnis :-(
       

      SStream.CopyFrom(BStream, 0);
      ShowMessage(SStream.DataString);
    finally
      SStream.Free;
    end;
  finally
    BStream.Free;
  end;
  DM.ZQ_Alben.Close;
  DM.ZCon.Disconnect;
end;

Leider alles mit dem selben Erfolg. Die Daten werden nach wie vor falsch ausgegeben.

Vielleicht nochmal die Frage ob andere/bessere Alternativen zu ZEOS gibt?
An der DB kann ich leider nicht ändern...

Bernhard Geyer 25. Jan 2012 16:22

AW: SQLiteDB und BLOB(text) auslesen
 
Welchen Wert hat BStream.Size?

DeddyH 25. Jan 2012 16:36

AW: SQLiteDB und BLOB(text) auslesen
 
Zur Not kann man auch hier einmal nachsehen: http://www.torry.net/quicksearchd.ph...lite&Title=Yes Das letzte Ergebnis auf der ersten Seite liest sich ganz vielversprechend.

Werwurm 25. Jan 2012 16:47

AW: SQLiteDB und BLOB(text) auslesen
 
Hallo Bernhard,

Zitat:

Welchen Wert hat BStream.Size?
Der Größe ist 15 was mit dem erwarteten Ergebnis "Only In America" übereinstimmen würde.


Den Link von DeddyH werde ich später nachlesen, da ich gerade mal kurz weg muss.

DeddyH 25. Jan 2012 16:49

AW: SQLiteDB und BLOB(text) auslesen
 
Hmm... wie ist es so?
Delphi-Quellcode:
SStream := TStringStream.Create('', TEncoding.Ansi);

Werwurm 25. Jan 2012 19:02

AW: SQLiteDB und BLOB(text) auslesen
 
DeddyH Du bist mein Held!! :-D

Code:
SStream := TStringStream.Create('', TEncoding.ASCII);
Das war das Geheimnis. Hab die ersten 30 Datensätze getestet und das Ergebnis erhalten, welches ich erwartet hab.

Jetzt versuche ich das noch zu verstehen und alles wird gut :wink:

Nur der Form halber:
Hab mir den Linkhttp://www.torry.net/quicksearchd.ph...lite&Title=Yes auch angesehen.
Du könntest Recht haben, das der letzte Eintrag was wäre.
Jedoch steht in der Beschreibung dass es sich um einen Zugriff auf SQLite3 DB handelt ich arbeite zwangsläufig mit V2.8.
Wie ich bei ZEOS schon schmerzlich feststellen musste ist der Zugriff nicht der selbe :(
Aber wie gesagt ich habe es nicht getestet..


Nochmals vielen Dank für Eure Hilfe!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:18 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz