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并没有本质区别,只是它封装的更好,调用它方便。
下一篇: 数据库优化之sql优化