c语言使用freetds连接ms sql server

首先编译安装freetds这部分就省略了,直接上代码:
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <iostream>
  5. #include <sybfront.h>
  6. #include <sybdb.h>

  7. bool ConnectDataBase(DBPROCESS **dbprocess)
  8. {
  9.     bool ret = false;
  10.     char szUsername[32] = "user";
  11.     char szPassword[32] = "123";
  12.     char szDBName[32] = "jyxtec";
  13.     char szServer[32] = "2.23.3.63:1433";

  14.     dbinit();
  15.     LOGINREC *loginrec = dblogin();
  16.     DBSETLUSER(loginrec, szUsername);
  17.     DBSETLPWD(loginrec, szPassword);
  18.     *dbprocess = dbopen(loginrec, szServer);
  19.     if(*dbprocess == FAIL){ 
  20.         printf("ASB>> Conect MS SQL SERVER fail \n");
  21.         return false;
  22.     }else{
  23.         printf("ASB>> ConnectEMS conect MS SQL SERVER success\n");
  24.         ret = true;
  25.     }
  26.     if(dbuse(*dbprocess, szDBName) == FAIL){
  27.         printf("ASB>> Open database name fail\n");
  28.         ret = false;
  29.     }else{ 
  30.         printf("ASB>> Open database name success\n");
  31.         ret = true;
  32.     }

  33.     return ret;
  34. }

  35.     int
  36. main( int argc, char **argv )
  37. {
  38.     DBPROCESS *dbprocess;
  39.     if (!ConnectDataBase(&dbprocess))
  40.         return 1;

  41.     dbcmd(dbprocess, "SELECT card_No FROM D_blackList WHERE version='36'");
  42.     if(dbsqlexec(dbprocess) == FAIL){
  43.         printf("ASB>> Query Alarms table error\n");
  44.         return 1;
  45.     }

  46.     DBINT result_code;
  47.     char card_no[64];
  48.     int rows = 0;
  49.     while ((result_code = dbresults(dbprocess)) != NO_MORE_RESULTS){
  50.         if (result_code == SUCCEED){
  51.             memset(card_no, 0, sizeof(card_no));
  52.             dbbind(dbprocess, 1, CHARBIND, (DBINT)0, (BYTE*)card_no);

  53.             while (dbnextrow(dbprocess) != NO_MORE_ROWS){ 
  54.                 printf("ASB>> card_no=%s\n", card_no);
  55.             }
  56.         }
  57.     }

  58.     dbclose(dbprocess);
  59.     return 0;
  60. }
比如我运行的输出:
ASB>>      ConnectEMS conect MS SQL SERVER success
ASB>>      Open database name success
ASB>>             card_no=10000005
作者:帅得不敢出门  程序员群:31843264

你可能感兴趣的:(c语言使用freetds连接ms sql server)