求C语言来操作SQL SERVER数据库的实例

BaoBrother 2009-12-08 05:22:07
采用ODBC数据库连接,进行数据的添加,修改,删除,查询等操作。
...全文
703 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
BaoBrother 2009-12-09
  • 打赏
  • 举报
回复
唉,改用ADO算了!
BaoBrother 2009-12-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 tr0j4n 的回复:]
Google +MSDN
[/Quote]

你不如叫我到书店自己看书就行啦,总会有的!

在这里发贴提问就是想尽快解决问题,而不需要走太多弯路。...
Dingnifei123 2009-12-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 tr0j4n 的回复:]
Google +MSDN
[/Quote]
你真懒,哈哈~
MoXiaoRab 2009-12-09
  • 打赏
  • 举报
回复
Google +MSDN
BaoBrother 2009-12-09
  • 打赏
  • 举报
回复
楼上的也不好啊,请看看以下代码,网上找到的整理了一下,可以运行通过!

但是出现些问题,执行第一句查询可以通过,执行第二句(增加记录)与第三句(修改记录)时不能达到增加与修改的目的,请教原因?????

//第一句:SQLCHAR sql[37] = "select * from test";
//第二句:SQLCHAR sql[50] = "insert into test values('aaa','100')";
//第三句:SQLCHAR sql[50] = "update test set a='YYY'";




/////////////代码如下:



#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#include <sql.h>
#include <sqlext.h>
#include <sqltypes.h>

int main()
{
SQLRETURN ret;
SQLHENV henv;// 环境句柄
SQLHDBC hdbc;// 连接句柄
SQLHSTMT hstmt;// 语句句柄

SQLCHAR dsn[]="csql"; //数据库名

SQLCHAR DBNAME[]="test"; //数据库名

SQLCHAR username[]="sa"; // 用户名

SQLCHAR password[]="168"; // 口令

SQLCHAR sql[37] = "select * from test";
//SQLCHAR sql[50] = "insert into test values('aaa','100')";
//SQLCHAR sql[50] = "update test set a='YYY'";

SQLCHAR id[50],name[50];
SQLINTEGER len;


ret=SQLAllocEnv(&henv);//分配环境句柄
if(ret==SQL_SUCCESS){
printf("环境分配成功!\n开始分配连接。。。\n");

ret=SQLAllocConnect(henv,&hdbc); //分配连接句柄

if(ret==SQL_SUCCESS){
printf("连接分配成功!\n");

ret=SQLSetConnectOption(hdbc,SQL_AUTOCOMMIT,SQL_AUTOCOMMIT_OFF);
if(ret==SQL_SUCCESS){
printf("设置连接属性成功!\n开始连接数据库。。。\n");

ret=SQLConnect(hdbc,dsn,4,username,2,password,3);

if(ret==SQL_SUCCESS || ret==SQL_SUCCESS_WITH_INFO){
printf("连接成功!\n开始分配语句。。。\n");

ret=SQLAllocStmt(hdbc,&hstmt);
if(ret==SQL_SUCCESS){
printf("分配语句成功!\n开始执行语句。。。\n");

//ret=SQLExecDirect (hstmt,sql,50);
ret=SQLExecDirect(hstmt,sql,SQL_NTS);

if(ret==SQL_SUCCESS){
printf("执行语句成功!\n开始取出数据。。。\n");
SQLBindCol(hstmt,1,SQL_CHAR,(SQLPOINTER)id,50,&len);
SQLBindCol(hstmt,2,SQL_CHAR,(SQLPOINTER)name,50,&len);
while(SQLFetch(hstmt)==SQL_SUCCESS){
printf("%s----%s\n",id,name);
}
}else{
printf("执行语句失败!");
}
SQLCloseCursor(hstmt);
}else{
printf("分配语句失败!");
}
}else{
printf("连接失败!");
}
}else{
printf("设置连接属性失败!");
}
SQLDisconnect(hdbc);
SQLFreeConnect(hdbc);
}else{
printf("连接分配错误!");
}
SQLFreeEnv(henv);
}else{
printf("环境分配错误!");
}
printf("\n关闭连接并且释放资源!");

return 0;
}
yschenwei 2009-12-09
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20031209/16/2545085.html
BaoBrother 2009-12-08
  • 打赏
  • 举报
回复
不是很有用哦,可能我笨吧,初学看不懂,我想要的不是MFC代码,是想用纯C代码,利用ODBC API操作MS-SQL 数据库。
xiaoshun123 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 baobrother 的回复:]
采用ODBC数据库连接,进行数据的添加,修改,删除,查询等操作。
[/Quote]

好长时间不用了,模糊记得:
在vc中就是操作两个类:一个是CRecordset类、一个是*data*??逻辑挺简单的。
现学就行。
给你百度了一个网站,希望对你有用:
http://www.vckbase.com/document/viewdoc/?id=597
冻结 2009-12-08
  • 打赏
  • 举报
回复
推荐个c++库,OTL。

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧