c++利用SqlApi访问SqlServer数据库(存储过程篇)
来源:互联网 发布:C语言经典算法实现 编辑:程序博客网 时间:2024/06/06 05:37
一、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
需要访问密码者,请发我邮箱mokimail126@126.com索取
本文转载自:http://my.oschina.net/u/1426828/blog/187417
- c++利用SqlApi访问SqlServer数据库(存储过程篇)
- 数据库-存储过程-SQLServer
- SQLServer存储过程访问数据库权限异常问题的解决方案
- sqlserver 数据库 存储过程小节
- SQLServer数据库存储过程教程
- C# 访问sqlserver 存储过程小试牛刀
- sqlserver利用sp_cursoropen存储过程分页示例
- C#.net存储过程访问数据库(带参数)
- SQLServer存储过程和ADO.NET访问存储过程-整理
- C# 中的数据库操作~存储过程篇Mysql SqlServer
- 还原数据库出现“未获得排他访问”解决方法(杀死数据库连接的存储过程sqlserver)
- c++利用ado访问sqlserver数据库
- linux下利用freetds 访问sqlserver数据库
- sqlserver存储过程中利用游标遍历结果集简单示例及查询数据库时间
- 存储过程访问远程数据库
- sqlserver数据库异步处理的存储过程
- SQLServer 2000 数据库备份还原存储过程
- sqlserver常用函数/存储过程/数据库角色
- hdu 1021 - Fibonacci Again
- setUserVisibleHint()方法的懒加载
- JAVA基础知识
- MyBatis mapper文件中的变量引用方式#{}与${}的差别
- 如今仍在工作的12名最“屌”的程序员
- c++利用SqlApi访问SqlServer数据库(存储过程篇)
- 字符串初始化指针和初始化数组区别
- (三)C# winform C/S WebBrowser 微博第三方授权登录
- Struts迭代器(iterator)遍历List常用的4种例子
- iptables实现网卡包转发
- yii2 rbac权限控制之菜单menu详细教程
- oracle trunc 函数处理日期格式
- 一些网站后台模板源码分析
- 是新时代的产物?还是昙花一现?软件众包将何去何从