如何在cc++编程中使用数据库(sql server)?

如何在cc++编程中使用数据库(sql server)?,第1张

*** 作 sql server 需要用到 ADO 驱动,这种驱动使用MFC做的包装类比较多一些,在控制台直接编写代码可能稍显繁琐。

可以参考

http://wenku.baidu.com/view/3995b8c8050876323112122d.html

1.准备工作: 准备相关的软件(Eclipse除外,开源软件可以从官网下载) <1>.Microsoft SQL server 2005 Express Edition 下载地址:http://download.microsoft.com/download/0/9/0/09020fab-d2c3-4a8c-b9e0-db53a7a30ae8/SQLEXPR_CHS.EXE <2>.SQL Server Management Studio 下载地址:http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796#filelist <3>.SQL Server 2005 driver for JDBC 下载地址:http://download.microsoft.com/download/8/B/D/8BDABAE2-B6EA-41D4-B903-7916EF3690EF/sqljdbc_1.2.2323.101_enu.exe 2.JDBC连接SQL Server的驱动安装 ,前两个是属于数据库软件,正常安装即可(注意数据库登陆不要使用windows验证) 是用java连接吗? 如果是,方法如下: <1>将JDBC解压缩到任意位置,比如解压到C盘program files下面,并在安装目录里找到sqljdbc.jar文件,得到其路径开始配置环境变量 在环境变量classpath 后面追加 C:\Program Files\Microsoft SQL Server2005 JDBC Driver\sqljdbc_1.2\enu\sqljdbc.jar <2>设置SQLEXPRESS服务器: a.打开SQL Server Configuration Manager ->SQLEXPRESS的协议 ->TCP/IP b.右键单击启动TCP/IP c.双击进入属性,把IP地址中的IP all中的TCP端口设置为1433 d.重新启动SQL Server 2005服务中的SQLEXPRESS服务器 e.关闭SQL Server Configuration Manager <3>打开刚刚安装好的 SQL Server Management Studio,连接SQLEXPRESS服务器, 新建数据库,起名字为sample <4>打开Eclipse a.新建工程->Java ->Java project,起名为Test b.选择eclipse->窗口->首选项->Java->installed JRE 编辑已经安装好的jdk,查找目录添加sqljdbc.jar c.右键单击目录窗口中的Test, 选择Build Path ->Configure Build Path..., 添加扩展jar文件,即把sqljdbc.jar添加到其中 <5>编写Java代码来测试JDBC连接SQL Server数据库

(1).在文件stdafx.h中最后一个#endif的前一行写入

#import

"C:\program

files\common

files\System\ado\msado15.dll"

no_namespace

\

rename("EOF","EndOfFile")

\

rename("LockTypeEnum","newLockTypeEnum")

\

rename("DataTypeEnum","newDataTypeEnum")

\

rename("FieldAttributeEnum","newFieldAttributeEnum")

\

rename("EditModeEnum","newEditModeEnum")

\

rename("RecordStatusEnum","newRecordStatusEnum")

\

rename("ParameterDirectionEnum","newParameterDirectionEnum")

如果你的系统不是安装在C盘的话就把#import

后面的C改成系统所有的盘

--------------------------------------------------------------------------

(2).在C***App类的public:下加入

_RecordsetPtr

m_pADOSet

bool

ADOExecute(_RecordsetPtr

&ADOSet,

_variant_t

&strSQL)

在private:下加入

private:

_ConnectionPtr

ADOConn

--------------------------------------------------------------------------

在class

C***App

:

public

CWinApp

{

...

}之后#endif之前加入

extern

CxxxApp

theApp

--------------------------------------------------------------------------

(3)在BOOL

C***App::InitInstance()函数中Enable3dControls()

//

Call

this

when

linking

to

MFC

statically这一行下面加入

if(

FAILED(::CoInitialize(NULL))

)

{

AfxMessageBox("ADO

Init

failed")

return

false

}

try

{

ADOConn.CreateInstance(__uuidof(Connection))

ADOConn->Open("DSN=OBDC数据源Provider=MSDASQL","用户","密码",

adConnectUnspecified)//这一行要自已修改

}

catch(_com_error

&e)

{

CString

err

err.Format("%s",

(char*)(e.Description())

)

AfxMessageBox(err)

}

catch(...)

{

AfxMessageBox("Unknown

Error...")

}

m_pADOSet.CreateInstance(__uuidof(Recordset))

-------------------------------------------------------------------------

并在文件最后加上如下代码:

bool

CxxxApp::ADOExecute(_RecordsetPtr

&ADOSet,

_variant_t

&strSQL)

{

if

(

ADOSet->State

==

adStateOpen)

ADOSet->Close()

try

{

ADOSet->Open(strSQL,

ADOConn.GetInterfacePtr(),

adOpenStatic,

adLockOptimistic,

adCmdUnknown)

return

true

}

catch(_com_error

&e)

{

CString

err

err.Format("ADO

Error:

%s",(char*)e.Description())

AfxMessageBox(err)

return

false

}

}

------------------------------------------------------------------------

最后就可以在登录时执行SQL语句了,比如用户为CString

strUser,

密码是CString

strPwd数据库表是user_table(user_id,

user_name,

user_pwd)则

_variant_t

sqlQuery

sqlQuery

=

"select

*

from

user_table

where

user_name='"+strUser

+"'

and

user_pwd='"+

strPwd

+"'"

theApp.ADOExecute(theApp.m_pADOSet,

sqlQuery

)

int

iCount

=

theApp.m_pADOSet->GetRecordCount()

if

(

0==iCount

)

{

AfxMessageBox(_T("密码错误"),

MB_ICONEXCLAMATION)

return

}

else

{

AfxMessageBox(_T("登录成功"),

MB_ICONEXCLAMATION)

不知道能否帮到你,参考下把


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6762535.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存