第4章数据库技术及应用之四(编辑修改稿)内容摘要:

 对记录集中的记录,需要用循环方法逐条处理。 处理完当前记录后,调用 CRecordset类的MoveNext函数,将记录指针移至下条记录。  当最后一条记录处理完毕后,函数 IsEOF的值为真。 下一页 上一页 第 30/共 63页 例 450 源代码 include include int main() { CDatabase database。 BOOL bStatus = false。 (10)。 //设置等待建立连接的时间 try{ //与数据源 MYDB1建立连接 bStatus = (NULL ,FALSE,FALSE,ODBC。 DSN=MYDB1。 )。 CRecordset recset(amp。 database)。 CString strSQL。 strSQL=“select * from 工资表”。 //要执行的 SQL语句 //打开查询结果集 (CRecordset::forwardOnly,strSQL,CRecordset::readOnly)。 if(()) //查询结果集为空 { cout很遗憾,没有记录。 endl。 } 下一页 上一页 第 31/共 63页 源代码(续) else //查询结果集为非空 { cout编号 姓名 性别 工资 endl。 //输出表中的列名 coutendl。 CString temp。 while(!()) //每循环一次,输出结果集中的一条记录 { (编号 ,temp)。 cout(LPCTSTR)temp。 (姓名 ,temp)。 cout (LPCTSTR)temp。 (性别 ,temp)。 cout (LPCTSTR)temp。 (工资 ,temp)。 cout (LPCTSTR)temp。 ()。 coutendl。 } } ()。 //关闭结果集 } 下一页 上一页 第 32/共 63页 源代码(续完) //异常处理 catch(CMemoryException *pEx) { pExReportError()。 //输出错误信息 } catch(CDBException * pDBEx) { pDBExReportError()。 //输出错误信息 } ()。 //关闭数据库 return 0。 } 示例 下一页 上一页 第 33/共 63页 编译、运行程序  程序执行结果: 下一页 上一页 第 34/共 63页 例 451 为表插入记录 解题思路:  数据库连接成功后 , 可调用 CDatabase类的 ExecuteSQL函数执行指定的 SQL语句插入记录。  向表中插入记录的语句为: //要执行的 SQL语句 strSQL= “INSERT INTO 工资表 VALUES(„2020‟, „ 邢雪花 ’ ,„女 ’ ,650)”。 (strSQL)。 //直接用 ExecuteSQL语句插入 (“INSERT INTO 工资表 VALUES („2020‟,„翟建设 ’ ,„男 ’ ,746)”)。 下一页 上一页 第 35/共 63页 例 451源代码 include include int main() { CDatabase database。 BOOL bStatus = false。 (10)。 //设置等待建立连接的时间 try{ //与数据源 inc建立连接 bStatus=(NULL ,FALSE,FALSE, ODBC。 DSN=inc。 )。 CString strSQL。 strSQL=INSERT INTO 工资表 VALUES(2020, 39。 邢雪花 39。 ,39。 女 39。 ,650)。 //要执行的 SQL语句 (strSQL)。 (INSERT INTO 工资表 VALUES (2020,39。 翟建设 39。 ,39。 男39。 ,746))。 } 下一页 上一页 第 36/共 63页 源代码(续) //异常处理 catch(CMemoryException *pEx) { pExReportError()。 //输出错误信息 } catch(CDBException * pDBEx) { pDBExReportError()。 //输出错误信息 } ()。 //关闭数据库 return 0。 } 示例 下一页 上一页 第 37/共 63页 操作结果示意 若完成插入记录的操作,则显示: 查看数据库中的表,多了 2条记录。 下一页 上一页 第 38/共 63页 例 452 修改表中记录 算法分析:  该实例修改表中的 2条记录:  将 “ 编号 ” 为 “ 20201”记录中的工资改为 “ 900”元;  将 “ 姓名 ” 为 “ 翟建设 ” 的记录的 “ 编号 ” 改为 “ 30001”。  数据库连 接成 功后 , 可调用 CDatabase 类的ExecuteSQL函数执行指定的 SQL语句修改记录。 修改的 SQL语句为: UPDATE 表名 SET 字段名 = 值 […… , ] 下一页 上一页 第 39/共 63页 例 452 源代码 include include int main() { CDatabase database。 BOOL bStatus = false。 (10)。 //设置等待建立连接的时间 try { //与数据源 inc建立连接 bStatus=(NULL ,FALSE,FALSE, ODBC。 DSN=MYDB1。 )。 //执行 ExecuteSQL (UPDATE 工资表 SET 工资 =900 where 编号 =„20201‟)。 CString strSQL=UPDATE 工资表 SET 编号 =„30001‟ WHERE 姓名 =39。 翟建设 39。 (strSQL)。 } //异常处理 …… //省略代码 } 示例 下一页 上一页 第 40/共 63页 实现修改操作结果示意图  若完成修改操作,则显示 :  查看数据库中的表,这 2条记录被修改。 下一页 上一。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。