Megosztás:


Függvényleképezés az Illesztőprogram-kezelőben

Az illesztőprogram-kezelő két belépési pontot támogat a sztringargumentumokat használó függvényekhez. A nem dekorált függvény (SQLDriverConnect) a függvény ANSI változata. A Unicode-formátum a W (SQLDriverConnectW) karakterrel van jelölve.

Az ODBC fejléce fájl a vegyes ANSI/Unicode alkalmazások számára is támogatja az A (SQLDriverConnectA) jelzővel ellátott függvényeket kényelmesen. Az A függvényhívások valójában a díszítetlen belépési ponthoz (SQLDriverConnect) való hívások.

Ha az alkalmazást a _UNICODE #define-nal fordítják le, az ODBC fejlécfájl a nem dekorált függvényhívásokat (SQLDriverConnect) a Unicode-verzióra (SQLDriverConnectW) képezi le.

Az Illesztőprogram-kezelő Unicode-illesztőként ismer fel egy illesztőt, ha az SQLConnectW-t az illesztőprogram támogatja.

Ha az illesztőprogram Unicode-illesztőprogram, az Illesztőprogram-kezelő az alábbiak szerint indít függvényhívásokat:

  • Sztringargumentumokat vagy paramétereket nem tartalmazó függvényt továbbít közvetlenül az illesztőnek.

  • A Unicode-függvényeket (a W utótaggal együtt) közvetlenül az illesztőprogramnak adja át.

  • Egy ANSI-függvényt ( az A utótaggal együtt) Unicode-függvénysé alakít át ( w utótaggal), a sztringargumentumokat Unicode-karakterekké alakítja át, és átadja a Unicode függvényt az illesztőprogramnak.

Ha az illesztőprogram ANSI-illesztőprogram, az Illesztőprogram-kezelő a következőképpen indít függvényhívásokat:

  • Sztringargumentumok vagy paraméterek nélküli függvényeket továbbít közvetlenül az illesztőprogramnak.

  • A Unicode-függvényeket ( w utótaggal) ANSI-függvényhívássá alakítja, és átadja az illesztőprogramnak.

  • Egy ANSI-függvényt ad át közvetlenül az illesztőprogramnak.

Az Illesztőprogram-kezelő belsőleg Unicode-kompatibilis. Ennek eredményeképpen az optimális teljesítményt egy Unicode-illesztőprogrammal dolgozó Unicode-alkalmazás kapja meg, mivel az Illesztőprogram-kezelő egyszerűen átadja a Unicode-függvényeket az illesztőprogramnak. Ha egy ANSI-alkalmazás ANSI-illesztővel dolgozik, az illesztőprogram-kezelőnek az ANSI-ből Unicode-ra kell konvertálnia a sztringeket bizonyos függvények, például az SQLDriverConnect feldolgozásakor. A függvény feldolgozása után az Illesztőprogram-kezelőnek vissza kell konvertálnia a Unicode-sztringet ANSI-vé, mielőtt elküldené a függvényt az ANSI-illesztőprogramnak.

Az alkalmazás nem módosíthatja és nem olvashatja be a kötött paraméterpuffereket, amikor az illesztőprogram SQL_STILL_EXECUTING vagy SQL_NEED_DATA ad vissza. Az Illesztőprogram-kezelő az ANSI-hez kötött puffereket tartja mindaddig, amíg az illesztőprogram vissza nem tér SQL_SUCCESS, SQL_SUCCESS_WITH_INFO vagy SQL_ERROR eredménnyel. A többszálas alkalmazások nem férhetnek hozzá olyan kötött paraméterértékekhez, amelyeken egy másik szál SQL-utasítást hajt végre. Az Illesztőprogram-kezelő "helyben" konvertálja az adatokat Unicode-ból ANSI-vé, a másik szál pedig anSI-adatokat láthat ezekben a pufferekben, miközben az illesztőprogram továbbra is feldolgozta az SQL-utasítást. Azok az alkalmazások, amelyek Unicode-adatokat kötnek egy ANSI-illesztőhöz, nem köthet két különböző oszlopot ugyanahhoz a címhez.