执行Recordset的Open时,select语句中写上字段名就出错,字段名写*就OK?在线
语句如下:
_RecordsetPtr OpenSql(
LPCTSTR TblName, LPCTSTR FldList/* = _T( "*" )*/,
LPCTSTR Constr/* = _T( "" )*/, LPCTSTR OrderBy/* = _T( "" )*/ )
{
ASSERT( m_pConnection != NULL );
//组合SELECT语句
TCHAR sqlstr[256];
lstrcpy( sqlstr, _T( "SELECT " ) );
lstrcat( sqlstr, FldList );
lstrcat( sqlstr, _T( " FROM " ) );
lstrcat( sqlstr, TblName );
lstrcat( sqlstr, _T( " " ) );
lstrcat( sqlstr, Constr );
lstrcat( sqlstr, _T( " " ) );
lstrcat( sqlstr, OrderBy );
if( IsOpen() )
{
m_pRecordset->Close();
}
m_pRecordset->Open(
(_variant_t)sqlstr, m_pConnection.GetInterfacePtr(),
adOpenStatic, adLockOptimistic, adCmdText );
return m_pRecordset;
}
此处如果FldList不为“*”,则Open肯定执行出错。