ADO连接SQL等数据库程序手记

相信很多刚用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数据库的程序了,其他的东西大家去扩展,也可以改成图形界面下的东东 祝大家好运.