首先编译安装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