Нужно выбрать из базы данных поля по шаблону (маске), база данных локальная
// вот так находит запись
CDaoRecordset rs(&db);
rs.Open( AFX_DAO_USE_DEFAULT_TYPE, "SELECT * FROM WareNameList WHERE WareName LIKE 'TV Toshiba 42 WP26'");
// а вот так НЕТ
CDaoRecordset rs(&db);
rs.Open( AFX_DAO_USE_DEFAULT_TYPE, "SELECT * FROM WareNameList WHERE WareName LIKE 'TV Toshiba 42 WP2%'");
// а вот так НЕТ
CDaoRecordset rs(&db);
rs.Open( AFX_DAO_USE_DEFAULT_TYPE, "SELECT * FROM WareNameList WHERE WareName LIKE 'TV Toshiba 42 WP2_'");
В чем может быть ошибка ???
На всякий случай привожу листинг
m_listing.ResetContent(); // CListBox
CString strFormat;
CDaoDatabase db;
try {
db.Open(__NAME_FILE_BASEDATA); // имя базы данных
} catch(...) {
strFormat.Format("Ошибка открытия базы данных \"%s\".", __NAME_FILE_BASEDATA);
_ErrorBox(strFormat);
return FALSE;
}
CDaoTableDef cTable(&db);
try {
cTable.Open(__NAME_TABLE_NAMESLIST); //попытка открытия таблицы
} catch(...) {
db.Close();
strFormat.Format("Ошибка открытия таблицы \"%s\" в базе данных \"%s\".", __NAME_TABLE_NAMESLIST, __NAME_FILE_BASEDATA);
_ErrorBox(strFormat);
return FALSE;
}
CDaoRecordset rs(&db);
try {
strFormat = "SELECT * FROM WareNameList WHERE WareName LIKE 'TV Toshiba 42 WP26'"; // одну запись находит
rs.Open( AFX_DAO_USE_DEFAULT_TYPE, strFormat);
} catch(...) {
db.Close();
strFormat.Format("Ошибка выборки записей в таблице \"%s\" в базе данных \"%s\".", __NAME_TABLE_NAMESLIST, __NAME_FILE_BASEDATA);
_ErrorBox(strFormat);
return FALSE;
}
try {
rs.MoveFirst();
} catch (...) {
db.Close();
strFormat.Format("Пустая таблица \"%s\" в базе данных \"%s\".", __NAME_TABLE_NAMESLIST, __NAME_FILE_BASEDATA);
_ErrorBox(strFormat);
return FALSE;
}
// здесь заполнение CListBox
BYTE bIsExit = FALSE;
do {
try {
if (rs.IsEOF()) bIsExit = TRUE;
else {
COleVariant CValue;
rs.GetFieldValue("WareName", CValue);
m_listing.AddString((LPCSTR)CValue.pbVal);
rs.MoveNext();
}
} catch(...) {
strFormat.Format("Ошибка преобразования типов в таблице \"%s\" в базе данных \"%s\".", __NAME_TABLE_NAMESLIST, __NAME_FILE_BASEDATA);
_ErrorBox(strFormat);
bIsExit = TRUE;
}
} while (!bIsExit);
db.Close();