资源描述:
《《c语言也能干大事》剩余部分》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、19C语言也能干大事如鹏网www.rupeng.com《C语言也能干大事》第十七节:数据库开发41、处理数据库查询序号从1开始,不是01.2.3.SQLINTEGERcbsatid=SQL_NTS;4. while(SQLFetch(hstmt)!=SQL_NO_DATA_FOUND)5. {6. SQLCHARname[20];7. SQLGetData(hstmt,1,SQL_C_CHAR,name,20,&cbsatid);8. }复制代码1.SQLIN
2、TEGERcbsatid=SQL_NTS;2.while(SQLFetch(hstmt)!=SQL_NO_DATA_FOUND)3.{4.SQLINTEGERi;5.SQLGetData(hstmt,2,SQL_C_LONG,&i,sizeof(SQLINTEGER),&cbsatid);6.}复制代码乱码问题解决方式,连接字符串使用GBK,修改数据库默认编码为gbk1919C语言也能干大事如鹏网www.rupeng.com4、保存HDBC到全局变量中,长连接、短连接。比如Java、C#中访问数据
3、库复杂多少。一通百通。要掌握调试的技巧,分析问题可能出错的原因和出错的地方,然后调试分析。一定不能和书上不一致,就懵了5、自己动手写用户管理系统:新增密码字段、新建用户,检验登录;1.SQLINTEGERcbsatid=SQL_NTS;2.//需要一行一行的读取,这种方式就叫做通过游标读取,无论是在JDBC、ADO/ADO.net。。。结果集3.//调用SQLFetch一次就向下读取一行,直到返回值为SQL_NO_DATA_FOUND的时候表示读到了最后4.//是不是和C语言文件访问中EOF有点像
4、。5. while(SQLFetch(hstmt)!=SQL_NO_DATA_FOUND)6. {7. TCHARname[20];//字符数组,SQLCHAR其实就是char的一个别名,所以和charname[20]一样。8. //调用SQLGetData来取列(Column)的内容9. //第一个参数就是代表SQL语句的hstmt、第二是要读取的列的序号(从1开始)10. //第三个是列的类型(SQL_C_CHAR字符串,在SQLExt.h中所有以SQL_C_开头的都是可选值)11
5、. //第四个参数就是要接收的值的指针!!!12. //第五个是指针指向的缓冲区的大小13. //第六个不用管,那么调就行14. SQLGetData(hstmt,1,SQL_C_CHAR,name,sizeof(name)/sizeof(SQLCHAR),&cbsatid);15. MessageBox(hwnd,name,TEXT(""),MB_OK);1919C语言也能干大事如鹏网www.rupeng.com1. }2.3.while(SQLFetch(hstmt)!=S
6、QL_NO_DATA_FOUND)4. {5. SQLINTEGERi;//字符数组,SQLCHAR其实就是char的一个别名,所以和charname[20]一样。6. //调用SQLGetData来取列(Column)的内容7. //第一个参数就是代表SQL语句的hstmt、第二是要读取的列的序号(从1开始)8. //第三个是列的类型(SQL_C_CHAR字符串,在SQLExt.h中所有以SQL_C_开头的都是可选值)9. //第四个参数就是要接收的值的指针!!!10. //第五个
7、是指针指向的缓冲区的大小11. //第六个不用管,那么调就行12. SQLGetData(hstmt,2,SQL_C_LONG,&i,sizeof(i),&cbsatid);13. TCHARname[20];14. SQLGetData(hstmt,1,SQL_C_CHAR,name,sizeof(name)/sizeof(TCHAR),&cbsatid);15. TCHARs[20];16. wsprintf(s,TEXT("%s年龄是:%d"),name,i);17.
8、18. MessageBox(hwnd,s,TEXT(""),MB_OK);19. }20.result=SQLPrepare(hstmt,(SQLCHAR*)"selectFUserName,FPasswordfromT_User",SQL_NTS);21.CHECKDBSTMTERROR(hwnd,result,hstmt);22. result=SQLExecute(hstmt);23. CHECKDBSTMTERROR(hwnd,result,hstmt);24.S