相信很多刚用VC做数据库(不管是SQL 还是ACCESS还是ORACLE)编程时会不知道从何下手,不明白VC是如何与SQL等数据库交互的
这时候大多数人会想到百度,而搜到的是千篇一律的文章.原理是说的很清楚了,但是却有很多人实际操作起来困难
我现在假设看这篇文章的人都已经看过ADO数据库编程的相关文章.网上讲的都是ACCESS的 今天我就用SQL的演式
我今天只弄操作
一: 建立数据库 user 表 UserInfo 表中加列 name 与 password
二:建立数据源 user
1.开始--管理工具 --数据源 ---系统DSN--添加--sql server--完成--名称:user 描述:这个随便填
服务--[local]--使用网络登录ID的windows NT验证(W)(这里我是选这个当然你们选另一个也行只要后面要对应就行)选上--下一步 --更改默认的数据库为:user --下一步--完成
--应用
三:开始编写程序
我这就建立windows consle application 程序 工程名为:3
首先导入 #import指令导入ADO库文件
在stdafx.h 文件后面下加入:
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF","EndOfFile")
在3.cpp中的代码如下 下面也有一些简单说明 我想大家应该看的懂(关键一点:pConn->Open("")这分号里面的东西不知道怎么填的人请先看文章最后)
#include "stdafx.h"
include <iostream>
using std::cout;
using std::endl;
int _tmain(int argc, _TCHAR* argv[])
{
// 初始化COM
CoInitialize(NULL);
try
{
//初始化连接对象
_ConnectionPtr pConn("ADODB.Connection");
//打开数据库连接
pConn->Open("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=user;Data Source=ZM-076D96586360","","",adConnectUnspecified);
//初奴化记录集对象
_RecordsetPtr pRs("ADODB.Recordset");
pRs->Open("Select * From UserInfo",_variant_t(pConn,true),adOpenStatic,adLockOptimistic,adCmdText);
cout << _bstr_t(pRs->Fields->Item["name"]->Value);
pRs->Close();//关闭记录集
pConn->Close();//关闭连接
}
catch(_com_error &e)
{
CoUninitialize();//关闭COM对象
cout << e.ErrorMessage();
return 0;
}
// return 0;
}
编译运行 就会打出name列里的第一个值了 其他的输出值以些类推
如果要全部列值输出的话:
if(!pRs->EndOfFile)
{
for(long int i = 0; i < pRs->Fields->Count; i++)
{
cout << _bstr_t(pRs->Fields->Item[_variant_t(i)]->Value) << "\t";
}
cout << endl;
pRs->MoveNext();
}
其他命令可以自己去看资料
现在用ADO与SQL数据库连接就完成了
========如何填写pConn->Open("")这分号里面的东西
首先建立一个文本,改为.udl的后缀--双击--提供程序为"Microsoft OLE DB Provider for SQL Server"(这里面各种数据库有都有自己的选项,因为我们的是SQL的所以选这个)---下一步--数据库名称 "user" --测试连接--连接成功的话退出
然后用记事本打开这个.udl文件,把里面的Provider与其之后的内容COPY出来是这样的 Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=user;Data Source=ZM-076D96586360 这就是我们想要的东东
于是 pConn->Open("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=user;Data Source=ZM-076D96586360","","",adConnectUnspecified); 就出来了 后面的"","",这两个分别是用户名与密码 我这里为都为空 adConnectUnspecified 这个是默认的(同步打开连接)
到这里我们已经编写了一个简单的ADO连接SQL数据库的程序了,其他的东西大家去扩展,也可以改成图形界面下的东东 祝大家好运.