求救!!!C连接SqlServer问题,搞了一整天都没弄好。

时间:2022-05-16 19:15:39
#define DBNTWIN32
#include <stdio.h>
#include <windows.h>
#include <sqlfront.h>
#include <sqldb.h>
#pragma comment(lib, "ntwdblib")

int err_handler (PDBPROCESS dbproc, INT severity,
INT dberr, INT oserr, LPCSTR dberrstr, LPCSTR oserrstr)
{
printf ("DB-Library Error %i: %s\n", dberr, dberrstr);
if (oserr != DBNOERR)
{
printf ("Operating System Error %i: %s\n", oserr, oserrstr);
}
return (INT_CANCEL);
}

int msg_handler (PDBPROCESS dbproc, DBINT msgno, INT msgstate,
INT severity, LPCSTR msgtext, LPCSTR server,
    LPCSTR procedure, DBUSMALLINT line)
{
printf ("SQL Server Message %ld: %s\n", msgno, msgtext);
return (0);
}

main()
{
PDBPROCESS dbproc;
PLOGINREC login;
DBCHAR name[100];
dberrhandle (err_handler);
dbmsghandle (msg_handler);
dbinit ();
login = dblogin ();
DBSETLUSER (login, "sa");
DBSETLPWD (login, "sa");
dbproc = dbopen (login, "");
dbcmd (dbproc, "select username from program..tbl_userinfo");
dbsqlexec (dbproc);
if (dbresults (dbproc) == SUCCEED)
{
dbbind (dbproc, 1, NTBSTRINGBIND, 0, name);
while (dbnextrow (dbproc) != NO_MORE_ROWS)
{
printf ("%s\n", name);
}
}
dbexit ();
return 0;
}


错误信息为:

DB-Library Error 10004:无法连接:SQL Server 不可用或不存在。无法连接:SQL Server 不存在或拒绝网络访问。
Operating System Error 2:ConnectionOpen (Connect()).
DE-Library Error 10001:NULL DBPROCESS pointer encountered.
DE-Library Error 10001:NULL DBPROCESS pointer encountered.
DE-Library Error 10001:NULL DBPROCESS pointer encountered.
系统找不到指定路径。

在此先谢过各位大虾了!

4 个解决方案

#1


佩服搞C的人

SQL Server 服务启动了吗?网络通吗?

#2


服务启动了,查询分析器是可以查询的。
本来想使用ADO的,觉得麻烦,顺便想学学这个。
到网上搜了半天也没有找到解决方案,只听说将SQLServer的端口改为4000就可以了,但我不知道在哪里改端口。

请大虾们支招!!!谢谢!!!

#3


对了,我连接的本地的SQLServer,所以网络肯定没问题。

#4


不需要修改SQLServer的端口,默认的1433就可访问。
如果你修改了SQLServer的端口,那么对应的SQLServer客户端的访问端口也要改变一样的值,否侧db-library程序无法成功访问SQLServer。

#1


佩服搞C的人

SQL Server 服务启动了吗?网络通吗?

#2


服务启动了,查询分析器是可以查询的。
本来想使用ADO的,觉得麻烦,顺便想学学这个。
到网上搜了半天也没有找到解决方案,只听说将SQLServer的端口改为4000就可以了,但我不知道在哪里改端口。

请大虾们支招!!!谢谢!!!

#3


对了,我连接的本地的SQLServer,所以网络肯定没问题。

#4


不需要修改SQLServer的端口,默认的1433就可访问。
如果你修改了SQLServer的端口,那么对应的SQLServer客户端的访问端口也要改变一样的值,否侧db-library程序无法成功访问SQLServer。