Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Eingabe Hex-Zahlen in PSQL (https://www.delphipraxis.net/120178-eingabe-hex-zahlen-psql.html)

Artur 6. Sep 2008 20:39

Datenbank: Firebird • Version: 2.1.1 • Zugriff über: Lokal / Netzwerk

Eingabe Hex-Zahlen in PSQL
 
Guten Abend,

für die Könner vermutlich eine simple Frage:

Wie gibt man Hexzahlen in Firebird PSQL ein?
Ich wollte mit bin_and(,) und einer Maske ermitteln, auf welchem Rechner die Datensätze eingegeben wurden:

SQL-Code:
  select *
  from kunden
  where (bin_and(db_guid, hexmaske) <> 0 )
Mein DB_GUID ist ein bigint, der über Trigger gefüllt wird und jeder Server hat einen anderen Startwert (z.B. 0x1000 0000 0000 0000). Aber 0x oder $ nimmt PSQL nicht an.


Ciao,

Artur

Elvis 6. Sep 2008 20:59

Re: Eingabe Hex-Zahlen in PSQL
 
Das beste wäre wohl die Octets als Parameter zu übergeben.
Wenn die UDF dem Parameter das richtige Character Set gegeben hat, sollte FB autom. Strings als OCtets nutzen.
Wenn nicht, dann wäre wohl ein Cast nötig:
SQL-Code:
select *
  from kunden
  where (bin_and(db_guid, cast(:hexmaske as char(deineLänge) Character Set Octets)) <> 0 )
Das ist jetzt ungetestet und kann sich als kompletter Blödsinn herausstellen, aber so würde ich es versuchen...
(Ich nutze kaum noch DB-spezifische Features... :oops: )

Artur 7. Sep 2008 10:09

Re: Eingabe Hex-Zahlen in PSQL
 
Hi Elvis,

Danke für die Antwort. Auf dem Weg ging es leider nicht.
Ich habe die Maske jetzt einfach als Dezimalzahl eingetragen (7FFF000000000000 = 9223090561878065152)

Das hatte ich zuert schon probiert und hatte nur übersehen, dass ich nicht FFFF 0000 0000 0000 nehmen darf (weil das dann beim BIGINT ein negativer Wert wäre).

Wünsche einen schönen Sonntag...

Ciao,

Artur


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:20 Uhr.

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-2025 by Thomas Breitkreuz