- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用IBPP在C++中操作FireBird/Interbase数据库
FireBird是一种小巧的关系型数据库,它有多种版本,包括服务器版(象MySQL),单机版(象Access)以及嵌入式(象SQLite)。而且不管是服务器版还是嵌入式版它都完整支持视图、触发器、存储过程等SQL高级特性。问题是它提供的C API“不太友好”,不容易掌握(特别是我),所以我一直只会在C++Builder里编程使用FireBird(因为FireBird源于 Borland的InterBase,VCL库自带了InterBase的组件),直到有一天我发现了IBPP...IBPP是一个 FireBird/Interbase数据库API的C++包装,使用起来也比较简单,只要把IBPP源码目录里的 core/all_in_one.cpp加入工程,在代码中包含头文件ibpp.h,最后根据操作系统预定义一个IBPP_WINDOWS或 IBPP_UNIX的宏即可。另外,当然还要安装FireBird客户端,如果只是学习,我们可以下载嵌入式版本。IBPP首先要找到FireBird的动态库,在Windows下, IBPP在下面的路径中查找:
在程序目录下查找fbembed.dll
在程序目录下查找fbclient.dll
依据DefaultInstance注册表键值查找fbclient.dll
在系统定义位置查找fbclient.dll
在系统定义位置查找gds32.dll
FireBird主页:IBPP主页:关于FireBird的中文教程我推荐姚启红编著的《Borland InterBase7.0 应用开发指南》(网上一找一大堆)。
例一,基本应用
#include iostream
#include ibpp.h
using namespace std;
//数据库名,根据你的情况更改。
const char* g_szDBName = d:\\test.fdb;
//服务器名,针对服务器版本。对于嵌入式,它应该是
const char* g_szServerName = ;
//这里的用户名和密码是FireBird默认值,对于服务器版,用你自己的密码
//对于嵌入式,就是这个(FireBird嵌入式版没有加密功能)。
const char* g_szUserName = SYSDBA;
const char* g_szPassword = masterkey;
int main()
{
IBPP::Database db = IBPP::DatabaseFactory(g_szServerName,
g_szDBName,
g_szUserName,
g_szPassword);
//建立数据库
db-Create(3);
//连接数据库
db-Connect();
IBPP::Transaction tr = IBPP::TransactionFactory(db);
tr-Start();
try{
IBPP::Statement st = IBPP::StatementFactory(db,tr);
//建立数据表
st-Execute(
CREATE TABLE TESTTABLE(
ID INTEGER NOT NULL PRIMARY KEY,
RNO VARCHAR(10) NOT NULL UNIQUE,
SHIFT VARCHAR(5) NOT NULL
CHECK(SHIFT IN(A,B,C,D)),
LINE CHAR(20) NOT NULL,
SL COMPUTED BY(SHIFT||.||LINE),
EMP CHAR(20)
)
);
tr-CommitRetain();
//插入数据,华安和小强
st-Execute(
INSERT INTO TESTTABLE(ID,RNO,SHIFT,LINE,EMP)
VALUES(1,B9527,B,DAZHA,Hua,An)
);
文档评论(0)