您的位置:首页 > 运维架构 > Linux

在linux下通过C语言基于freetds连接sql2000

2010-05-24 14:29 351 查看
安装好freetds之后
添加库的环境变量
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/freetds/lib/
之后开vi
#include <stdio.h>
#include <string.h>
#include <stdio.h>
#include <unistd.h>
#include </usr/local/freetds/include/sybfront.h>
#include </usr/local/freetds/include/sybdb.h>
void echo(char *str)
{
 printf("%s/n",str);
}

int main(void)
{
 char uname[32] = "sa";
 char upass[32] = "thisispasswordarea";
 char server[32] = "222.222.222.222:1678";
 dbinit();
 LOGINREC *loginrec = dblogin();
 DBSETLUSER(loginrec,uname);
 DBSETLPWD(loginrec,upass);
 DBPROCESS *dbprocess = dbopen(loginrec,server);
 echo("connecting...");
 if(dbprocess == FAIL)
 {
  echo("connect...fail");
  return 0;
 }
 if(dbuse(dbprocess,"db_6930") == FAIL)
 {
  echo("database select fail");
  return 0;
 }
 else
 {
  echo("connect success.");
  dbcmd(dbprocess,"select top 10 userid from wells.dbtest.dbo.user0");
  if(dbsqlexec(dbprocess) == FAIL){
   echo("query fail...");
   return 0;
  }
  DBINT result_code;
  char uid[20];
  char nickname[100];
  char email[200];
  int rows = 0;
  while((result_code = dbresults(dbprocess))!= NO_MORE_RESULTS)
  {
   if(result_code == SUCCEED)
   {
    dbbind(dbprocess,1,CHARBIND,(DBINT)0,(BYTE*)uid);
    while(dbnextrow(dbprocess) != NO_MORE_ROWS)
    {
     rows++;
     echo(uid);
    }
   }
  }
  printf("final row=%d/n",rows);
 }
 dbclose(dbprocess);
 echo("connect closed.");
 return 0;
 
}
存为emailParser.c
编译命令==============================
gcc emailParser.c -L/usr/local/freetds/lib -lsybdb
执行=========================
./a.out
输出================================
connecting...
connect success.
358568
358569
358570
358571
358572
358573
358574
358575
358576
358577
final row=10
connect closed.
==================
高层应用自己挖掘咯
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: