Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi wie varbinary (text) mit Delphi lesen und schreiben (https://www.delphipraxis.net/183246-wie-varbinary-text-mit-delphi-lesen-und-schreiben.html)

temi 23. Dez 2014 11:03

Datenbank: Mysql • Version: 5.5 • Zugriff über: Zeos

wie varbinary (text) mit Delphi lesen und schreiben
 
Hallo Forum,

kleine Hintergrundinfo da ich keine Erfahrung habe mit binary Typ. Und vielleicht habe ich auch einen völlig falschen Ansatz gewählt bzw. ist overkill da in dem Feld nur normale Text-Zeichen.

Ich hab hier in einer Mysql-DB ein Feld 3 Zeichen mormale Text da dieses Feld als Schlüssel verwendet wird und ich auch nach Groß- und Kleinschreibung selektieren muß, musste ich leider das Feld als Binary anlegen. Die Tabelle wird hauptsächlich von einem PHP-Skript bearbeitet und da ist es auch kein Problem. Jetzt will ich aber dieses Feld auch mit Delphi anzeigen und schreiben.

nach durchlesen von Internet bin ich auf folgenden Code gekommen leider wird nichts in meinen Richedit angezeigt

folgendes habe ich im AfterScroll Event meine Query geschrieben.

Delphi-Quellcode:
var
   ts: TStream;
   ms: TMemoryStream;
begin

  try
    ts := TStream.Create;
    ts := ZQuery1.CreateBlobStream(ZQuery1.Fieldbyname('kuerzel'),bmRead);
    try
      ms := TMemoryStream.Create;
      ts.Position := 0;
      ms.LoadFromStream(ts);
      ms.position := 0;
      RichEditID.Lines.LoadFromStream(ms);
    finally
      ms.Free
    end;
  finally
    ts.Free;
  end
end;
Vielen Dank schon mal für eure Hilfe
Micha

mkinzler 23. Dez 2014 11:08

AW: wie varbinary (text) mit Delphi lesen und schreiben
 
Und das geht mit einem normalen Textfeld(CHAR/VARCHAR) nicht?

temi 23. Dez 2014 11:14

AW: wie varbinary (text) mit Delphi lesen und schreiben
 
Zitat:

Zitat von mkinzler (Beitrag 1284503)
Und das geht mit einem normalen Textfeld(CHAR/VARCHAR) nicht?

Ah das mit dem Select muß ich nochmal ausprobieren bin jetzt nicht mehr ganz sicher.

Aber was ganz sicher nicht funktioniert ist einen unique key drüberlegen da wird nicht zwischen Groß und Kleinschreibung unterschieden nur bei Binary :( und das war glaube ich damals der eigentliche Grund das so zu machen.

Gruß
Micha

mkinzler 23. Dez 2014 11:19

AW: wie varbinary (text) mit Delphi lesen und schreiben
 
Komisches Verhalten. Auf BINARY/VARBINARY Felder kannst Du aber wohl wie auf CHAR/VARCHAR zugreifen, also ohne Stream.

https://dev.mysql.com/doc/refman/5.0...varbinary.html

temi 23. Dez 2014 11:31

AW: wie varbinary (text) mit Delphi lesen und schreiben
 
[QUOTE=mkinzler;1284506]Komisches Verhalten. Auf BINARY/VARBINARY Felder kannst Du aber wohl wie auf CHAR/VARCHAR zugreifen, also ohne Stream.

hab ich versucht aber dann steht '(Bytes)' im DBEdit
oder wenn ich query.AsString mache geht auch nicht mit AsVariant könnte es vielleicht gehen aber ich weiß nicht wie. Gibt es eine Funktion die eine Variant in einen String umwandeln kann (Delphi 6) (ich kann immer davon ausgehen das in dieser Variant ein String steht.


Gruß
Micha

mkinzler 23. Dez 2014 11:34

AW: wie varbinary (text) mit Delphi lesen und schreiben
 
VarToStr ?

temi 23. Dez 2014 12:05

AW: wie varbinary (text) mit Delphi lesen und schreiben
 
Zitat:

Zitat von mkinzler (Beitrag 1284510)

Genau das hab ich gesucht Dachte aber das gibt's in D6 nicht dabei muß man erst die Unit Variants einbinden ;)

edtID.Text := VarToStr(ZQuery1kuerzel.AsVariant);

leider gibt er mir ein ERangeError :(

Gruß Micha


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:28 Uhr.

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