快速业务通道

Linux下使用C/C 访问数据库——SQL Server篇

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-17
在Linux下连接MSSQL是一件很痛苦的事,微软同志没有提供任何接口给开发人员,大约他们认为要用MSSQL的,只可能是windows的操作系统.还好,MSSQL是从Sybase衍生出来的,有一些哥们做了一些Sybase的Linux下的连接库,这些连接库同时也能支持MSSQL,FreeTDS就是这样的一个东东. 这篇文章的受用读者,我想是那些希望在Linux或Unix下编写C或C 程序来连接MSSQL2000的兄弟们,我就是这样的.同时,那些写PHP的哥们也可以参考一下,当然如果你是用PHP的,你恐怕还要知道APACHE以及PHP脚本的安装,或者关于PHP自定义Module的开发,可以参考我以前写的一篇Blog(PHP5自定义Module开发). 下面开始我们的探索之旅: 一、相关软件
我们需要FreeTDS的安装包,可以在这个地址下载到:http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz 现在的最新版是0.82 其次就是大家需要自己搭建C 的开发环境了.
二、软件安装、配置
# tar zxvf freetds-stable.tgz(解压) # ./configure --prefix=/usr/local/freetds (指定FreeTDS安装路径)
--with-tdsver=8.0 --enable-msdblib (设置TDS版本,支持SQL Server 2000) # make # make install 将freetds的库文件所在路径配置到LD_LIBRARY_PATH参数中:
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/freetds/lib/:
这么作的目的是为了避免加载FreeTds库文件加载不上的情况.
三、程序开发
不多说了,还是直接上代码: /*
* SyBaseManager.h
*
* Created .: Feb 18, 2009
* Author: Steven Wee
*/

#ifndef SYBASEMANAGER_H_
#define SYBASEMANAGER_H_

#include "../Common/CheckStringTools.h"

#include <string>
#include <vector>
#include <iostream>
#include <assert.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>

#include <sybfront.h>
#include <sybdb.h>

using namespace std;

class SybaseManager
{
public:
SybaseManager(std::string hosts, std::string userName, std::string password, std::string dbName, unsigned int port);
~SybaseManager();
/*
* Init SQL Server
* @param hosts: Host IP address
* @param userName: Login UserName
* @param password: Login Password
* @param dbName: Database Name
* @param port: Host listen port number
*/
void initConnection();
/*
* Making query from database
* @param mysql: MySQL Object
* @param sql: Running SQL command
*/
bool runSQLCommand(std::string sql);
/**
* Destroy MySQL object
* @param mysql MySQL object
*/
void destroyConnection();
bool getConnectionStatus();
vector<vector<string> > getResult();
protected:
void setUserName(std::string userName);
void setHosts(std::string hosts);
void setPassword(std::string password);
void setDBName(std::string dbName);
void setPort(unsigned int port);
private:

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号