我要取sub_menu表中,字段menu_id的最大值,
用ADO写了以下代码,
SQL语句:select max(menu_id) from sub_menu,在ACCESS中可以正常使用,
但是在ADO中,提示如下错误“项目在所需的名称或序数中未被发现”
是为什么呢?
还是,ADO不支持这样的函数操作?m_Recordset.CreateInstance (__uuidof(Recordset));
lcs_strsql.Format("select max(menu_id) from sub_menu");m_OutPutCount = 1;
strcpy(m_sOutPutParams[0].Param_Name,"max(menu_id)");
m_sOutPutParams[0].Param_Length = 30;try{
m_Recordset->Open(
(_bstr_t)lcs_strsql,
m_Connection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
//取查询结果
iRowId = 0;
while (!m_Recordset->adoEOF ) {
iRowId++;
for(iFieldId=0;iFieldId<m_OutPutCount;iFieldId++){
pField = m_Recordset->Fields->Item [m_sOutPutParams[iFieldId].Param_Name];
//取字段
if(pField->Value.vt==VT_NULL)
lcs_field ="";
else {
lcs_field = (char *)_bstr_t(pField->Value );
lcs_field.TrimLeft();
lcs_field.TrimRight();
}
}
m_Recordset->MoveNext ();
}
}catch(_com_error &Error_code){
_bstr_t bstrSource(Error_code.Source());
_bstr_t bstrDescrition(Error_code.Description ());
AfxMessageBox("数据处理失败!");
return;
}
用ADO写了以下代码,
SQL语句:select max(menu_id) from sub_menu,在ACCESS中可以正常使用,
但是在ADO中,提示如下错误“项目在所需的名称或序数中未被发现”
是为什么呢?
还是,ADO不支持这样的函数操作?m_Recordset.CreateInstance (__uuidof(Recordset));
lcs_strsql.Format("select max(menu_id) from sub_menu");m_OutPutCount = 1;
strcpy(m_sOutPutParams[0].Param_Name,"max(menu_id)");
m_sOutPutParams[0].Param_Length = 30;try{
m_Recordset->Open(
(_bstr_t)lcs_strsql,
m_Connection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
//取查询结果
iRowId = 0;
while (!m_Recordset->adoEOF ) {
iRowId++;
for(iFieldId=0;iFieldId<m_OutPutCount;iFieldId++){
pField = m_Recordset->Fields->Item [m_sOutPutParams[iFieldId].Param_Name];
//取字段
if(pField->Value.vt==VT_NULL)
lcs_field ="";
else {
lcs_field = (char *)_bstr_t(pField->Value );
lcs_field.TrimLeft();
lcs_field.TrimRight();
}
}
m_Recordset->MoveNext ();
}
}catch(_com_error &Error_code){
_bstr_t bstrSource(Error_code.Source());
_bstr_t bstrDescrition(Error_code.Description ());
AfxMessageBox("数据处理失败!");
return;
}
解决方案 »
- 当获取了某个窗口的句柄后请问如何获取该窗口的LPDISPATCH?
- 大家看看是否有这样一种同步对象。
- 造成这个错误的原因是什么?
- 在线等!PreTranslateMessage捕获工具栏消息?
- 太不像话了!free_card、liuyun7708、scainiao、honghongtt 同一个人!倒分倒的。。。。。。。。。
- 用VC实现单片机与PC的网络通信
- 高分求助MPEG1的解码算法
- MDI切分窗口问题,急问!!!!!在线等待!!!!!!!
- 用bkwin框架 DLG标签建立的一个容器怎么动态的移动这个dlg建立的界面
- COM, 救命呀
- 请问如何如此添加ActiveX控件
- 我用CreateProcess这样打开WORD,为什么总是不成功?
strcpy(m_sOutPutParams[0].Param_Name,"menu_id");
lcs_strsql.Format("select max(menu_id) maxid from sub_menu");m_OutPutCount = 1;
strcpy(m_sOutPutParams[0].Param_Name,"maxid");
改为:
strcpy(m_sOutPutParams[0].Param_Name,"menu_id");
还是同样错误若改为
lcs_strsql.Format("select max(menu_id) maxid from sub_menu");m_OutPutCount = 1;
strcpy(m_sOutPutParams[0].Param_Name,"maxid");则错误如下:
{"语法错误 (操作符丢失) 在查询表达式 'max(menu_id) maxid' 中。" (1)}
lcs_strsql.Format("select max('%s') from sub_menu",m_sOutPutParams[0].Param_Name);你的m_sOutPutParams[0].Param_Name 何解?
m_OutPutCount = 1;
strcpy(m_sOutPutParams[0].Param_Name,"menu_id");
m_sOutPutParams[0].Param_Length = 30;lcs_strsql.Format("select max(%s) from sub_menu",m_sOutPutParams[0].Param_Name);还是一样的错,如下:
项目在所需的名称或序数中未被发现。
lcs_strsql.Format("select max(menu_id) from sub_menu");