CString m_strRemorcaNmb; // value for this string is set before
CString path = "DB\\dataBase";
CDaoDatabase db;
try
{
db.Open(path, 0, 0, "");
CDaoRecordset rs(&db);
rs.Open(AFX_DAO_USE_DEFAULT_TYPE, _T("SELECT Numar_inmatriculare FROM Masini;"), 0);
COleVariant searched(m_strRemorcaNmb);
BOOL bFound = rs.Seek("=",&searched);
}
Here i try to verify if a CString value is contained in my data base (.mdb). When it reaches BOOL bFound = rs.Seek("=",&searched); a debug assertion failed error is thrown. Hitting retry on the dialog box the application triggers a breakpoint in daocore.cpp at this line ASSERT(m_nOpenType == dbOpenTable);.
To use
Seekyou have to have a table-type recordset. (See MSDN: http://msdn.microsoft.com/en-US/library/k3tkt1zd%28v=vs.80%29.aspx) To get this, you have to specify the type when you open the recordset.Example:
This way of checking, if a specific record exists, is very slow. You suck all the records over the network and then check them. It is way better to modify the filter of the recordset before opening, and then check if any records have been returned.
Method A:
Method B for generated recordsets: