Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Överensstämmelse
Version introducerad: ODBC 1.0 Standardefterlevnad: ISO 92
Sammanfattning
SQLExecDirect kör en preparable-instruktion med hjälp av de aktuella värdena för parametermarkörvariablerna om det finns några parametrar i -instruktionen.
SQLExecDirect är det snabbaste sättet att skicka en SQL-instruktion för engångskörning.
Syntax
SQLRETURN SQLExecDirect(
SQLHSTMT StatementHandle,
SQLCHAR * StatementText,
SQLINTEGER TextLength);
Arguments
StatementHandle
[Indata] Instruktionshandtag.
StatementText
[Indata] SQL-instruktion som ska köras.
TextLängd
[Indata] Längden på *StatementText i tecken.
Retur
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NEED_DATA, SQL_STILL_EXECUTING, SQL_ERROR, SQL_NO_DATA, SQL_INVALID_HANDLE eller SQL_PARAM_DATA_AVAILABLE.
Diagnostik
När SQLExecDirect returnerar antingen SQL_ERROR eller SQL_SUCCESS_WITH_INFO kan ett associerat SQLSTATE-värde hämtas genom att anropa SQLGetDiagRec med en HandleType av SQL_HANDLE_STMT och ett handtag för StatementHandle. I följande tabell visas de SQLSTATE-värden som vanligtvis returneras av SQLExecDirect och förklarar var och en i kontexten för den här funktionen. notationen "(DM)" föregår beskrivningarna av SQLSTATEs som returneras av Driver Manager. Returkoden som är associerad med varje SQLSTATE-värde är SQL_ERROR, om inget annat anges.
| SQLSTATE | Error | Description |
|---|---|---|
| 01000 | Allmän varning | Informationsmeddelande för drivrutinsspecifikt. (Funktionen returnerar SQL_SUCCESS_WITH_INFO.) |
| 01001 | Marköråtgärdskonflikt |
*
StatementText innehöll en positionerad uppdaterings- eller borttagningsinstruktiv och inga rader eller fler än en rad uppdaterades eller togs bort. (Mer information om uppdateringar av fler än en rad finns i beskrivningen av attributet SQL_ATTR_SIMULATE_CURSOR iSQLSetStmtAttr.) (Funktionen returnerar SQL_SUCCESS_WITH_INFO.) |
| 01003 | NULL-värde som eliminerats i set-funktionen | Argumentet StatementText innehöll en uppsättningsfunktion (till exempel AVG, MAX, MIN och så vidare), men inte funktionen COUNT set och NULL-argumentvärden eliminerades innan funktionen tillämpades. (Funktionen returnerar SQL_SUCCESS_WITH_INFO.) |
| 01004 | Strängdata, höger trunkerade | Strängdata eller binära data som returneras för en indata-/utdata- eller utdataparameter resulterade i trunkering av icke-blanktecken eller icke-NULL-binära data. Om det var ett strängvärde trunkerades det korrekt. (Funktionen returnerar SQL_SUCCESS_WITH_INFO.) |
| 01006 | Behörigheten har inte återkallats | * StatementText innehöll en REVOKE-instruktion och användaren hade inte den angivna behörigheten. (Funktionen returnerar SQL_SUCCESS_WITH_INFO.) |
| 01007 | Behörighet har inte beviljats | *StatementText var en GRANT-instruktion och användaren kunde inte beviljas den angivna behörigheten. |
| 01S02 | Alternativvärdet har ändrats | Ett angivet instruktionsattribut var ogiltigt på grund av implementeringsarbetsförhållanden, så ett liknande värde ersattes tillfälligt. (SQLGetStmtAttr kan anropas för att avgöra vad det tillfälligt ersatta värdet är.) Ersättningsvärdet är giltigt för StatementHandle tills markören stängs, då instruktionsattributet återgår till sitt tidigare värde. De instruktionsattribut som kan ändras är: SQL_ ATTR_CONCURRENCY SQL_ ATTR_CURSOR_TYPE SQL_ ATTR_KEYSET_SIZE SQL_ ATTR_MAX_LENGTH SQL_ ATTR_MAX_ROWS SQL_ ATTR_QUERY_TIMEOUT SQL_ ATTR_SIMULATE_CURSOR (Funktionen returnerar SQL_SUCCESS_WITH_INFO.) |
| 01S07 | Fraktionell trunkering | Data som returnerades för en indata-/utdata- eller utdataparameter trunkerades så att bråkdelen av en numerisk datatyp trunkerades eller att deldelen av tidskomponenten för en tids-, tidsstämpel- eller intervalldatatyp trunkerades. (Funktionen returnerar SQL_SUCCESS_WITH_INFO.) |
| 07002 | Antal fält är felaktigt | Antalet parametrar som angavs i SQLBindParameter var mindre än antalet parametrar i SQL-instruktionen i *StatementText. SQLBindParameter anropades med ParameterValuePtr inställt på en null-pekare , StrLen_or_IndPtr inte inställt på SQL_NULL_DATA eller SQL_DATA_AT_EXEC, och InputOutputType har inte angetts till SQL_PARAM_OUTPUT, så att antalet parametrar som anges i SQLBindParameter var större än antalet parametrar i SQL-instruktionen i *StatementText. |
| 07006 | Attributöverträdelse för begränsad datatyp | Datavärdet som identifierades av argumentet ValueType i SQLBindParameter för den bundna parametern kunde inte konverteras till den datatyp som identifierades av ParameterType-argumentet i SQLBindParameter. Datavärdet som returneras för en parameter som är bunden som SQL_PARAM_INPUT_OUTPUT eller SQL_PARAM_OUTPUT kunde inte konverteras till den datatyp som identifierades av argumentet ValueType i SQLBindParameter. (Om datavärdena för en eller flera rader inte kunde konverteras men en eller flera rader returnerades returneras den här funktionen SQL_SUCCESS_WITH_INFO.) |
| 07007 | Överträdelse av begränsat parametervärde | Parametertypen SQL_PARAM_INPUT_OUTPUT_STREAM används endast för en parameter som skickar och tar emot data i delar. En indatabunden buffert tillåts inte för den här parametertypen. Det här felet uppstår när parametertypen är SQL_PARAM_INPUT_OUTPUT och när *StrLen_or_IndPtr som anges i SQLBindParameter inte är lika med SQL_NULL_DATA, SQL_DEFAULT_PARAM, SQL_LEN_DATA_AT_EXEC(len) eller SQL_DATA_AT_EXEC. |
| 07S01 | Ogiltig användning av standardparameter | Ett parametervärde som angavs med SQLBindParameter var SQL_DEFAULT_PARAM och motsvarande parameter hade inget standardvärde. |
| 08S01 | Kommunikationslänkfel | Kommunikationslänken mellan drivrutinen och datakällan som drivrutinen var ansluten till misslyckades innan funktionen slutförde bearbetningen. |
| 21S01 | Infoga värdelista matchar inte kolumnlistan | * StatementText innehöll en INSERT-instruktion och antalet värden som ska infogas matchade inte graden av den härledda tabellen. |
| 21S02 | Graden av härledd tabell matchar inte kolumnlistan | * StatementText innehöll en CREATE VIEW-instruktion och den okvalificerade kolumnlistan (antalet kolumner som angetts för vyn i sql-instruktionens kolumnidentifierarargument ) innehöll fler namn än antalet kolumner i den härledda tabellen som definierats av argumentet frågespecifikation för SQL-instruktionen . |
| 22001 | Strängdata, höger trunkering | Tilldelningen av ett tecken eller binärt värde till en kolumn resulterade i trunkering av icke-tomma teckendata eller binära data som inte är null. |
| 22002 | Indikatorvariabel krävs men tillhandahålls inte | NULL-data var bundna till en utdataparameter vars StrLen_or_IndPtr som angetts av SQLBindParameter var en null-pekare. |
| 22003 | Numeriskt värde som ligger utom intervallet |
*
StatementText innehöll en SQL-instruktion som innehöll en bunden numerisk parameter eller literal, och värdet gjorde att hela delen (i stället för bråk) av talet trunkerades när den tilldelades den associerade tabellkolumnen. Om du returnerade ett numeriskt värde (som numeriskt eller sträng) för en eller flera indata-/utdata- eller utdataparametrar skulle hela delen (i stället för bråktal) ha trunkerats. |
| 22007 | Ogiltigt datetime-format |
*
StatementText innehöll en SQL-instruktion som innehöll en datum-, tids- eller tidsstämpelstruktur som en bunden parameter, och parametern var ett ogiltigt datum, tid eller tidsstämpel. En indata-/utdata- eller utdataparameter var bunden till en C-struktur för datum, tid eller tidsstämpel, och ett värde i den returnerade parametern var ett ogiltigt datum, tid eller tidsstämpel. (Funktionen returnerar SQL_SUCCESS_WITH_INFO.) |
| 22008 | Datetime-fältspill |
*
StatementText innehöll en SQL-instruktion som innehöll ett datetime-uttryck som, när det beräknades, resulterade i en datum-, tids- eller tidsstämpelstruktur som var ogiltig. Ett datetime-uttryck som beräknats för en indata-/utdata- eller utdataparameter resulterade i en C-struktur för datum, tid eller tidsstämpel som var ogiltig. |
| 22012 | Division med noll |
*
StatementText innehöll en SQL-instruktion som innehöll ett aritmetiskt uttryck som orsakade division med noll. Ett aritmetiskt uttryck som beräknats för en indata-/utdata- eller utdataparameter resulterade i division med noll. |
| 22015 | Intervallfältsspill |
*StatementText innehöll en exakt numerisk parameter eller intervallparameter som, när den konverterades till en SQL-datatyp för intervall, orsakade förlust av betydande siffror. *StatementText innehöll en intervallparameter med fler än ett fält som, när den konverterades till en numerisk datatyp i en kolumn, inte hade någon representation i den numeriska datatypen. *StatementText innehöll parameterdata som tilldelades till en intervall-SQL-typ och det fanns ingen representation av värdet för C-typen i intervall-SQL-typen. Att tilldela en indata-/utdata- eller utdataparameter som var en exakt numerisk sql-typ eller intervall-SQL-typ till en intervall C-typ orsakade en förlust av betydande siffror. När en indata-/utdata- eller utdataparameter tilldelades en intervall C-struktur fanns det ingen representation av data i intervalldatastrukturen. |
| 22018 | Ogiltigt teckenvärde för gjuten specifikation |
*StatementText innehöll en C-typ som var en exakt eller ungefärlig numerisk, en datetime eller en intervalldatatyp. SQL-typen för kolumnen var en teckendatatyp. och värdet i kolumnen var inte en giltig literal av den bundna C-typen. När en indata-/utdata- eller utdataparameter returnerades var SQL-typen en exakt eller ungefärlig numerisk, en datetime eller en intervalldatatyp. C-typen var SQL_C_CHAR. och värdet i kolumnen var inte en giltig literal av den bundna SQL-typen. |
| 22019 | Ogiltigt escape-tecken | * StatementText innehöll en SQL-instruktion som innehöll ett LIKE-predikat med en ESCAPE i WHERE-satsen , och längden på escape-tecknet efter ESCAPE var inte lika med 1. |
| 22025 | Ogiltig escape-sekvens | * StatementText innehöll en SQL-instruktion som innehöll "LIKEpattern valueESCAPEescape character" i WHERE-satsen , och tecknet efter escape-tecknet i mönstervärdet var inte ett av "%" eller "_". |
| 23000 | Integritetsbegränsningsöverträdelse | * StatementText innehöll en SQL-instruktion som innehöll en parameter eller literal. Parametervärdet var NULL för en kolumn som definierats som NOT NULL i den associerade tabellkolumnen, ett duplicerat värde angavs för en kolumn som endast var begränsad till att innehålla unika värden eller någon annan integritetsbegränsning överträddes. |
| 24000 | Ogiltigt markörtillstånd | En markör placerades på StatementHandle av SQLFetch eller SQLFetchScroll. Det här felet returneras av Driver Manager om SQLFetch eller SQLFetchScroll inte har returnerat SQL_NO_DATA och returneras av drivrutinen om SQLFetch eller SQLFetchScroll har returnerat SQL_NO_DATA. En markör var öppen men inte placerad på StatementHandle. * StatementText innehöll en positionerad uppdaterings- eller borttagningsuttryck och markören placerades före start av resultatuppsättningen eller efter slutet av resultatuppsättningen. |
| 34000 | Ogiltigt markörnamn | * StatementText innehöll en positionerad uppdaterings- eller borttagningsinstruktor och markören som refererades till av instruktionen som kördes var inte öppen. |
| 3D000 | Ogiltigt katalognamn | Katalognamnet som angavs i StatementText var ogiltigt. |
| 3F000 | Ogiltigt schemanamn | Schemanamnet som angavs i StatementText var ogiltigt. |
| 40001 | Serialiseringsfel | Transaktionen återställdes på grund av ett resursstopp med en annan transaktion. |
| 40003 | Slutförande av instruktion okänd | Den associerade anslutningen misslyckades under körningen av den här funktionen och transaktionens tillstånd kan inte fastställas. |
| 42000 | Syntaxfel eller åtkomstöverträdelse |
*
StatementText innehöll en SQL-instruktion som inte kunde förberedas eller innehöll ett syntaxfel. Användaren hade inte behörighet att köra SQL-instruktionen i *StatementText. |
| 42S01 | Bastabellen eller vyn finns redan | * StatementText innehöll instruktionen CREATE TABLE eller CREATE VIEW och det angivna tabellnamnet eller visningsnamnet finns redan. |
| 42S02 | Det går inte att hitta bastabellen eller vyn |
*
StatementText innehöll en DROP-TABELL eller en DROP VIEW-instruktion och det angivna tabellnamnet eller vynamnet fanns inte. * StatementText innehöll en ALTER TABLE-instruktion och det angivna tabellnamnet fanns inte. * StatementText innehöll en CREATE VIEW-instruktion och ett tabellnamn eller vynamn som definierats av frågespecifikationen fanns inte. * StatementText innehöll en CREATE INDEX-instruktion och det angivna tabellnamnet fanns inte. * StatementText innehöll en GRANT - eller REVOKE-instruktion och det angivna tabellnamnet eller visningsnamnet fanns inte. * StatementText innehöll en SELECT-instruktion och ett angivet tabellnamn eller vynamn fanns inte. * StatementText innehöll instruktionenDELETE, INSERT eller UPDATE och det angivna tabellnamnet fanns inte. * StatementText innehöll en CREATE TABLE-instruktion och en tabell som angetts i en begränsning (refererar till en annan tabell än den som skapas) fanns inte. * StatementText innehöll en CREATE SCHEMA-instruktion och ett angivet tabellnamn eller vynamn fanns inte. |
| 42S11 | Indexet finns redan |
*
StatementText innehöll en CREATE INDEX-instruktion och det angivna indexnamnet fanns redan. * StatementText innehöll en CREATE SCHEMA-instruktion och det angivna indexnamnet fanns redan. |
| 42S12 | Det går inte att hitta indexet | * StatementText innehöll en DROP INDEX-instruktion och det angivna indexnamnet fanns inte. |
| 42S21 | Kolumnen finns redan | * StatementText innehöll en ALTER TABLE-instruktion och kolumnen som anges i ADD-satsen är inte unik eller identifierar en befintlig kolumn i bastabellen. |
| 42S22 | Det går inte att hitta kolumnen |
*
StatementText innehöll en CREATE INDEX-instruktion och ett eller flera av kolumnnamnen som angavs i kolumnlistan fanns inte. * StatementText innehöll en GRANT - eller REVOKE-instruktion och ett angivet kolumnnamn fanns inte. * StatementText innehöll instruktionen SELECT, DELETE, INSERT eller UPDATE och ett angivet kolumnnamn fanns inte. * StatementText innehöll en CREATE TABLE-instruktion och en kolumn som angavs i en begränsning (refererar till en annan tabell än den som skapas) fanns inte. * StatementText innehöll en CREATE SCHEMA-instruktion och ett angivet kolumnnamn fanns inte. |
| 44000 | MED KONTROLLALTERNATIVsöverträdelse | Argumentet StatementText innehöll en INSERT-instruktion som utfördes i en visad tabell eller en tabell som härleddes från den visade tabellen som skapades genom att ange ALTERNATIVET MED KONTROLL, så att en eller flera rader som påverkas av INSERT-instruktionen inte längre finns i tabellen som visas. Argumentet StatementText innehöll en UPDATE-instruktion som utfördes i en visad tabell eller en tabell som härleddes från den visade tabellen som skapades genom att ange ALTERNATIVET MED KONTROLL, så att en eller flera rader som påverkas av UPDATE-instruktionen inte längre finns i tabellen som visas. |
| HY000 | Allmänt fel | Ett fel uppstod för vilket det inte fanns någon specifik SQLSTATE och för vilken ingen implementeringsspecifik SQLSTATE definierades. Felmeddelandet som returnerades av SQLGetDiagRec i *MessageText-bufferten beskriver felet och dess orsak. |
| HY001 | Fel vid minnesallokering | Drivrutinen kunde inte allokera minne som krävs för körning eller slutförande av funktionen. |
| HY008 | Åtgärden avbröts | Asynkron bearbetning aktiverades för StatementHandle. Funktionen anropades och innan körningen slutfördes anropades SQLCancel eller SQLCancelHandle på StatementHandle. Sedan anropades funktionen igen på StatementHandle. Funktionen anropades och innan körningen slutfördes anropades SQLCancel eller SQLCancelHandle på StatementHandle från en annan tråd i ett flertrådsprogram. |
| HY009 | Ogiltig användning av null-pekare | (DM) *StatementText var en null-pekare. |
| HY010 | Funktionssekvensfel | (DM) En asynkront körande funktion anropades för anslutningshandtaget som är associerat med StatementHandle. Den här asynkrona funktionen kördes fortfarande när funktionen SQLExecDirect anropades. (DM) SQLExecute, SQLExecDirect eller SQLMoreResults anropades för StatementHandle och returnerades SQL_PARAM_DATA_AVAILABLE. Den här funktionen anropades innan data hämtades för alla strömmade parametrar. (DM) En asynkront körande funktion (inte den här) anropades för StatementHandle och kördes fortfarande när den här funktionen anropades. (DM) SQLExecute, SQLExecDirect, SQLBulkOperations eller SQLSetPos anropades för StatementHandle och returnerades SQL_NEED_DATA. Den här funktionen anropades innan data skickades för alla data-at-execution-parametrar eller kolumner. |
| HY013 | Minneshanteringsfel | Det gick inte att bearbeta funktionsanropet eftersom det inte gick att komma åt underliggande minnesobjekt, möjligen på grund av minnesbrist. |
| HY090 | Ogiltig sträng- eller buffertlängd | (DM) Argumentet TextLength var mindre än eller lika med 0 men inte lika med SQL_NTS. Ett parametervärde som angavs med SQLBindParameter var en null-pekare och parameterlängdsvärdet var inte 0, SQL_NULL_DATA, SQL_DATA_AT_EXEC, SQL_DEFAULT_PARAM eller mindre än eller lika med SQL_LEN_DATA_AT_EXEC_OFFSET. Ett parametervärde, som angetts med SQLBindParameter, var inte en null-pekare. C-datatypen var SQL_C_BINARY eller SQL_C_CHAR. och parameterlängdsvärdet var mindre än 0 men var inte SQL_NTS, SQL_NULL_DATA, SQL_DATA_AT_EXEC, SQL_DEFAULT_PARAM eller mindre än eller lika med SQL_LEN_DATA_AT_EXEC_OFFSET. Ett parameterlängdsvärde som är bundet av SQLBindParameter har angetts till SQL_DATA_AT_EXEC. SQL-typen var antingen SQL_LONGVARCHAR, SQL_LONGVARBINARY eller en lång datakällaspecifik datatyp. och SQL_NEED_LONG_DATA_LEN informationstypen i SQLGetInfo var "Y". |
| HY105 | Ogiltig parametertyp | Värdet som angavs för argumentet InputOutputType i SQLBindParameter var SQL_PARAM_OUTPUT och parametern var en indataparameter. |
| HY109 | Ogiltig markörposition | * StatementText innehöll en positionerad uppdaterings- eller borttagningsinstruktor och markören placerades (av SQLSetPos eller SQLFetchScroll) på en rad som hade tagits bort eller inte kunde hämtas. |
| HY117 | Anslutningen pausas på grund av okänt transaktionstillstånd. Endast frånkopplings- och skrivskyddade funktioner tillåts. | (DM) Mer information om pausat tillstånd finns i SQLEndTran-funktion. |
| HYC00 | Valfri funktion har inte implementerats | Kombinationen av de aktuella inställningarna för SQL_ATTR_CONCURRENCY- och SQL_ATTR_CURSOR_TYPE-instruktionsattributen stöds inte av drivrutinen eller datakällan. SQL_ATTR_USE_BOOKMARKS-instruktionsattributet har angetts till SQL_UB_VARIABLE och SQL_ATTR_CURSOR_TYPE-instruktionsattributet har angetts till en markörtyp som drivrutinen inte stöder bokmärken för. |
| HYT00 | Tidsgränsen har upphört att gälla | Tidsgränsen för frågan upphörde att gälla innan datakällan returnerade resultatuppsättningen. Tidsgränsen anges via SQLSetStmtAttr, SQL_ATTR_QUERY_TIMEOUT. |
| HYT01 | Tidsgränsen för anslutningen gick ut | Tidsgränsen för anslutningen löpte ut innan datakällan svarade på begäran. Tidsgränsen för anslutningen anges via SQLSetConnectAttr, SQL_ATTR_CONNECTION_TIMEOUT. |
| IM001 | Drivrutinen stöder inte den här funktionen | (DM) Drivrutinen som är associerad med StatementHandle stöder inte funktionen. |
| IM017 | Avsökning är inaktiverat i asynkront meddelandeläge | När meddelandemodellen används inaktiveras avsökningen. |
| IM018 | SQLCompleteAsync har inte anropats för att slutföra den tidigare asynkrona åtgärden på det här handtaget. | Om det tidigare funktionsanropet på handtaget returnerar SQL_STILL_EXECUTING och om meddelandeläget är aktiverat måste SQLCompleteAsync anropas på handtaget för att utföra efterbearbetningen och slutföra åtgärden. |
Comments
Du anropar SQLExecDirect för att skicka en SQL-instruktion till datakällan. Mer information om direktkörning finns i Direktkörning. Drivrutinen ändrar instruktionen så att den använder den form av SQL som datakällan använder och skickar den sedan till datakällan. I synnerhet ändrar drivrutinen de escape-sekvenser som används för att definiera vissa funktioner i SQL. Syntaxen för escape-sekvenser finns i Escape-sekvenser i ODBC.
Du kan inkludera en eller flera parametermarkörer i SQL-instruktionen. Om du vill inkludera en parametermarkör bäddar du in ett frågetecken (?) i SQL-instruktionen vid rätt position. Information om parametrar finns i Instruktionsparametrar.
Efter ett lyckat anrop till SQLExecDirect som returnerar en resultatuppsättning (till exempel från en SELECT-instruktion ) placeras instruktionshandtaget före den första raden i resultatuppsättningen. Du kan sedan anropa SQLFetch eller SQLFetchScroll för att hämta rader, eller anropa SQLRowCount för att fastställa antalet berörda rader för INSERT-, UPDATE- eller DELETE-instruktioner .
Om SQL-instruktionen är en SELECT-instruktion och du har anropat SQLSetCursorName för att associera en markör med en instruktion använder drivrutinen den angivna markören. Annars genererar drivrutinen ett markörnamn.
Om datakällan är i manuellt incheckningsläge (kräver explicit transaktionsinitiering) och en transaktion inte redan har initierats initierar drivrutinen en transaktion innan den skickar SQL-instruktionen. Mer information finns iManual-Commit läge.
Om du använder SQLExecDirect för att skicka en COMMIT- eller ROLLBACK-instruktion är den inte kompatibel mellan DBMS-produkter. Om du vill checka in eller återställa en transaktion anropar du SQLEndTran.
Om SQLExecDirect stöter på en data-at-execution-parameter returneras SQL_NEED_DATA. Skicka data med hjälp av SQLParamData och SQLPutData. Se SQLBindParameter, SQLParamData, SQLPutData och Skicka långa data.
Om SQLExecDirect kör en sök-, infognings- eller borttagningsinstruktion som inte påverkar några rader i datakällan returnerar anropet till SQLExecDirect SQL_NO_DATA.
Om värdet för SQL_ATTR_PARAMSET_SIZE-instruktionsattributet är större än 1 och SQL-instruktionen innehåller minst en parametermarkör, kör SQLExecDirect SQL-instruktionen en gång för varje uppsättning parametervärden från matriserna som pekas på av argumentet ParameterValuePointer i anropet till SQLBindParameter. Mer information finns i Matriser med parametervärden.
Om bokmärken är aktiverade och en fråga körs som inte stöder bokmärken bör drivrutinen försöka tvinga miljön till en som stöder bokmärken genom att ändra ett attributvärde och returnera SQLSTATE 01S02 (Alternativvärdet har ändrats). Om attributet inte kan ändras ska drivrutinen returnera SQLSTATE HY024 (ogiltigt attributvärde).
Anmärkning
När du använder anslutningspooler ska du inte köra SQL-instruktioner som ändrar databasen eller databasens kontext, till exempel instruktionen USEdatabase i SQL Server, som ändrar katalogen som används av en datakälla.
Kodexempel
Se SQLBindCol, SQLGetData och ODBC-exempelprogrammet.
Relaterade funktioner
| Mer information om | Se |
|---|---|
| Binda en buffert till en kolumn i en resultatuppsättning | SQLBindCol-funktion |
| Avbryta instruktionsbearbetning | SQLCancel-funktion |
| Köra en inchecknings- eller återställningsåtgärd | SQLEndTran-funktion |
| Köra en förberedd SQL-instruktion | SQLExecute-funktion |
| Hämtar flera rader med data | SQLFetch-funktion |
| Hämtar ett datablock eller bläddrar igenom en resultatuppsättning | SQLFetchScroll-funktion |
| Returnera ett markörnamn | SQLGetCursorName-funktion |
| Hämtar en del av eller hela en datakolumn | SQLGetData-funktion |
| Returnerar nästa parameter för att skicka data för | SQLParamData-funktion |
| Förbereda en instruktion för körning | SQLPrepare-funktion |
| Skicka parameterdata vid körning | SQLPutData-funktion |
| Ange ett markörnamn | SQLSetCursorName-funktion |
| Ange ett instruktionsattribut | SQLSetStmtAttr-funktion |