直接来看代码:
#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并没有本质区别,只是它封装的更好,调用它方便。