VC数据库编程之MFCODBC连接

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

VC数据库编程之MFCODBC连接VC数据库编程的方法有很多,下面介绍MFCODBC连接的方法。MFCODBC是MFC对ODBC进行的封装,以简化对ODBCAPI的调用,从而实现面向对象的数据库编程接口.MFCODBC的封装主要开发了CDatabase类和CRecordSet类(1)CDatabase类CDatabase类用于应用程序建立同数据源的连接。CDatabase类中包含一个m_hdbc变量,它代表了数据源的连接句柄。如果要建立CDatabase类的实例,应先调用该类的构造函数,再调用Open函数,通过调用,初始化环境变量,并执行与数据源的连接。在通过Close函数关闭数据源。CDatabase类提供了对数据库进行操作的函数及事务操作。(2)CRecordSet类CRecordSet类定义了从数据库接收或者发送数据到数据库的成员变量,以实现对数据集的数据操作。CRecordSet类的成员变量m_hstmt代表了定义该记录集的SQL语句句柄,m_nFields为记录集中字段的个数,m_nParams为记录集所使用的参数个数。CRecordSet的记录集通过CDatabase实例的指针实现同数据源的连接,即CRecordSet的成员变量m_pDatabase.MFCODBC编程更适合于界面型数据库应用程序的开发,但由于CDatabase类和CRecordSet类提供的数据库操作函数有限,支持的游标类型也有限,限制了高效的数据库开发。在编程层次上属于高级编程。应用实例:1.打开数据库CDatabasedatabase;database.OpenEx(_T(DSN=zhuxue),CDatabase::noOdbcDialog);//zhuxue为数据源名称2.关联记录集CRecordsetrecset(&database);3.查询记录CStringsSql1=;sSql1=SELECT*FROMtablename;recset.Open(CRecordset::forwardOnly,sSql1,CRecordset::readOnly);intti=0;CDBVariantvar;//var可以转换为其他类型的值while(!recset.IsEOF()){//读取Excel内部数值recset.GetFieldValue(id,var);jiangxiang[ti].id=var.m_iVal;recset.GetFieldValue(name,jiangxiang[ti].name);ti++;recset.MoveNext();}recset.Close();//关闭记录集4.执行sql语句CStringsSql=;sSql+=delete*from院系审核;//清空表database.ExecuteSQL(sSql);sSql也可以为Insert,Update等语句5.读取字段名sSql=SELECT*FROMSheet1;//读取的文件有Sheet1表的定义,或为本程序生成的表.//执行查询语句recset.Open(CRecordset::forwardOnly,sSql,CRecordset::readOnly);intexcelColCount=recset.GetODBCFieldCount();//列数CStringexcelfield[30];//得到记录集的字段集合中的字段的总个数for(i=0;i{CODBCFieldInfofieldinfo;recset.GetODBCFieldInfo(i,fieldinfo);excelfield[i].name=fieldinfo.m_strName;//字段名}6.打开excel文件CStringsDriver=MICROSOFTEXCELDRIVER(*.XLS);//Excel安装驱动CStringsSql,sExcelFile;//sExcelFile为excel的文件路径TRY{//创建进行存取的字符串sSql.Format(DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\%s\;DBQ=%s,sDriver,sExcelFile,sExcelFile);//创建数据库(既Excel表格文件)if(database.OpenEx(sSql,CDatabase::noOdbcDialog)){//可以把excel作为一个数据库操作}}catch(e){TRACE1(Excel驱动没有安装:%s,sDriver);AfxMessageBox(读取失败,请检查是否定义数据区Sheet1);}

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功