Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Query.Fields[x] = ftBlob, ich benötige aber ftByte

  Alt 2. Jun 2022, 00:21
wirklich ftByte .... ein Byte ?

Oder meinst du eher ftBytes, bzw. ftVarBytes?
Also sowas wie CHAR und VARCHAR,
während ftBlob mehr sowas wie TEXT ist.

[edit]
Hmmm ... Byte ... Bytes ... hmmmmmmmmmmm

Zitat von Data.Bind.DBScope.pas:
mtUInteger, // TByteField, { ftByte }
ftByte doch mehr als 1 ?
[/edit]
[edit2]
Zitat:
TByteField represents a field that contains a byte value in a dataset.
TByteField encapsulates the fundamental behavior common to fields that contain byte data. Byte fields can hold values in the range 0 to 255, and are frequently used to hold small numerical values.
Doch richtig, sagt die Hilfe

ftByte kannte sie zwar, aber ohne Beschreibung dazu.
[/edit2]


Erstmal muß FireDac es auch "können" diesen Datenbank-FieldTyp in die Daten dieses Delphi-Fields zu übernehmen.
Dann brauchst du auch noch den passenden TField-Typen, zum ftBytes.

und wenn das geht:

entweder du erstellst die TField's selber
oder du mußt irgendwo den Typen registrieren.



Irgendwo gibt es Übersetzungstabellen (Arrays/Listen), in welchen drin steht, was zu wem übersetzt wird.
z.B. INTEGER -> eventuell noch ein ZwischenTyp in der DB-Komponente und noch Einer in der Datenbank-API -> ftInteger -> TIntegerField -> und zum Schluß haben besserere DBGrids bestimmt nochmal eine Übersetzung zum Column-Type




Zitat:
Das eigentliche Ziel soll sein, dass das ftByte (oder wenn es geht) auch das ftBlob in ein String umgewandelt werden muss. In den Bytes können aber alle möglichen Zeichen vorkommen, u.a auch Zeichen für Textende, so dass viele String-Operationen dann abbrechen.
Und wenn die Codepage / Codierung das nicht mag, dann raucht es ganz ab.

Wenn, dann natürlich so in einen String konvertieren, dass diese Probleme nicht auftauchen.
z.B. HEX, Base64, oder nur die "bösen" Zeichen irgendwie maskieren oder ersetzen.
$2B or not $2B

Geändert von himitsu ( 2. Jun 2022 um 01:29 Uhr)
  Mit Zitat antworten Zitat