ADO连接SQL.docx

上传人:b****3 文档编号:2171068 上传时间:2022-10-27 格式:DOCX 页数:13 大小:18.25KB
下载 相关 举报
ADO连接SQL.docx_第1页
第1页 / 共13页
ADO连接SQL.docx_第2页
第2页 / 共13页
ADO连接SQL.docx_第3页
第3页 / 共13页
ADO连接SQL.docx_第4页
第4页 / 共13页
ADO连接SQL.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

ADO连接SQL.docx

《ADO连接SQL.docx》由会员分享,可在线阅读,更多相关《ADO连接SQL.docx(13页珍藏版)》请在冰豆网上搜索。

ADO连接SQL.docx

ADO连接SQL

VC连接SQL2000数据库

 

        对于初学VC的朋友来说,连接数据库其实是一件不容易的事情。

记得我当时为了与数据库连接上,找了好多资料,上网看了好多文章,都没有解决这个问题。

后来,有个网友帮我解决了,我再次表示感谢。

为了后来VC初学的朋友的方便,我现在将VC连接SQL2000数据库的方法写下来,就算你是初学,即使刚入门,也可以成功连接数据库的。

 (注意:

由于文章过长,本文章未写完,如果想要整个的代码,可以留个邮箱,或发邮件到yinfulin888888@索要)

        先做点准备工作吧。

1学VC连接数据库,要安装两个软件,VisualC++6.0和SQL2000。

怎么安装,我不说了。

2要连接数据库先要启动SQL2000的服务器,看下图吧

         

        单击开始,就可以启动了。

3然后,还是上面,打开“企业管理器”,要建立数据库和表了。

打开根目录后,有个

(local)(WindowsNT)的,在上面单击右键,选择属性,再选择安全性,身份验证选择上面那个SQLServer和Windows,再确定,是。

等一下就好了。

4建立数据库,在“数据库”根目录上,单击右键,选择“新建数据库”,输入数据库名字

db_client(也可以用其他的名字,但是下面有些地方会用到),展开db_client,在“表”上右键单击,选择“新建表”,建立如下表:

完成之后,直接关闭,提示保存,选择“是”,然后填入表名字,tb_user,即可。

然后在表中填入数据。

右键单击刚建立的表tb_user,选择“打开表”,“返回所以行”,填入数据,(为了方便登录,第一行都输入1吧)。

这样表就建立好了。

5现在要开始正式编程了。

打开VC6.0.

选择“文件”,“新建”,“工程”,MFCAppWizard(exe),工程名字为:

Client,路径自己选择一下吧。

第一步,选择“对话框应用程序”,直接“完成”。

6现在要开始写程序了,

先新建一个类吧,“Insert”,“Newclass”,classicType选择:

GenericClassic,Name为:

CADO,

OK即可。

ADO.h文件的代码如下:

#if!

defined(AFX_ADO_H__9B5E5042_244A_4558_A0EA_DECC024DB191__INCLUDED_)

#defineAFX_ADO_H__9B5E5042_244A_4558_A0EA_DECC024DB191__INCLUDED_

 

#include"stdafx.h"

 

#if_MSC_VER>1000

#pragmaonce

#endif//_MSC_VER>1000

 

classADO 

{

public:

        _RecordsetPtrm_pRecordset;//定义记录集指针

        _ConnectionPtrm_pConnection;//定义连接指针

 

public:

        voidGetData(CStringstrSQL,CStringUserID);

        CStringm_UserID;//用户ID

        CStringm_UserPwd;//用户密码

        CStringm_UserType;//用户类型

//     boolTest(CStringSQL);

        voidrstOpen(CStringTSQL);//打开记录集

        voidExecuteSQL(CStringSQL);//执行SQL语句

        boolMove(intnRecordNum);//移动记录集

        CStringGetFieldValue(CStringField);//获得字段值

        voidGetErrors(_com_erroreErrors);//获得错误信息

        boolOpen(CStringsrecordset,UINTadCmd);//打开记录集

        intGetRecordCount();//获得记录个数

        boolMoveFirst();//最开始一条

        boolMoveNext();//下一条

        boolMoveLast();//最后一条

        boolMovePrevious();//前一条

        voidclose();//关闭连接和记录集

        

        ADO();

        virtual~ADO();

        

};

 

#endif//!

defined(AFX_ADO_H__9B5E5042_244A_4558_A0EA_DECC024DB191__INCLUDED_)

 

ADO.cpp文件代码为:

 

#include"stdafx.h"

#include"Client.h"

#include"ADO.h"

 

#ifdef_DEBUG

#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;

#definenewDEBUG_NEW

#endif

//////////////////////////////////////////////////////////////////////

//Construction/Destruction

//////////////////////////////////////////////////////////////////////

 

ADO:

:

ADO() //构造ADO对象时候自动调用打开连接

{

        :

:

CoInitialize(NULL);//初始化

        try

        {

                  m_pConnection.CreateInstance(_uuidof(Connection));//建立ADO连接的句柄

                  _bstr_tstrConnect="Provider=SQLOLEDB;datasource=127.0.0.1;Database=db_client;uid=sa;pwd=sa;";

//注意:

如果你建立数据库时候没有用户名和密码,上面一句该为下面的:

strConnect="Provider=SQLOLEDB;datasource=127.0.0.1;Database=db_client;uid=;pwd=;";

 

                  m_pConnection->Open(strConnect,"","",0);//打开连接

        }

        catch(_com_errore)

        {

                  AfxMessageBox(e.Description());

        }

}

 

ADO:

:

~ADO()

{

 

}

 

voidADO:

:

close() //关闭记录集和连接

{

        m_pRecordset->Close();

        m_pConnection->Close();

        m_pRecordset=NULL;

        m_pConnection=NULL;

        :

:

CoUninitialize();

}

 

boolADO:

:

MovePrevious() //记录集前一条

{

        try

        {

                  m_pRecordset->MovePrevious();

        }

        catch(_com_errore)

        {

                  AfxMessageBox(e.Description());

                  returnfalse;

        }

        returnTRUE;

}

 

boolADO:

:

MoveLast()//记录集最后一条

{

        try

        {

                  m_pRecordset->MoveLast();

        }

        catch(_com_errore)

        {

                  AfxMessageBox(e.Description());

                  returnfalse;

        }

        returnTRUE;

}

 

boolADO:

:

MoveNext()//记录集下一条

{

        try

        {

                  m_pRecordset->MoveNext();

        }

        catch(_com_errore)

        {

                  AfxMessageBox(e.Description());

                  returnfalse;

        }

        returnTRUE;

}

 

boolADO:

:

MoveFirst()//记录集开始一条

{

        try

        {

                  m_pRecordset->MoveFirst();

        }

        catch(_com_errore)

        {

                  AfxMessageBox(e.Description());

                  returnfalse;

        }

        returnTRUE;

}

 

intADO:

:

GetRecordCount() //获得记录数目

{

        intnCount;

        try

        {

                  m_pRecordset->MoveFirst();

        }

        catch(_com_errore)

        {

                  return0;

        }

        if(m_pRecordset->adoEOF)

                  return0;

        while(!

m_pRecordset->adoEOF)

        {

                  m_pRecordset->MoveNext();

                  nCount++;

        }

        m_pRecordset->M

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1