《C语言也能干大事》剩余部分.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《C语言也能干大事》剩余部分

《C语言也能干大事》第十七节:数据库开发41、处理数据库查询 序号从1开始,不是0 SQLINTEGER cbsatid=SQL_NTS; ? ? while (SQLFetch(hstmt)!=SQL_NO_DATA_FOUND) ? ? { ? ?? ?? ?? ?? ?? ? SQLCHAR name[20]; ? ?? ???SQLGetData(hstmt,1,SQL_C_CHAR,name,20,cbsatid); ? ? } 复制代码 SQLINTEGER cbsatid=SQL_NTS; while (SQLFetch(hstmt)!=SQL_NO_DATA_FOUND) { SQLINTEGER i; SQLGetData(hstmt,2,SQL_C_LONG,i,sizeof(SQLINTEGER),cbsatid); } 复制代码 乱码问题解决方式,连接字符串使用GBK,修改数据库默认编码为gbk 4、保存HDBC到全局变量中,长连接、短连接。比如Java、C#中访问数据库复杂多少。一通百通。 要掌握调试的技巧,分析问题可能出错的原因和出错的地方,然后调试分析。一定不能和书上不一致,就懵了 5、自己动手写用户管理系统:新增密码字段、新建用户,检验登录; SQLINTEGER cbsatid=SQL_NTS; //需要一行一行的读取,这种方式就叫做通过游标读取,无论是在JDBC、ADO/ADO.net。。。结果集 //调用SQLFetch一次就向下读取一行,直到返回值为SQL_NO_DATA_FOUND的时候表示读到了最后 //是不是和C语言文件访问中EOF有点像。 ? ? while (SQLFetch(hstmt)!=SQL_NO_DATA_FOUND) ? ? { ??TCHAR name[20]; //字符数组,SQLCHAR其实就是char的一个别名,所以和char name[20]一样。 ??//调用SQLGetData来取列(Column)的内容 ??//第一个参数就是代表SQL语句的hstmt、第二是要读取的列的序号(从1开始) ??//第三个是列的类型(SQL_C_CHAR字符串,在SQLExt.h中所有以SQL_C_开头的都是可选值) ??//第四个参数就是要接收的值的指针!!! ??//第五个是指针指向的缓冲区的大小 ??//第六个不用管,那么调就行 ? ?? ???SQLGetData(hstmt,1,SQL_C_CHAR,name,sizeof(name)/sizeof(SQLCHAR),cbsatid); ??MessageBox(hwnd,name,TEXT(),MB_OK); ? ? } while (SQLFetch(hstmt)!=SQL_NO_DATA_FOUND) ? ? { ??SQLINTEGER i; //字符数组,SQLCHAR其实就是char的一个别名,所以和char name[20]一样。 ??//调用SQLGetData来取列(Column)的内容 ??//第一个参数就是代表SQL语句的hstmt、第二是要读取的列的序号(从1开始) ??//第三个是列的类型(SQL_C_CHAR字符串,在SQLExt.h中所有以SQL_C_开头的都是可选值) ??//第四个参数就是要接收的值的指针!!! ??//第五个是指针指向的缓冲区的大小 ??//第六个不用管,那么调就行 ? ?? ???SQLGetData(hstmt,2,SQL_C_LONG,i,sizeof(i),cbsatid); ??TCHAR name[20]; ??SQLGetData(hstmt,1,SQL_C_CHAR,name,sizeof(name)/sizeof(TCHAR),cbsatid); ??TCHAR s[20]; ??wsprintf(s,TEXT(%s年龄是:%d),name,i); ?? ??MessageBox(hwnd,s,TEXT(),MB_OK); ? ? } result = SQLPrepare(hstmt,(SQLCHAR*)select FUserName,FPassword from T_User,SQL_NTS); CHECKDBSTMTERROR(hwnd,result,hstmt); ? ? result =SQLExecute(hstmt); ? ? CHECKDBSTMTERROR(hwnd,result,hstmt); SQLINTEGER cbsatid=SQL_NTS; TCHAR inputUserName[20]; GetDlgItemText(hwnd,IDC_EDITUSERNAME,inputUserName,sizeof(inp

文档评论(0)

345864754 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档