首先编译安装freetds这部分就省略了,直接上代码:
比如我运行的输出:
ASB>> ConnectEMS conect MS SQL SERVER success
ASB>> Open database name success
ASB>> card_no=10000005
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <iostream>
- #include <sybfront.h>
- #include <sybdb.h>
-
- bool ConnectDataBase(DBPROCESS **dbprocess)
- {
- bool ret = false;
- char szUsername[32] = "user";
- char szPassword[32] = "123";
- char szDBName[32] = "jyxtec";
- char szServer[32] = "2.23.3.63:1433";
-
- dbinit();
- LOGINREC *loginrec = dblogin();
- DBSETLUSER(loginrec, szUsername);
- DBSETLPWD(loginrec, szPassword);
- *dbprocess = dbopen(loginrec, szServer);
- if(*dbprocess == FAIL){
- printf("ASB>> Conect MS SQL SERVER fail \n");
- return false;
- }else{
- printf("ASB>> ConnectEMS conect MS SQL SERVER success\n");
- ret = true;
- }
- if(dbuse(*dbprocess, szDBName) == FAIL){
- printf("ASB>> Open database name fail\n");
- ret = false;
- }else{
- printf("ASB>> Open database name success\n");
- ret = true;
- }
-
- return ret;
- }
-
- int
- main( int argc, char **argv )
- {
- DBPROCESS *dbprocess;
- if (!ConnectDataBase(&dbprocess))
- return 1;
-
- dbcmd(dbprocess, "SELECT card_No FROM D_blackList WHERE version='36'");
- if(dbsqlexec(dbprocess) == FAIL){
- printf("ASB>> Query Alarms table error\n");
- return 1;
- }
-
- DBINT result_code;
- char card_no[64];
- int rows = 0;
- while ((result_code = dbresults(dbprocess)) != NO_MORE_RESULTS){
- if (result_code == SUCCEED){
- memset(card_no, 0, sizeof(card_no));
- dbbind(dbprocess, 1, CHARBIND, (DBINT)0, (BYTE*)card_no);
-
- while (dbnextrow(dbprocess) != NO_MORE_ROWS){
- printf("ASB>> card_no=%s\n", card_no);
- }
- }
- }
-
- dbclose(dbprocess);
- return 0;
- }
ASB>> ConnectEMS conect MS SQL SERVER success
ASB>> Open database name success
ASB>> card_no=10000005
作者:帅得不敢出门 程序员群:31843264