CDatabase und Acess und SQL - String mit Like
-
Hallo und Guten Morgen. Ich bin dabei eine kleine Datenbank anwendung zu schreiben, die alle Dateien auf der Fetsplatte scannt ( also nach namen und datum usw. ) diese daten werden in eine access datenbank geschrieebn. das funktioneirt auch ganz gut . ich benutze dabei die klasse cdatabse.nun möchte ich aber auch die datenbank durchsuchen. ich bastle mir dabei einen sql string zusammen.
void FileManager::SearchFile(std::string text) { // Duchsucht die Datenbank nach den text std::string sql = "SELECT * FROM SearchResult where FileName LIKE '%"; sql += text; sql += "%'"; std::cout << sql << "\n"; CRecordset rc(&db); try { rc.Open(CRecordset::forwardOnly,sql.c_str()); } catch(CDBException *exp) { std::cout << (LPCTSTR)exp->m_strError << "\n"; } int i = 0; //rc.MoveFirst(); while (! rc.IsEOF() ) { rc.MoveNext(); i++; } std::cout << i << "\n"; rc.Close(); }
das komische ist ich habe in access den sql string geprüft und der funktioniert. aber leider nicht aus meinem programm . wenn ich das ganze nicht mit like sonder mit "=" mache geht es. aber da ich ja nach einem teilstringk suchen will nutz mir "=" wenig. WEiß jemand rat ?
-
Hat keiner eine idee
-
Dein Code ist C++, nicht C. Du bist offensichtlich im falschen Forum gelandet. Versuch's eine Tür weiter
-
"SELECT * FROM SearchResult where FileName LIKE '% "; sql += text; sql += " %'";
(Leereichen)
oder"SELECT * FROM SearchResult where FileName LIKE ('% "; sql += text; sql += " %')";
eventuell...
-
Crossposting