欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SQLAPI++实现对数据库的操作

程序员文章站 2022-06-02 08:21:05
...

刚上研究生,暑期提前来学校帮老师做项目,第一个任务就是使用C++连接Access数据库,从Access中读取数据。本科时没有用过ODBC,接触过java的JDBC,知道读取的大概流程,就开始着手准备使用ODBC读取数据,可是查了资料发现没那么容易,机缘巧合之下听说了SQLAPI++库,上手之后发现它封装的很好,简单方便,用了它之后谁还想着学ODBC呀,自讨苦吃,以后直接使用它操作数据库就好了。

下面直接来看代码:

#include <iostream>
#include <sqlapi.h>
using namespace std;
int main()
{
	SAConnection con; // connection object
	SACommand cmd;    // create command object
	try
	{
		con.Connect("MyAccess", "", "", SA_Oracle_Client);
		//参数1为数据库名,参数2为用户名,参数3为密码,参数4为数据库类型
		//参数1并不是数据库的路径,而是配置好的数据库名。建议配置ODBC数据源,特别方便
		//可以看一下我的上一篇文章,自动和手动配置ODBC数据源
		cmd.setConnection(&con);
		cmd.setCommandText( "select * from student");//此函数用于设置sql语句
		//sqlapi++的厉害之处在于只要是sql语句都往这个函数放,一个Excute就直接执行,不存在插入一个函数,查询一个函数,删除一个函数,让人头大
        cmd.Execute();//执行sql语句
        con.Commit();
         while(cmd.FetchNext())
   		 {
       		 cout<<cmd.Field("fid").asLong()<<endl;//输出整型fid
             cout<<cmd.Field("Name").asString()<<endl;//输出字符型Name
    	}
	}    
	catch(SAException &x)
	{
       try
    	{
       	 	con.Rollback();
  		}
    	catch(SAException &)
    	{}
	}
}

splapi用起来比较简单,封装的很好,sql语句全部封装在一个函数,傻瓜式调用就ok了。
说明:可能有的人不太懂,con.Connect(“MyAccess”, “”, “”, SA_Oracle_Client)中的第一个参数MyAccess从哪里来,为什么我不使用ODBC了,还需要用ODBC配置数据源?这主要是为了连接方便,我配置数据源的时候直接就给它起了个名字MyAccess,我以后直接用这个名字连接它就好了,不再管还要引入驱动等问题。它和ODBC并没有本质区别,只是它封装的更好,调用它方便。