使用freetds库连接MS SQL SERVER实现方法

25663346

25663346

2016-02-19 16:04

下面图老师小编要跟大家分享使用freetds库连接MS SQL SERVER实现方法,简单的过程中其实暗藏玄机,还是要细心学习,喜欢还请记得收藏哦!

  1   概述

  在linux下连接MSSQL是一件很痛苦的事,因为微软同志没有提供任何接口给开发人员,还好,MSSQL是从Sybase衍生出来的,FreeTDS是一个数据库底层的驱动程序,用freetds的库进行开发是一件很方便的事。freetds可以连接sybase和mssqlserver数据库。

  2   安装,配置,测试

  官方网站:http://www.freetds.org

  版本:0.64

$tar-zxvffreetds-stable.tgz
$./configure--prefix=/usr/local/freetds
$make
$suroot
$makeinstall
$tsql-H2.2.2.2-p1433-Utest-Ptest

  tsql说明:

  H:数据库IP

  p:数据库端口

  U:用户名

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  P:密码

  3   linux下C/C++开发

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  3.1  利用freetds自带的程序开发

  位置在freetds-0.64/src/apps

  $makeclean

  $make

  3.2  利用freetds库快速开发

testsybase.c
#includestdio.h
#includestring.h
#includestdlib.h
#includeunistd.h 
#includesybfront.h
#includesybdb.h
intmain(void)
{
   charszUsername[32]="test";
   charszPassword[32]="test";
   charszDBName[32]="test";
   charszServer[32]="2.2.2.2:1433";
   //初始化db-library
   dbinit();
   //连接数据库
   LOGINREC*loginrec=dblogin();
   DBSETLUSER(loginrec,szUsername);    
   DBSETLPWD(loginrec,szPassword);
   DBPROCESS*dbprocess=dbopen(loginrec,szServer);
   if(dbprocess==FAIL){
       printf("ASB   ConectMSSQLSERVERfail   n");
       return0;
}else{
       printf("ASB   ConnectEMSconectMSSQLSERVERsuccessn");
   }
   if(dbuse(dbprocess,szDBName)==FAIL){
       printf("ASB   Opendatabasenamefailn");
   }else{
       printf("ASB   Opendatabasenamesuccessn");
   }
   //查询数据库
   dbcmd(dbprocess,"selectID,BeginTime,DescriptionfromAlarms");
   if(dbsqlexec(dbprocess)==FAIL){
       printf("ASB   QueryAlarmstableerrorn");   
   }
   DBINTresult_code;
   charszID[1024];
   charszBeginTime[1024];
   charszDescription[1024];
   introws=0;
   while((result_code=dbresults(dbprocess))!=NO_MORE_RESULTS){
       if(result_code==SUCCEED){
          dbbind(dbprocess,1,CHARBIND,(DBINT)0,(BYTE*)szID);
          dbbind(dbprocess,2,CHARBIND,(DBCHAR)0,(BYTE*)szBeginTime);
          dbbind(dbprocess,3,CHARBIND,(DBCHAR)0,(BYTE*)szDescription);
while(dbnextrow(dbprocess)!=NO_MORE_ROWS){            
              printf("ASB      ID=%sn",szID);
              printf("ASB      szAid=%sn",szBeginTime);
              printf("ASB      szBeginTime=%sn",szDescription);
          }
       }
   }
   //关闭数据库连接
   dbclose(dbprocess);
   return0;
}

  编译:gcc-otestsybasetestsybase.c./src/dblib/.libs/libsybdb.a

展开更多 50%)
分享

猜你喜欢

使用freetds库连接MS SQL SERVER实现方法

编程语言 网络编程
使用freetds库连接MS SQL SERVER实现方法

JSP连接MySql/MS SQL Server/Oracle数据库连接方法[整理]

Web开发
JSP连接MySql/MS SQL Server/Oracle数据库连接方法[整理]

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

SQL Server连接ACCESS数据库的实现

SQLServer
SQL Server连接ACCESS数据库的实现

VC连接SQL SERVER数据库

编程语言 网络编程
VC连接SQL SERVER数据库

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

MS Access 数据库向 MS SQL Server 7.0 的迁移 (简述)

编程语言 网络编程
MS Access 数据库向 MS SQL Server 7.0 的迁移 (简述)

在Linux下访问MS SQL Server数据库

SQLServer
在Linux下访问MS SQL Server数据库

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

win10运行速度慢怎么办

win10运行速度慢怎么办

UPDATE STATISTICS更新所有SQL Server数据库

UPDATE STATISTICS更新所有SQL Server数据库
下拉加载更多内容 ↓