环球网校是美国纳斯达克上市企业欢聚时代(NASDAQ:YY)旗下品牌 | 住房和城乡建设部 建筑人才培训合作单位
您现在的位置在: > 计算机类 > 计算机等级考试 > 考试辅导 >

计算机等级考试辅导:freetds库连接MSSQLSERVER的实现方法

2010-06-29 来源:互联网 作者:第一考试网

计算机等级考试辅导:freetds库连接MSSQLSERVER的实现方法

#

  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:用户名
  P:密码
  3 linux下C/C++开发
  3.1  利用freetds自带的程序开发
  位置在freetds-0.64/src/apps
  $makeclean
  $make
  3.2  利用freetds库快速开发
  testsybase.c
  #include<stdio.h>
  #include<string.h>
  #include<stdlib.h> #
  #include<unistd.h>
  #include<sybfront.h>
  #include<sybdb.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;
  }

#

责编: 返回顶部  打印

关于我们联系我们友情链接网站声明网站地图广告服务帮助中心