Autor Téma: BLOB na string  (Přečteno 7075 krát)

Offline pepak

  • Padawan
  • ******
  • Příspěvků: 1574
  • Karma: 37
    • Pepak.net
BLOB na string
« kdy: 27-06-2012, 19:00:05 »
Moc by mě zajímalo, jestli někdo umí v Delphi napsat UDF, které by:

1) na vstupu přijímalo BLOB a beze změny (nanejvýš s oseknutím délky) ho vyplivnulo jako VARCHAR(100), za podmínky, že
2) jedno a to samé DLL musí fungovat v každé 32bitové verzi Firebirdu od 1.5 výše, a
3) jedno a to samé DLL musí fungovat v každé 64bitové verzi Firebirdu od 1.5 výše.

Já umím splnit maximálně dvě tyto podmínky :-(

Offline pepak

  • Padawan
  • ******
  • Příspěvků: 1574
  • Karma: 37
    • Pepak.net
Re:BLOB na string
« Odpověď #1 kdy: 27-06-2012, 19:15:39 »
Ještě doplním - kdyby to šlo úplně bez UDF, tak je to samozřejmě ještě lepší řešení. Ale podle mě to na takhle velkém rozpětí verzí FB nejde (tradiční CAST AS nebo SUBSTRING FROM jsou závislé na správně definovaných kódových stránkách, což je samozřejmě v zamýšlených užitích utopií očekávat).

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 3515
  • Karma: 112
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:BLOB na string
« Odpověď #2 kdy: 29-06-2012, 09:29:45 »
2) jedno a to samé DLL musí fungovat v každé 32bitové verzi Firebirdu od 1.5 výše, a
3) jedno a to samé DLL musí fungovat v každé 64bitové verzi Firebirdu od 1.5 výše.

Podle mne se 2 a 3 vzájemně vylučuje. 32bit program musí mít 32bit DLL a 64bit jen 64bit DLL. Nelze to kombinovat - omezení Windows. Jediný kdo to prý porušuje je Internet Explorer 64 bit, který prý nějak dokáže pracovat s 32bit DLL rozšířeními (za pomocí nějaké černé magie) - to jsem kdesi četl, jestli je to pravda nevím.
Embarcadero MVP - Czech republic

Offline < z >

  • Administrátoři
  • Guru
  • *****
  • Příspěvků: 1205
  • Karma: 44
    • Verze Delphi: 7, 2010
Re:BLOB na string
« Odpověď #3 kdy: 29-06-2012, 15:25:27 »
Opera ma "Out Of Process Plugins", tj. v 64bit verzi lze spoustet 32bit pluginy,
takze to asi mozne je ... jak, to ale nikdo nevi ;)

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 3515
  • Karma: 112
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:BLOB na string
« Odpověď #4 kdy: 29-06-2012, 15:40:37 »
Tipl bych, ze tam ma druhy process (32bit, ten zavede DLL) se kterym nejak komunikuje. Což ale v případě Pepáka a jeho UDF moc nepřichází v úvahu.
Embarcadero MVP - Czech republic

Offline pepak

  • Padawan
  • ******
  • Příspěvků: 1574
  • Karma: 37
    • Pepak.net
Re:BLOB na string
« Odpověď #5 kdy: 29-06-2012, 20:36:07 »
2) jedno a to samé DLL musí fungovat v každé 32bitové verzi Firebirdu od 1.5 výše, a
3) jedno a to samé DLL musí fungovat v každé 64bitové verzi Firebirdu od 1.5 výše.

Podle mne se 2 a 3 vzájemně vylučuje.
Samozřejmě. Proto jsem to napsal jako dva body, které se týkají dvou samostatných DLL. Kdybych chtěl jedno společné DLL pro 32 i 64 bitů, tak to napíšu do jednoho bodu.