日期:2014-05-16  浏览次数:20883 次

关于使用DB-Library用C语言连接SQL Server数据库的问题
main(argc,   argv)  

int   argc;  

char   *argv[];  

{  

DBPROCESS   *dbproc;   /*   Our   connection   with   SQL   Server.   *  

LOGINREC   *login;   /*   Our   login   information.   */  

DBCHAR   password[20];  

RETCODE   result_code;  

fflush(stdout);  

/*   Initialize   DB-Library.   */  

if   (dbinit()   ==   FAIL)  

exit(ERREXIT);  

login   =   dblogin();  

DBSETLUSER(login,   "sa ");  

DBSETLPWD(login, "passwd ");  

dbproc   =   dbopen(login,   "sql ");  

dbcmd(dbproc,   "select   password   from   author   order   by   authorid ");  

dbsqlexec(dbproc);  

while   ((result_code   =   dbresults(dbproc))   !=   NO_MORE_RESULTS)  

{  

if   (result_code   ==   SUCCEED)  

{  

dbbind(dbproc,   1,NTBSTRINGBIND,   (DBINT)0,   (BYTE   *)password);  

printf( "\n   The   password   is: ");  

while   (dbnextrow(dbproc)   !=   NO_MORE_ROWS)  

{  

printf( "%s\n ",password);  

}  

}  

}  

dbexit();  

exit(STDEXIT);  

}  
这几天一个项目中用到C语言连接SQL   Server数据库的问题,上面是在网上找到的一段代码,使用的是DB-Library连接数据库.我的疑问是,这段代码如何连接远端的数据库的,数据库连接语句中没看到有对远端数据库服务器连接用到的IP地址和端口号赋值的啊,没有IP地址和端口号如何连接远端的数据库服务器呢?难道在
main(argc,   argv)  

int   argc;  

char   *argv[];  
一般的程序是通过argv变量传进IP地址及端口号的,但是这个地方在程序里也没有对argv参数的处理,请达人指点,这段程序到底如何连接远端的数据库服务器的呢?

------解决方案--------------------
关键是这行

dbproc = dbopen(login, "sql ");

"sql " 是在freetds.conf中定义的
如:
[sql]
host = ntbox.mydomain.com
port = 1433