Dela via


SQLExecDirect-funktion

Ö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 SQLCancelHandleStatementHandle. Sedan anropades funktionen igen på StatementHandle.

Funktionen anropades och innan körningen slutfördes anropades SQLCancel eller SQLCancelHandleStatementHandle 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.

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

ODBC API-referens
ODBC-huvudfiler