c++ ODBC使用

  1. 需要使用的文件
  •  sql.h:包含基本的API定义
  •  sqlext.h:包含扩展的ODBC定义
  •  odbc32.lib 库文件
        2. 执行方式
       直接执行:直接提供sql语句,调用SQLExecDirect执行
       准备执行:提供一个缺少某些参数的sql语句调用SQLPrepare,只有当语句准备好之后调用SQLExecute执行语句,可减少对SQL语句分析所花费的时间

       3.数据类型对比

ODBC数据类型名称

SQL语言数据类型名称

SQL_CHAR

CHAR(n)

SQL_VARCHAR

VARCHAR(n)

SQL_LONGVARCHAR

LONG VARCHAR

SQL_WCHAR

WCHAR(n)

SQL_WVARCHAR

VARWCHAR(n)

SQL_WLONGVARCHAR

LONGWVARCHAR

SQL_DECIMAL

DECIMAL(p,s)

SQL_NUMERIC

NUMERIC(p,s)

SQL_SMALLINT

SMALLINT

SQL_INTEGER

INTEGER

SQL_REAL

REAL

SQL_FLOAT

FLOAT(p)

SQL_DOUBLE

DOUBLE PRECISION

SQL_BIT

BIT

SQL_TINYINT

TINYINT

SQL_BIGINT

BIGINT

SQL_BINARY

BINARY(n)

SQL_VARBINARY

VARBINARY(n)

SQL_LONGVARBINARY

LONG VARBINARY

SQL_TYPE_DATE[6]

DATE

SQL_TYPE_TIME[6]

TIME(p)

SQL_TYPE_TIMESTAMP[6]

TIMESTAMP(p)

SQL_GUID

GUID


        

C语言数据类型名称

ODBC 数据类型定义

C语言实际类型

SQL_C_CHAR

SQLCHAR *

unsigned char *

SQL_C_SSHORT[j]

SQLSMALLINT

short int

SQL_C_USHORT[j]

SQLUSMALLINT

unsigned short int

SQL_C_SLONG[j]

SQLINTEGER

long int

SQL_C_ULONG[j]

SQLUINTEGER

unsigned long int

SQL_C_FLOAT

SQLREAL

float

SQL_C_DOUBLE

SQLDOUBLE, SQLFLOAT

double

SQL_C_BIT

SQLCHAR

unsigned char

SQL_C_STINYINT[j]

SQLSCHAR

signed char

SQL_C_UTINYINT[j]

SQLCHAR

unsigned char

SQL_C_SBIGINT

SQLBIGINT

_int64[h]

SQL_C_UBIGINT

SQLUBIGINT

unsigned _int64[h]

SQL_C_BINARY

SQLCHAR *

unsigned char *

SQL_C_BOOKMARK[i]

BOOKMARK

unsigned long int[d]

SQL_C_VARBOOKMARK

SQLCHAR *

unsigned char *

SQL_C_TYPE_DATE[c]

SQL_DATE_STRUCT

struct tagDATE_STRUCT {
               SQLSMALLINT year; 
               SQLUSMALLINT month; 
               SQLUSMALLINT day; 
          } DATE_STRUCT;[a]

SQL_C_TYPE_TIME[c]

SQL_TIME_STRUCT

struct tagTIME_STRUCT {
               SQLUSMALLINT hour; 
               SQLUSMALLINT minute; 
               SQLUSMALLINT second; 
          } TIME_STRUCT;[a]

SQL_C_TYPE_TIMESTAMP[c]

SQL_TIMESTAMP_STRUCT

struct tagTIMESTAMP_STRUCT {
               SQLSMALLINT year; 
               SQLUSMALLINT month; 
               SQLUSMALLINT day; 
               SQLUSMALLINT hour; 
               SQLUSMALLINT minute; 
               SQLUSMALLINT second; 
               SQLUINTEGER fraction;[b]
          } TIMESTAMP_STRUCT;[a]

SQL_C_NUMERIC

SQL_NUMERIC_STRUCT

struct tagSQL_NUMERIC_STRUCT {
               SQLCHAR precision;
               SQLSCHAR scale; 
               SQLCHAR sign[g]
               SQLCHAR val[SQL_MAX_NUMERIC_LEN];[e],           [f]
          } SQL_NUMERIC_STRUCT;

SQL_C_GUID

SQLGUID

struct tagSQLGUID {
          DWORD Data1;
          WORD Data2;
          WORD Data3;
          BYTE Data4[8];
          } SQLGUID;[k]


4. ODBC句柄
 

ODBC句柄有三类:环境句柄,数据库连接句柄,SQL语句句柄

在使用ODBC功能时要先申请环境句柄,然后在环境句柄上创建数据库连接,最后在数据连接基础上执行SQL语句


  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值