我是在网上找的,我也不懂怎样用c连接sql,
不知对你是否有帮组但我建议你遇到这些问题的时候应该到网上先去
查查,google,baidu是自己最好的老师!OK!
用c语言连接SQL SERVER数据库
/**************
需要用到两个头文件:sqlfront.h sqldb.h
这两个文件一般在VC里有,没有话可以再装VC或SQL SERVER
(SQL SERVER默认没有装,要添加组件,安装后在
C:\Program Files\Microsoft SQL Server\80\Tools\DevTools\Include里有,一般VC都有)
还需要一个库:Ntwdblib.lib,一般在VC里也有,这个库要手工加到工程中:
/******************
这里测试用的数据库名:ctest
表名:a
结构
test(char) aa(char)
******************/
#define DBNTWIN32
/****************************
联机丛书:
Programming with DB-Library for C
DBMSDOS (for Microsoft MS-DOS)
DBMSWIN (for 16-bit Microsoft Windows)
DBNTWIN32 (for 32-bit Windows 95 and Microsoft Windows NT? 4.0)
**********************************/
#include <windows.h>
#include <sqlfront.h>
#include <sqldb.h>
/********************************
windows.h是用这两个头文件时要用的
*******************************/
#include <stdio.h>
main()
{
DBPROCESS *dbproc;
LOGINREC *login;
RETCODE r;
DBCHAR test[100];
DBCHAR aa[100];
dbinit();
login = dblogin();
if (login == NULL)
{
return (1);
}
DBSETLUSER(login, "sa");
DBSETLPWD(login, "");
dbproc = dbopen(login, "PINGCOMPUTER");
dbfreelogin(login);
if (dbproc == NULL)
{
printf("%s","sorry2\n");
return (1);
}
dbuse(dbproc, "ctest");
dbcmd(dbproc,"select test,aa from a");
//dbcmd(dbproc,"delete from a where test='bb'");
//dbcmd(dbproc,"insert into a(test) values('cc')");
r = dbsqlexec(dbproc);
if (r == FAIL)
{
printf("%s","sorry3\n");
return (1);
}
while (1)
{
r = dbresults(dbproc);
if (r == SUCCEED)
{
/* Process the rows with dbnextrow() */
dbbind (dbproc, 1, NTBSTRINGBIND, 0, test);
dbbind (dbproc, 2, NTBSTRINGBIND, 0, aa);//1,2就是第几个字段
//printf("%s\n","good");
while(dbnextrow (dbproc)!=NO_MORE_ROWS)
{
printf("%s\t%s\n",test,aa);
}
}
if ((r == FAIL) || (r == NO_MORE_RESULTS))
{
break;
}
}
return (0);
}