Megosztás:


SQLDataSourceToDriver függvény

SQLDataSourceToDriver támogatja az ODBC-illesztőprogramok fordítását. Ezt a függvényt az ODBC-kompatibilis alkalmazások nem hívják meg; az alkalmazások fordítást kérnek SQLSetConnectAttr. Az SQLSetConnectAttr ConnectionHandle társított illesztőprogram meghívja a megadott DLL-t az adatforrásból az illesztőprogramba áramló összes adat fordításához. Az ODBC inicializálási fájljában megadhat egy alapértelmezett fordítási DLL-t.

Szintaxis

  
BOOL SQLDataSourceToDriver(  
     UDWORD     fOption,  
     SWORD      fSqlType,  
     PTR        rgbValueIn,  
     SDWORD     cbValueIn,  
     PTR        rgbValueOut,  
     SDWORD     cbValueOutMax,  
     SDWORD *   pcbValueOut,  
     UCHAR *    szErrorMsg,  
     SWORD      cbErrorMsgMax,  
     SWORD *    pcbErrorMsg);  

Érvek

fOption
[Bemenet] Beállítás értéke.

fSqlType
[Bemenet] Az SQL-adattípus. Ez az argumentum bemutatja az illesztőnek, hogyan konvertálhatja rgbValueIn az alkalmazás által elfogadható űrlapmá. Az érvényes SQL-adattípusok listájáért tekintse meg az SQL-adattípusok D függelék adattípusok című szakaszát.

rgbValueIn
[Bemenet] Lefordítandó érték.

cbValueIn
[Bemenet] Az rgbValueInhossza.

rgbValueOut
[Kimenet] A fordítás eredménye.

Jegyzet

A fordítási DLL nem szakítja meg null értékűre ezt az értéket.

cbValueOutMax
[Bemenet] Az rgbValueOuthossza.

pcbValueOut
[Kimenet] Az rgbValueOutvisszatéréséhez rendelkezésre álló bájtok teljes száma (a null-végződésű bájt kivételével).

Karakteres vagy bináris adatok esetén, ha ez nagyobb vagy egyenlő cbValueOutMax, akkor az rgbValueOut adatai cbValueOutMax bájtra csonkolva lesznek.

Az összes többi adattípus esetében a cbValueOutMax értéke figyelmen kívül lesz hagyva, és a fordítási DLL feltételezi, hogy az rgbValueOut mérete az fSqlType-nal megadott SQL-adattípus alapértelmezett C adattípusának mérete.

A pcbValueOut argumentum null mutató lehet.

szErrorMsg
[Kimenet] Egy hibaüzenet tárterületére mutat. Ez egy üres sztring, hacsak a fordítás nem sikerült.

cbErrorMsgMax
[Bemenet] Az szErrorMsghossza.

pcbErrorMsg
[Kimenet] Mutasson az szErrorMsgvisszatéréséhez rendelkezésre álló bájtok teljes számára (a null-végződési bájt kivételével). Ha ez nagyobb vagy egyenlő, mint cbErrorMsg, a szErrorMsg adatai csonkolva lesznek cbErrorMsgMax mínusz a null-végpont karakter. A pcbErrorMsg argumentum null mutató lehet.

Visszatér

IGAZ, ha a fordítás sikeres volt, HAMIS, ha a fordítás sikertelen volt.

Megjegyzések

Az illesztőprogram meghívja SQLDataSourceToDriver, hogy lefordítsa az adatforrásból az illesztőprogramnak átadott összes adatot (eredményhalmaz adatait, táblázatneveit, sorszámait, hibaüzeneteit stb.). Előfordulhat, hogy a fordítási DLL nem fordít le bizonyos adatokat az adatok típusától és a fordítási DLL céljától függően; A karakteradatokat egy kódlapról egy másikra fordító DLL például figyelmen kívül hagyja az összes numerikus és bináris adatot.

Az fOption értéke a vParam értékére van állítva, amely SQLSetConnectAttr meghívásával van megadva a SQL_ATTR_TRANSLATE_OPTION attribútummal. Ez egy 32 bites érték, amely meghatározott jelentéssel rendelkezik egy adott fordítási DLL-hez. Megadhat például egy bizonyos karakterkészlet-fordítást.

Ha ugyanaz a puffer van megadva rgbValueIn és rgbValueOutesetében, a pufferben lévő adatok fordítása a helyén történik.

Bár cbValueIn, cbValueOutMaxés pcbValueOut SDWORD típusúak, SQLDataSourceToDriver nem feltétlenül támogatja a hatalmas mutatókat.

Ha SQLDataSourceToDriver HAMIS értéket ad vissza, előfordulhat, hogy az adatok csonkolása történt a fordítás során. Ha pcbValueOut (a kimeneti pufferben visszaadható bájtok száma) nagyobb, mint cbValueOutMax (a kimeneti puffer hossza), akkor csonkolás történt. Az illesztőprogramnak meg kell állapítania, hogy a csonkolás elfogadható volt-e. Ha a csonkolás nem történt meg, a SQLDataSourceToDriver hamis értéket adott vissza egy másik hiba miatt. Mindkét esetben egy adott hibaüzenet jelenik meg szErrorMsg.

További információ az adatok fordításáról: fordítási DLL-ek.

További információ: Lát
Az adatforrásnak küldött adatok fordítása SQLDriverToDataSource
Kapcsolati attribútum beállításának visszaadása SQLGetConnectAttr
Kapcsolati attribútum beállítása SQLSetConnectAttr