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 ?
-
Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum Datenbanken verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Was ist denn die Fehlermeldung?
[EDIT] für access musses wohl LIKE "*blabla*" lauten. [/EDIT]
mfg
xXx
-
Hi Danke für eure Antworten. Also das mit der Klammer funjktioniert. Es gab leider keine Fehlermeldung. Ich habe im record nur ekeine Datensätze gehabt