一、SqlApi介绍
SqlApi++是一个为访问Sql数据库而编写的库。支持对Oracle, SQL Server, DB2, Sybase, Informix, InterBase, SQLBase, MySQL, PostgreSQL, SQLite, ODBC数据库的访问。他提供简单的访问数据库接口,开发者可以根据实际情况自行对其封装。他拥有完善的文档和编程实例,开发者可以快速入手。
二、命令解析
1、 连接数据库函数Connect,如下:
void Connect( const SAString &sDBString , const SAString &sUserID , const SAString &sPassword , SAClient_t eSAClient = SA_Client_NotSpecified, saConnectionHandler_t fHandler = NULL);
参数解析:
sDBString:要连接的数据库 sUserID:登录用户名 sPassword:登录密码 eSAClient:用于指定连接何种数据库 fHandler:用于指定回调函数 |
2、 绑定sql命令函数setCommandText,如下:
void setCommandText( const SAString &sCmd,SACommandType_t eCmdType = SA_CmdUnknown );
参数解析:
sCmd:sql命令 eCmdType:指定命令类型 |
3、 准备函数Prepare,如下:
virtual void Prepare();
4、执行函数Execute,如下:
virtual void Execute();
注意:如果执行存储过程中带输入参数,需要先执行 Prepare()函数。
5、 获取结果函数,如下:
bool FetchNext();
三、使用方法
1、 创建数据库的连接对象;
2、 根据数据库连接对象,创建数据库命令对象,并绑定要执行的语句或者存储过程名;
3、 执行语句或者存储过程;
4、 获取返回的值。
四、使用举例
如本机上有一SqlServer数据库。数据库名为LittleBee,登录用户名sa,密码为tiger。数据库中有一表叫dbo.DM_Runtime,表结构及数据如下:
数据库中有一存储过程sp_GetRunDate,存储过程内容如下:
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- ============================================= -- Author: <Author,,Name> -- Create date: <Create Date,,> -- Description: <Description,,> -- ============================================= CREATE PROCEDURE [dbo].[sp_GetRunDate] AS BEGIN SELECT TOP 1 import_date FROM dbo.DM_Runtime END
使用C++程序调用实例我用的是vs2010如下:
#include "stdafx.h" #include <stdio.h> // for printf #include <SQLAPI.h> // main SQLAPI++ header #pragma comment(lib,"F:\\lib\\SQLAPI3.7.34\\lib\\sqlapi.lib") int _tmain(int argc, _TCHAR* argv[]) { SAConnection con; // connection object SACommand cmd(&con); // command object try { // connect to database (Oracle in our example) con.Connect("127.0.0.1@LittleBee", "sa", "tiger", SA_SQLServer_Client); cmd.setCommandText("sp_GetRunDate"); //cmd.setCommandText("SELECT TOP 1 import_date FROM dbo.DM_Runtime"); // Select from our test table cmd.Execute(); // fetch results row by row and print results while(cmd.FetchNext()) { printf("sp_GetRunDate'%s'\n", cmd.Field("import_date").asString()); } // commit changes on success con.Commit(); printf("Rows selected!\n"); } catch(SAException &x) { // SAConnection::Rollback() // can also throw an exception // (if a network error for example), // we will be ready try { // on error rollback changes con.Rollback(); } catch(SAException &) { } // print error message printf("%s\n", (const char*)x.ErrText()); } return 0; }
如果无误的话,将会在命令行看到sp_GetRunDate'20130719'结果。
参考文档如下:
SqlApi的官网:http://www.sqlapi.com/index.html
SqlApi库下载地址:http://www.sqlapi.com/Download/index.html
当然SqlApi也有破解版,为了支持正版,这里就不提供破解版下载链接。亲可以自己在网上收一下。
本实例源码及文档:http://yunpan.cn/QD894ZF4gpZpk
需要访问密码者,请发我邮箱[email protected]索取