我看了好多资,书上对增加数据都是用AddNew()来完成,但这样不是很灵活,VC里是否可以象ASP里用ADO一样,直接用数据库连接对象直接执行insert,update,del等操作,如
conn.execute("INSERT INTO TAB (...)VALUES(...)"),谢谢!!
conn.execute("INSERT INTO TAB (...)VALUES(...)"),谢谢!!
解决方案 »
- exe文件释放其他文件的原理和过程
- VC中socket通信用完成端口好还是select好?
- MFC 对话框程序中显示jpg图片
- ■MFC里怎么把CString的数据作为函数的返回值?■
- 为什么系统编译提示我的 MFC 工程 VK_PAGE_DOWN 非法?
- 哀悼我的百合 伤心欲决
- 关于ComboBox的送分问题
- 关于用ADO读取数据库失败的奇怪问题?在一台机器上用该程序可读取远程数据库,而在另外一台机器上则不能?
- 谁有MPEG-LAYER3的详细资料或连接?
- 让高手见笑的问题,如何将16进制的字符串换成字符?
- 在windows98下怎样用windows API 取得中文字符的宽度?
- VC中如何调用Delphi的dll?
CDatabase m_db;
...
CRecordset rs(&m_db);
CString strSQL;
//存储过程的名字为newprjid,该存储过程返回一个整数,字段名为prjid
strSQL = "{CALL newprjid}";
rs.Open(AFX_DB_USE_DEFAULT_TYPE, strSQL);
rs.GetFieldValue("prjid", m_prjguid);
rs.Close();
short nIndex = m_cDataGrid.GetRow();///获得选中记录的位置
try
{
rs->Move((long)nIndex,_variant_t((long)adBookFirst));
vYhbh = rs->GetCollect(_variant_t(long(0)));
vYhmc = rs->GetCollect(_variant_t(long(1)));
vBmmc = rs->GetCollect(_variant_t(long(2)));
vKsmc = rs->GetCollect(_variant_t(long(3)));
vRylb = rs->GetCollect(_variant_t(long(4))); m_strQuery.Format("SELECT CZQX FROM QYHXXB WHERE YHBH='%s'",(LPCTSTR)(_bstr_t)vYhbh);
TRACE("操作权限的查询语句:%s",m_strQuery);
cmd->CommandText = (_bstr_t) m_strQuery
rs = cmd->Execute(&vra,vt1, adCmdText);
ASSERT(rs!=NULL);
vCzqx = rs->GetCollect(_variant_t(long(0)));}
if(dlg.m_yhmc != (LPCTSTR)(_bstr_t)vYhmc)
{
///用户名称改变,才更新用户表
m_strQuery.Format("UPDATE QYHB SET YHM='%s' WHERE YHBH='%s'",dlg.m_yhmc,dlg.m_yhbh);
TRACE("用户表更新记录语句:%s\n",m_strQuery);
cmd->CommandText = (_bstr_t) m_strQuery.GetBuffer(0); cmd->Execute(&vra,vt1, adCmdText);
}
m_strQuery.Format("INSERT INTO QYHB(YHBH,YHM) VALUES('%s','%s')",dlg.m_yhbh,dlg.m_yhmc);
TRACE("插入记录语句:%s\n",m_strQuery);
cmd->CommandText = (_bstr_t) m_strQuery cmd->Execute(&vra,vt1, adCmdText);
以上是我的程序中的片断用的是Command对象的Execute方法
Connection的应该是一样的