ODBC接口参考
SQLAllocHandle
描述:用于分配ODBC的句柄。
接口:
SQLRETURN SQL_API SQLAllocHandle(SQLSMALLINT HandleType, SQLHANDLE InputHandle, SQLHANDLE *OutputHandle)
输入参数:
- HandleType,待分配的句柄类型(SQL_HANDLE_ENV,SQL_HANDLE_DBC,SQL_HANDLE_STMT)。
- InputHandle,依赖句柄。
输出参数:
OutputHandle,分配的句柄。
返回值:
- SQL_SUCCESS:成功。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLAllocEnv
描述:用于分配ODBC的环境句柄。
接口:
SQLRETURN SQL_API SQLAllocEnv(SQLHENV *EnvironmentHandle)
输出参数:
EnvironmentHandle,分配到的句柄。
返回值:
- SQL_SUCCESS:成功。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLAllocConnect
描述:用于分配ODBC的链接句柄。
接口:
SQLRETURN SQL_API SQLAllocConnect(SQLHENV EnvironmentHandle, SQLHDBC *ConnectionHandle)
输入参数:
EnvironmentHandle,环境句柄。
输出参数:
ConnectionHandle,分配到的链接句柄。
返回值:
- SQL_SUCCESS:成功。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLAllocStmt
描述:用于分配ODBC的执行句柄。
接口:
SQLRETURN SQL_API SQLAllocStmt(SQLHDBC ConnectionHandle, SQLHSTMT *StatementHandle)
输入参数:
ConnectionHandle,链接句柄。
输出参数:
StatementHandle,分配到的执行句柄。
返回值:
- SQL_SUCCESS:成功。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLFreeHandle
描述:用于释放ODBC的句柄。
接口:
SQLRETURN SQL_API SQLFreeHandle(SQLSMALLINT HandleType, SQLHANDLE Handle)
输入参数:
- HandleType,待释放的句柄类型(SQL_HANDLE_ENV,SQL_HANDLE_DBC,SQL_HANDLE_STMT)。
- Handle,句柄。
返回值:
- SQL_SUCCESS:成功。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLFreeEnv
描述:用于释放ODBC的环境句柄。
接口:
SQLRETURN SQL_API SQLFreeEnv(SQLHENV EnvironmentHandle)
输入参数:
EnvironmentHandle,待释放的环境句柄。
返回值:
- SQL_SUCCESS:成功。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLFreeConnect
描述:用于释放ODBC的链接句柄。
接口:
SQLRETURN SQL_API SQLFreeConnect(SQLHDBC ConnectionHandle)
输入参数:
ConnectionHandle,待释放的链接句柄。
返回值:
- SQL_SUCCESS:成功。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLFreeStmt
描述:用于释放ODBC的执行句柄。
接口:
SQLRETURN SQL_API SQLFreeStmt(SQLHSTMT StatementHandle, SQLUSMALLINT Option)
输入参数:
- StatementHandle,待释放的执行句柄。
- Option,释放的类型(SQL_DROP)。
返回值:
- SQL_SUCCESS:成功。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLSetEnvAttr
描述:用于设置ODBC的环境句柄属性。
接口:
SQLRETURN SQL_API SQLSetEnvAttr(SQLHENV EnvironmentHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength)
输入参数:
- EnvironmentHandle,待设置环境句柄。
- Attribute,待设置的属性名称(SQL_ATTR_ODBC_VERSION,SQL_ATTR_OUTPUT_NTS)。
- Value,待设置的属性值。
- StringLength,属性值的长度。
返回值:
- SQL_SUCCESS:成功。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLSetConnectAttr
描述:用于设置ODBC的链接句柄属性。
接口:
SQLRETURN SQL_API SQLSetConnectAttr(SQLHDBC ConnectionHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength)
输入参数:
- ConnectionHandle,待设置链接句柄。
- Attribute,待设置的属性名称(SQL_ATTR_AUTOCOMMIT,SQL_ATTR_LOGIN_TIMEOUT,SQL_ATTR_CONNECTION_TIMEOUT)。
- Value,待设置的属性值。
- StringLength,属性值的长度。
返回值:
- SQL_SUCCESS:成功。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLSetStmtAttr
描述:用于设置ODBC的执行句柄属性。
接口:
SQLRETURN SQL_API SQLSetStmtAttr(SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength)
输入参数:
- StatementHandle,待设置执行句柄。
- Attribute,待设置的属性名称(SQL_ATTR_PARAMSET_SIZE)。
- Value,待设置的属性值。
- StringLength,属性值的长度。
返回值:
- SQL_SUCCESS:成功。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLConnect
描述:使用链接句柄链接数据源。
接口:
SQLRETURN SQL_API SQLConnect(SQLHDBC ConnectionHandle, SQLCHAR *ServerName, SQLSMALLINT NameLength1, SQLCHAR *UserName, SQLSMALLINT NameLength2, SQLCHAR *Authentication, SQLSMALLINT NameLength3)
输入参数:
- ConnectionHandle,链接句柄。
- ServerName,ODBC配置的数据源名称。
- NameLength1,数据源名称长度。
- UserName,链接数据源使用的用户名。
- NameLength2,用户名长度。
- Authentication,链接数据源使用的密码。
- NameLength3,密码长度。
返回值:
- SQL_SUCCESS:成功。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLDisconnect
描述:断开和数据源的链接。
接口:
SQLRETURN SQL_API SQLDisconnect(SQLHDBC ConnectionHandle)
输入参数:
ConnectionHandle,链接句柄。
返回值:
- SQL_SUCCESS:成功。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLDriverConnect
描述:使用链接句柄链接数据源。
接口:
SQLRETURN SQL_API SQLDriverConnect( SQLHDBC hdbc, SQLHWND hwnd, SQLCHAR *szConnStrIn, SQLSMALLINT cbConnStrIn, SQLCHAR *szConnStrOut, SQLSMALLINT cbConnStrOutMax, SQLSMALLINT *pcbConnStrOut, SQLUSMALLINT fDriverCompletion)
输入参数:
- hdbc,链接句柄。
- hwnd,链接交互界面句柄(暂时不用)。
- szConnStrIn,数据源链接串。
- cbConnStrIn,数据源链接串长度。
- cbConnStrOutMax,输出链接串缓冲区长度。
- fDriverCompletion,链接选项(SQL_DRIVER_PROMPT,SQL_DRIVER_NOPROMPT,SQL_DRIVER_COMPLETE,SQL_DRIVER_COMPLETE_REQUIRED)。
输出参数:
- szConnStrOut,输出链接串。
- pcbConnStrOut,输出链接串实际使用长度。
返回值:
- SQL_SUCCESS:成功。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLPrepare
描述:准备要执行的SQL语句。
接口:
SQLRETURN SQL_API SQLPrepare(SQLHSTMT StatementHandle, SQLCHAR *StatementText, SQLINTEGER TextLength)
输入参数:
- StatementHandle,执行句柄。
- StatementText,SQL语句
- TextLength,SQL语句长度
返回值:
- SQL_SUCCESS:成功。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLBindParameter
描述:往准备好SQL的执行句柄绑定参数。
接口:
SQLRETURN SQL_API SQLBindParameter( SQLHSTMT StatementHandle, SQLUSMALLINT ParameterNumber, SQLSMALLINT InputOutputType, SQLSMALLINT ValueType, SQLSMALLINT ParameterType, SQLULEN ColumnSize, SQLSMALLINT DecimalDigits, SQLPOINTER ParameterValuePtr, SQLLEN BufferLength, SQLLEN * StrLen_or_IndPtr)
输入参数:
- StatementHandle,执行句柄。
- ParameterNumber,绑定的参数序号,从1开始。
- InputOutputType,指示参数的输入输出类型。
- ValueType,缓冲区的C类型。
- ParameterType,待绑定字段的SQL类型。
- ColumnSize,绑定缓冲区的列宽。
- DecimalDigits,绑定缓冲区的格式化精度。
- ParameterValuePtr,缓冲区指针。
- BufferLength,缓冲区的长度。
- StrLen_or_IndPtr,待绑定的长度的地址指针。
返回值:
- SQL_SUCCESS:成功。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLBindCol
描述:绑定结果集列存放缓冲区。
接口:
SQLRETURN SQL_API SQLBindCol(SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLLEN BufferLength, SQLLEN *StrLen_or_Ind)
输入参数:
- StatementHandle,执行句柄。
- ColumnNumber,绑定的获取列序号,从1开始。
- TargetType,结果存放缓冲区的C类型。
- TargetValue,结果存放缓冲区。
- BufferLength,结果存放缓冲区大小。
- StrLen_or_Ind,获取的结果实际长度。
返回值:
- SQL_SUCCESS:成功。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLExecute
描述:执行SQL语句。
接口:
SQLRETURN SQL_API SQLExecute( SQLHSTMT StatementHandle)
输入参数:StatementHandle,执行句柄。
返回值:
- SQL_SUCCESS:成功。
- SQL_NEED_DATA:存在参数没有绑定。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLExecDirect
描述:直接执行SQL语句。
接口:
SQLRETURN SQL_API SQLExecDirect( SQLHSTMT StatementHandle, SQLCHAR * StatementText, SQLINTEGER TextLength)
输入参数:
- StatementHandle,执行句柄。
- StatementText,SQL语句。
- TextLength,SQL语句长度。
返回值:
- SQL_SUCCESS:成功。
- SQL_NEED_DATA:存在参数没有绑定。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLColAttribute
描述:描述列属性。
接口:
SQLRETURN SQL_API SQLColAttribute( SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier, SQLPOINTER CharacterAttributePtr, SQLSMALLINT BufferLength, SQLSMALLINT * StringLengthPtr, SQLLEN * NumericAttributePtr)
输入参数:
- StatementHandle,执行句柄。
- ColumnNumber,列序号,从1开始。
- FieldIdentifier,描述类型(SQL_DESC_NAME,SQL_DESC_LENGTH,SQL_DESC_NULLABLE,SQL_DESC_TYPE,SQL_DESC_TYPE_NAME)。
- BufferLength,字符缓冲区长度。
输出参数:
- CharacterAttributePtr,字符缓冲区。
- StringLengthPtr,实际获取的字符长度。
- NumericAttributePtr,数字缓冲区。
返回值:
- SQL_SUCCESS:成功。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLGetDiagRec
描述:故障诊断。
接口:
SQLRETURN SQL_API SQLGetDiagRec( SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLCHAR * SQLState, SQLINTEGER * NativeErrorPtr, SQLCHAR * MessageText, SQLSMALLINT BufferLength, SQLSMALLINT * TextLengthPtr)
输入参数:
- HandleType,句柄类型。
- Handle,句柄。
- RecNumber,诊断错误的序号(当前只缓存一条)。
- BufferLength,错误信息缓冲区长度。
输出参数:
- SQLState,SQL状态(当前不支持)。
- NativeErrorPtr,数据源侧错误码。
- MessageText,错误信息缓冲区。
- TextLengthPtr,实际错误信息长度。
返回值:
- SQL_SUCCESS:成功。
- SQL_NO_DATA:没有更多的诊断信息。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLFetch
描述:获取下一行结果。
接口:
SQLRETURN SQL_API SQLFetch( SQLHSTMT StatementHandle)
输入参数:StatementHandle,执行句柄。
返回值:
- SQL_SUCCESS:成功。
- SQL_NO_DATA:已经获取结束。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLGetData
描述:获取结果行中某列的数据。
接口:
SQLRETURN SQL_API SQLGetData( SQLHSTMT StatementHandle, SQLUSMALLINT Col_or_Param_Num, SQLSMALLINT TargetType, SQLPOINTER TargetValuePtr, SQLLEN BufferLength, SQLLEN * StrLen_or_IndPtr)
输入参数:
- StatementHandle,执行句柄。
- Col_or_Param_Num,列序号,从1开始。
- TargetType,目标缓冲区的C类型。
- TargetValuePtr,目标缓冲区。
- BufferLength,缓冲区长度。
- StrLen_or_IndPtr,实际获取的长度。
返回值:
- SQL_SUCCESS:成功。
- SQL_SUCCESS_WITH_INFO:列被截断,还需再次获取剩余数据。
- SQL_NULL_DATA:列为空。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLCloseCursor
描述:关闭游标。
接口:
SQLRETURN SQL_API SQLCloseCursor( SQLHSTMT StatementHandle)
输入参数:
StatementHandle,执行句柄。
返回值:
- SQL_SUCCESS:成功。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLRowCount
描述:获取行数,对于查询是获取到的行数,修改的SQL是实际修改的行数。
接口:
SQLRETURN SQL_API SQLRowCount( SQLHSTMT StatementHandle, SQLLEN * RowCountPtr)
输入参数:
StatementHandle,执行句柄。
输出参数:
RowCountPtr,修改行数。
返回值:
- SQL_SUCCESS:成功。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLEndTran
描述:结束事务。
接口:
SQLRETURN SQL_API SQLEndTran(SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT CompletionType)
输入参数:
- HandleType,句柄类型。
- Handle,句柄。
- CompletionType,结束事务的方式(SQL_COMMIT,SQL_ROLLBACK)。
返回值:
- SQL_SUCCESS:成功。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLError
描述:获取行数,对于查询是获取到的行数,修改的SQL是实际修改的行数。
接口:SQLRETURN SQL_API SQLError(SQLHENV EnvironmentHandle, SQLHDBC ConnectionHandle, SQLHSTMT StatementHandle, SQLCHAR *Sqlstate, SQLINTEGER *NativeError, SQLCHAR *MessageText, SQLSMALLINT BufferLength, SQLSMALLINT *TextLength)
输入参数:
- EnvironmentHandle,环境句柄。
- ConnectionHandle,链接句柄。
- StatementHandle,执行句柄。
- BufferLength,错误信息缓冲区长度。
输出参数:
- Sqlstate,输出为空。
- NativeError,数据源本地错误码。
- MessageText,错误信息缓冲区。
- TextLength,错误信息实际长度。
返回值:
- SQL_SUCCESS:成功。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLFetchScroll
描述:自定义获取结果行。
接口:SQLRETURN SQL_API SQLFetchScroll( SQLHSTMT StatementHandle, SQLSMALLINT FetchOrientation, SQLLEN FetchOffset)
输入参数:
- StatementHandle,执行句柄。
- FetchOrientation,行获取方式(SQL_FETCH_NEXT)。
- FetchOffset,获取偏移(暂不启用)。
返回值:
- SQL_SUCCESS:成功。
- SQL_NO_DATA:没有更多行数据。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLParamData
描述:判断参数状态。
接口:SQLRETURN SQL_API SQLParamData( SQLHSTMT StatementHandle, SQLPOINTER * ValuePtrPtr)
输入参数:
StatementHandle,执行句柄。
输出参数:
ValuePtrPtr,准备后的SQL,返回没有绑定完全的参数指针;执行后的SQL,返回可获取结果的列token(当前是列号)。
返回值:
- SQL_SUCCESS:成功。
- SQL_NEED_DATA:有参数需要绑定更多数据。
- SQL_PARAM_DATA_AVAILABLE:有列没有获取完全。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLPutData
描述:传入执行句柄更多绑定数据,当返回SQLParamData返回数据可读的时候,无需再次SQLExecute。
接口:SQLRETURN SQL_API SQLPutData( SQLHSTMT StatementHandle, SQLPOINTER DataPtr, SQLLEN StrLen_or_Ind)
输入参数:
- StatementHandle,执行句柄。
- DataPtr,待传入参数的首次绑定地址。
- StrLen_or_Ind,待传入参数的长度。
返回值:
- SQL_SUCCESS:成功。
- !=SQL_SUCCESS:失败。
是否线程安全:否
SQLNumResultCols
描述:返回结果集中列的个数。
接口:SQLRETURN SQLNumResultCols( SQLHSTMT StatementHandle, SQLSMALLINT * ColumnCountPtr)
输入参数:
- StatementHandle,执行句柄。
输出参数:
- ColumnCountPtr,返回结果集中列的个数的绑定地址。
返回值:
- SQL_SUCCESS:成功。
- !=SQL_SUCCESS:失败。
是否线程安全:否
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」关注作者【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。评论