Portál AbcLinuxu, 30. května 2024 06:17


Dotaz: SQLGUID na string a naspäť

9.5.2017 21:10 rastos | skóre: 62 | blog: rastos
SQLGUID na string a naspäť
Přečteno: 254×
Odpovědět | Admin
Pri písaní programu v C som narazil na problém: v databáze je GUID a ja ho potrebujem prečítať, uložiť ako string a neskôr použiť pri select-e. Príslušné funkcie z ODBC knižnice (v mojom prípade libiodbc) pracujú s typom SQLGUID, čo je
typedef struct tagSQLGUID
  {
    unsigned int        Data1;
    unsigned short      Data2;
    unsigned short      Data3;
    unsigned char       Data4[8];
  }
SQLGUID;
to je ale, žiaľ, nekompatibilné s uuid_t (z libuuid) takže nejde použiť uuid_parse()/uuid_unparse() (resp. ide, ale dostanem string, ktorý je iný a tomu sa chcem vyhnúť).

Nemáte niekto tip, ako elegantne urobiť prevod z SQLGUID na string a naspať?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

10.5.2017 02:25 Sten
Rozbalit Rozbalit vše Re: SQLGUID na string a naspäť
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ty části jsou jednotlivé části UUID při zápisu s pomlčkami. Převést na string to jde pomocí snprintf a zpět pomocí sscanf, přímo na uuid_t pomocí bitových masek a posunů.
10.5.2017 10:42 Ivan
Rozbalit Rozbalit vše Re: SQLGUID na string a naspäť
Odpovědět | | Sbalit | Link | Blokovat | Admin
A proc to ukladas jako string? Uloz to do DB jako RAW(16) a jeste usetris misto na disku.
10.5.2017 10:44 Ivan
Rozbalit Rozbalit vše Re: SQLGUID na string a naspäť
oprava RAW(32).
10.5.2017 22:03 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: SQLGUID na string a naspäť
Ja robím len čítajúceho klienta. Štruktúra a obsah databázy nie je v mojej moci.

Vyriešil som to cez sscanf/sprintf. Asi je to fakt najrozumnejšie riešenie.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.