Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
SQLDataSourceToDriver- ondersteunt vertalingen voor ODBC-stuurprogramma's. Deze functie wordt niet aangeroepen door ODBC-toepassingen; toepassingen vragen om vertaling via SQLSetConnectAttr-. Het stuurprogramma dat is gekoppeld aan de ConnectionHandle- die is opgegeven in SQLSetConnectAttr roept de opgegeven DLL aan om vertalingen uit te voeren van alle gegevens die van de gegevensbron naar het stuurprogramma stromen. Een standaard-DLL voor vertaling kan worden opgegeven in het ODBC-initialisatiebestand.
Syntaxis
BOOL SQLDataSourceToDriver(
UDWORD fOption,
SWORD fSqlType,
PTR rgbValueIn,
SDWORD cbValueIn,
PTR rgbValueOut,
SDWORD cbValueOutMax,
SDWORD * pcbValueOut,
UCHAR * szErrorMsg,
SWORD cbErrorMsgMax,
SWORD * pcbErrorMsg);
Argumenten
fOption-
[Invoer] Optiewaarde.
fSqlType-
[Invoer] Het SQL-gegevenstype. Dit argument geeft aan hoe het stuurprogramma rgbValueIn- converteert naar een formulier dat acceptabel is voor de toepassing. Zie de sectie SQL-gegevenstypen in bijlage D: Gegevenstypen voor een lijst met geldige SQL-gegevenstypen.
rgbValueIn-
[Invoer] Waarde die moet worden vertaald.
cbValueIn-
[Invoer] De lengte van rgbValueIn.
rgbValueOut-
[Uitvoer] Resultaat van de vertaling.
Notitie
De vertaal-DLL beëindigt deze waarde niet door null.
cbValueOutMax
[Invoer] Lengte van rgbValueOut-.
pcbValueOut-
[Uitvoer] Het totale aantal bytes (met uitzondering van de byte voor null-beëindiging) dat beschikbaar is om te retourneren in rgbValueOut-.
Als dit voor tekens of binaire gegevens groter is dan of gelijk is aan cbValueOutMax, worden de gegevens in rgbValueOut- afgekapt tot cbValueOutMax bytes.
Voor alle andere gegevenstypen wordt de waarde van cbValueOutMax genegeerd en wordt in de vertaal-DLL ervan uitgegaan dat de grootte van rgbValueOut- de grootte is van het standaard-C-gegevenstype van het SQL-gegevenstype dat is opgegeven met fSqlType-.
Het argument pcbValueOut kan een null-aanwijzer zijn.
szErrorMsg-
[Uitvoer] Aanwijzer naar opslag voor een foutbericht. Dit is een lege tekenreeks, tenzij de vertaling is mislukt.
cbErrorMsgMax
[Invoer] Lengte van szErrorMsg.
pcbErrorMsg
[Uitvoer] Wijs de aanwijzer naar het totale aantal bytes (met uitzondering van de byte voor null-beëindiging) dat kan worden geretourneerd in szErrorMsg-. Als dit groter is dan of gelijk is aan cbErrorMsg, worden de gegevens in szErrorMsg afgekapt tot cbErrorMsgMax min het teken null-beëindiging. Het argument pcbErrorMsg kan een null-aanwijzer zijn.
Retourneert
WAAR als de vertaling is geslaagd, ONWAAR als de vertaling is mislukt.
Opmerkingen
Het stuurprogramma roept SQLDataSourceToDriver- aan om alldata (resultatensetgegevens, tabelnamen, rijaantallen, foutberichten, enzovoort) door te geven van de gegevensbron naar het stuurprogramma. Het vertaal-DLL-bestand vertaalt mogelijk bepaalde gegevens niet, afhankelijk van het type gegevens en het doel van het dll-bestand voor vertaling; Een DLL die tekengegevens van de ene codepagina naar de andere vertaalt, negeert bijvoorbeeld alle numerieke en binaire gegevens.
De waarde van fOption- wordt ingesteld op de waarde van vParam- die is opgegeven door SQLSetConnectAttr- aan te roepen met het kenmerk SQL_ATTR_TRANSLATE_OPTION. Het is een 32-bits waarde met een specifieke betekenis voor een bepaalde vertaal-DLL. Het kan bijvoorbeeld een bepaalde tekensetomzetting opgeven.
Als dezelfde buffer is opgegeven voor rgbValueIn- en rgbValueOut-, wordt de vertaling van gegevens in de buffer uitgevoerd.
Hoewel cbValueIn, cbValueOutMaxen pcbValueOut van het type SDWORD zijn, worden SQLDataSourceToDriver- niet per se ondersteuning geboden voor enorme aanwijzers.
Als SQLDataSourceToDriver ONWAAR retourneert, is het mogelijk dat gegevens tijdens de vertaling zijn afgekapt. Als pcbValueOut (het aantal beschikbare bytes in de uitvoerbuffer) groter is dan cbValueOutMax (de lengte van de uitvoerbuffer), is afkapping opgetreden. De bestuurder moet bepalen of de afkapping acceptabel was. Als afkapping niet is opgetreden, heeft de SQLDataSourceToDrive r ONWAAR geretourneerd vanwege een andere fout. In beide gevallen wordt een specifiek foutbericht geretourneerd in szErrorMsg.
Zie Vertaal-DLL'svoor meer informatie over het vertalen van gegevens.
Verwante functies
| Voor informatie over | Zien |
|---|---|
| Gegevens vertalen die naar de gegevensbron worden verzonden | SQLDriverToDataSource- |
| De instelling van een verbindingskenmerk retourneren | SQLGetConnectAttr- |
| Een verbindingskenmerk instellen | SQLSetConnectAttr- |