Witajcie,
Mam nietypowy problem. W jednej z tabel jest kolumna typu bytea. To co znajduje się w kolumnie to "zestawy" dwóch informacji (integer) zapisanych na dwóch bajtach każdy. Przykład:
punkty o numerach 2,3,4 (dec) o wartości: 100 (0078 hex) oraz punkty 6,7 (dec) o wartości 1220 (040C hex) każdy z nich w tej kolumnie bytea są zapisane jak poniżej (hex) - znak "|" dałem dla zobrazowania o co mi chodzi:
0002|0078|0003|0078|0004|0078|0006|04C4|0007|04C4
Dzięki interfejsowi w Delphi (firedac i TBlobField) i możliwościom
type
TSQLBytea = packed record
point: word;
value: word;
end;
w zasadzie tylko byte rzytuję na TSQLBytea i mam to co potrzebuję.
Niestety zmieniła się nieco koncepcja i to co teraz robię w delphi czyli rzutowanie byte na konkretny typ aby dowiedzieć się, który punkt i jaką wartość ten puknt ma muszę zrobić po stronie funkcji w postgresie.
No i zrobiłem mniej więcej tak jak tutaj:
https://stackoverflow.com/questions/9987215/bytea-in-postgres-storing-and-retrieving-bytes
jednak mnie to nie satysfakcjonuje, a że nie mam doświadczenia w typach w postgresql to pytanie do was forumowicze, czy udałoby się zrobić taki packed record (TSQLBytea ) w postgresie i rzutować po 4 byte na ten konkretny typ?
Może macie jakiś pomysł jak to ogarnąć inaczej? Docelowo muszę ten cały bytea podzielić na N punktów (4 byte na punkt) i zrobić insert do innej tabeli (point, value).