MFC数据库编程源代码

MFC数据库编程源代码,第1张

10.Sql Server7.0/2000数据库

/*

#import "c:\Program Files\Common Files\System\ADO\msado15.dll" \

no_namespace rename("EOF", "EndOfFile")

*/

CoInitialize(NULL)// 初始化OLE/COM库环境 ,为访问ADO接口做准备

_RecordsetPtr m_pRecordset("ADODB.Recordset")

_ConnectionPtr m_pConnection("ADODB.Connection")

_bstr_t bstrSQL("select * from stu_info")//查询语句

char * query_cmd = "DELETE FROM stu_info WHERE sname = ’本拉登’"

try

{

// 创建Connection对象

m_pConnection.CreateInstance("ADODB.Connection")

// 设置连接字符串,必须是BSTR型或者_bstr_t类型

_bstr_t strConnect= "Provider=SQLOLEDBServer=(local)Database=db2uid=pwd="

//若数据库在网络上则Server为形如(192.168.1.5,3340)

//用户sa和密码123只是针对我的库

m_pConnection->Open(strConnect,"","",adModeUnknown)

if(m_pConnection==NULL)

cerr<<"Lind data ERROR!\n"

// 创建记录集对象

m_pRecordset.CreateInstance(_uuidof(Recordset))

// 取得表中的记录

m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),

adOpenDynamic,adLockOptimistic,adCmdText)

_variant_t vsnum,vsname,vsage,vssex,vsmajor//对应库中的snum,sname,sage,ssex,smajor

cout <<"学号 姓名 年龄 姓别 专业"

cout <<"\n----------------------------------------------------------------\n"

while (!m_pRecordset->EndOfFile)

{

vsnum = m_pRecordset->GetCollect(_variant_t((long)0))//这儿给字段编号和字段名都可以

vsname = m_pRecordset->GetCollect("sname")

vsage = m_pRecordset->GetCollect("sage")

vssex = m_pRecordset->GetCollect("ssex")

vsmajor = m_pRecordset->GetCollect("smajor")

if (vsnum.vt != VT_NULL &&vsname.vt != VT_NULL &&vsage.vt != VT_NULL

&&vssex.vt != VT_NULL &&vsmajor.vt != VT_NULL)

{

cout.setf(ios::left)

cout <<setw(14) <<(char*)(_bstr_t)vsnum

cout <<setw(14) <<(char*)(_bstr_t)vsname

cout <<setw(8) <<vsage.lVal

cout <<setw(8) <<(char*)(_bstr_t)vssex

cout <<setw(20) <<(char*)(_bstr_t)vsmajor

cout.unsetf(ios::left)

cout <<endl

}

m_pRecordset->MoveNext()///移到下一条记录

}

cout <<"\n----------------------------------------------------------------\n"

cout <<"\n请输入你要添加的学生信息\n"

cout <<"学号:"

cin >>student.snum

cout <<"\n姓名:"

cin >>student.sname

cout <<"\n年龄:"

cin >>student.sage

cout <<"\n姓别:"

cin >>student.ssex

cout <<"\n专业:"

cin >>student.smajor

m_pRecordset->MoveFirst()//移动到第一条记录

m_pRecordset->AddNew()///添加新记录

m_pRecordset->PutCollect("snum",_variant_t(student.snum))

m_pRecordset->PutCollect("sname",_variant_t(student.sname))

m_pRecordset->PutCollect("sage",_variant_t(student.sage))

m_pRecordset->PutCollect("ssex",_variant_t(student.ssex))

m_pRecordset->PutCollect("smajor",_variant_t(student.smajor))

m_pRecordset->Update()

m_pConnection->Execute(query_cmd,NULL,1)//用Execute执行sql语句来删除

m_pRecordset->Close()// 关闭记录集

}

// 捕捉异常

catch(_com_error e)

{

// 显示错误信息

cerr <<"\nERROR:" <<(char*)e.Description()//抛出异常

}

if(m_pConnection->State)

m_pConnection->Close()

::CoUninitialize()

20.数据库存入二进制字段数据

/*

#import "c:\Program Files\Common Files\System\ADO\msado15.dll" \

no_namespace rename("EOF", "EndOfFile")

*/

CoInitialize(NULL)

_RecordsetPtr pRs=NULL

_StreamPtr pStream=NULL

pRs.CreateInstance(_uuidof(Recordset))

pStream.CreateInstance(__unidof(Stream))

_bstr_t ConnectString(("Provider=Microsoft.Jet.OLEDB.4.0Data Source=%%1Persist Security Info=False")//C:\\mydb.mdb

pRs->Open(_bstr_t("Blob"),ConnectString,adOpenKeyset,adLockOptimistic,adCmdTable)

_variant vtSource

vtSource.vt=VT_ERROR

_bstr_t bstrUser(L"")

_bstr_t bstrPass(L"")

pStream->Type=adTypeBinary

pStream->Open(vtSource,adModeUnknown,adOpenStreamUnspecified,bstrUser,bstrPass)

pStream->LoadFromFile(_bstr_t(%%3))//"C:\\mypic.bmp"

pRs->AddNew()

pRs->Fields->GetItem(_variant_t(%%2))->put_Value(_variant_t(pStream->Read(adReadAll)))//"Image"

pRs->()

pStream->Close()

pRs->Close()

CoUninitialize()

21.数据库取出二进制字段数据

/*

#import "c:\Program Files\Common Files\System\ADO\msado15.dll" \

no_namespace rename("EOF", "EndOfFile")

*/

CoInitialize(NULL)

_RecordsetPtr pRs=NULL

_StreamPtr pStream=NULL

pRs.CreateInstance(_uuidof(Recordset))

pStream.CreateInstance(__unidof(Stream))

_bstr_t ConnectString(("Provider=Microsoft.Jet.OLEDB.4.0Data Source=%%1Persist Security Info=False")//C:\\mydb.mdb

pRs->Open(_bstr_t("Blob"),ConnectString,adOpenKeyset,adLockOptimistic,adCmdTable)

pStream->Write(_variant_t(pRs->Fields->GetItem(_variant_t(%%2))->GetValue()))//"Image"

pStream->SaveToFile(_bstr_t(%%3),adSaveCreateOverWrite)//"C:\\mypic.bmp"

pStream->Close()

pRs->Close()

CoUninitialize()

6.0的

D:\Program Files\Microsoft Visual Studio\VC98\MFC

2003的

D:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc

可能安装目录不同,位置也不同,你可以进高度模式进去看源文件,

2003也可以在classView中看到


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

原文地址: http://outofmemory.cn/yw/8167926.html

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

发表评论

登录后才能评论

评论列表(0条)

保存