直接执行方式举例:查询account表中所有的用户名和密码

 

  SQLHENV         henv     =   NULL;   //定义环境句柄

  SQLHSTMT       hstmt   =   NULL;   //定义语句句柄

  SQLHDBC         hdbc     =   NULL;   //定义连接句柄

  SQLRETURN     sqlreturn;  

           

  sqlreturn   =   SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);  

  //     创建odbc环境句柄  

  sqlreturn   =   SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,SQL_IS_INTEGER);  

  //     设置odbc版本号  

  sqlreturn   =   SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);  

  //     创建odbc连接句柄  

  sqlreturn   =   SQLConnect(hdbc,   (SQLCHAR  *)"WriteWchar",   SQL_NTS,  

                                                    (SQLCHAR  *)"sa",   SQL_NTS,   (SQLCHAR   *)"",   SQL_NTS);  

  //     建立odbc连接  

  sqlreturn   =   SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);  

  //     创建sql语句的语句句柄  

  sqlreturn   =   SQLExecdirect(hstmt, (SQLCHAR   *)"select   UserName,PassWord   from     account     ",SQL_NTS);  

 

  //     直接执行  

  short   ColsCount   =   0;  

  sqlreturn   =   SQLNumResultCols(hstmt,&ColsCount);  

  //得到返回结果集的列数  

  long   RowsCount   =   0;  

  sqlreturn   =   SQLRowCount(hstmt,&RowsCount);  

  //得到返回结果集的行数******不是列数******  

  char   szUserName[16];  

  char   szPassWord[13];  

  memset(szUserName,0,16);  

  memset(szPassWord,0,13);  

  //以上是存放绑定数据的变量  

  SQLINTEGER  cb=SQL_NTS;  

  memset(&cb,0,sizeof(SDWORD));  

  sqlreturn   =   SQLBindCol(hstmt,1,SQL_C_CHAR,szUserName,16,&cb);  

          sqlreturn   =   SQLBindCol(hstmt,2,SQL_C_CHAR,szPassWord,13,&cb);  

  sqlreturn   =   SQLFetch(hstmt);  

  while   (sqlreturn   ==   SQL_SUCCESS)  

  {  

  char   *   pDisplay   =   new   char[60];  

  memset(pDisplay,0,60);  

  sprintf(pDisplay,"UserName   =   /"%s/"   And   PassWord   =   /"%s/"",szUserName,szPassWord);  

  AfxMessageBox(pDisplay);  

  delete   pDisplay;  

                  sqlreturn   =   SQLFetch(hstmt);  

  }  

            

          SQLFreeHandle(SQL_HANDLE_STMT,   hstmt);  

          SQLDisconnect(hdbc);  

          SQLFreeHandle(SQL_HANDLE_DBC,   hdbc);  

          SQLFreeHandle(SQL_HANDLE_ENV,   henv);

预处理-执行方式举例:向account表插入aa用户信息

//--------------------------------------------------------------------------------------

//预编译带有参数的语句

  char   szUserName[16];  

  char   szPassWord[13];  

  szUserName=’aa’;  

  szPassWord=’bb’;  

sqlreturn =SQLPrepare(hstmt, (SQLCHAR *)”insert into account values(?,?)”,SQL_NTS);

if sqlreturn==SQL_SUCCESS|| sqlreturn==SQL+SUCCESS_WITH_INFO)

{

SQLBindParameter(hstmt,1,SQL_PARAINPUT,SQL_C_CHAR,SQL_CHAR, 16,0, szUserName,0, &cb);

SQLBindParameter(hstmt,2,SQL_PARAINPUT,SQL_C_CHAR,SQL_CHAR, 13,0, szPassWord,0, &cb);

}

sqlreturn SQLExecute(hstmt);

//--------------------------------------------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值