读书人

数据库有关问题

发布时间: 2012-01-28 22:06:13 作者: rapoo

数据库问题 高手进
鄙人用vc2005写的一个MFC 对话框工程 写入数据库数据 如下:
#import "C:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF", "EndOfFile")


_ConnectionPtr pMyConnect=NULL;
HRESULT hr = pMyConnect.CreateInstance(__uuidof(Connection)));
if( FAILED(hr) )
return;
_bstr_t strConnect="Provider=SQLOLEDB; Server=lenove123;" //本机名lenove123,SQL表名note,账号密码为空,这里应如何设置
"Database=note.mdf; uid=; pwd=;";
//connecting to the database server now:
try{pMyConnect->Open(strConnect,"","",NULL);}
catch (_com_error &e)
{
::MessageBox(NULL,e.Description(),"警告",MB_OK | MB_ICONWARNING);
}
try
{
if(!m_pRecordset->Supports(adAddNew)) return;
m_pRecordset->AddNew();
m_pRecordset->Fields->GetItem(_variant_t("开始时间"))->Value=_bstr_t("2010-4-11 23:12:00");//这里的类型是否正确
m_pRecordset->Fields->GetItem(_variant_t("结束时间"))->Value=_bstr_t("2010-4-11 23:13:00");
m_pRecordset->Fields->GetItem(_variant_t("age"))->Value=_variant_t((short) 60);
m_pRecordset->Update();
}
catch (_com_error &e)
{
::MessageBox(NULL, "数据写入失败!","提示",MB_OK | MB_ICONWARNING);
}
编译成功但是没有写入数据,是不是我数据库SQL中设置数据类型不正确,应该怎么设置,

[解决办法]
http://www.vckbase.com/document/viewdoc/?id=496
——插入记录。可以先用AddNew()方法新增一个空记录,再用PutCollect(字段名,值)输入每个字段的值,最后再Update()更新到库中数据既可。其中变量m_Name和m_Age分别为姓名及年龄编辑框的成员变量名。代码所下所示:

C/C++ code
try    {        // 写入各字段值        m_pRecordset->AddNew();        m_pRecordset->PutCollect("Name", _variant_t(m_Name));        m_pRecordset->PutCollect("Age", atol(m_Age));        m_pRecordset->Update();        AfxMessageBox("插入成功!");    }    catch(_com_error &e)    {        AfxMessageBox(e.ErrorMessage());    } 

读书人网 >VC/MFC

热点推荐