Daten mit recordset einlesen
-
ich bin gerade am verzweifeln, ich will mit recordset (in mfc natürlich) eine access datenabfrage machen die folgend aussieht
recset4.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM Artikell where Matchcode = '"+var3+"'",NULL);
Das klappt einfach nicht, als fehlermeldung kommt ein syntaxfehler bei Matchcode.
in der var3 steht "*MATRITZEN_NT" beim ersten Datensatzwenn ich die Abfrage ohne variable mach (wie folgend) gehts doch auch, aber ´bringt mir nix.
recset4.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM Artikell where Matchcode = '*MATRITZEN-NT'",NULL);
und so gehts auch nicht:
CString temp="SELECT * FROM Artikell where Matchcode = '"+var3+"'"; recset4.Open(AFX_DAO_USE_DEFAULT_TYPE,temp,NULL);
bin dankbar über jeden lösungsvorschlag
-
Wenn ich das richtig verstanden habe suchst du ne Lösung um Daten aus einer Datenbank in dein Programm zu laden oder??
ALso ich hole folgendermaßen Daten aus ner Datenbank:
[cpp] // Open the database UserData.Open( "Fuhrpark" ); // Allocate the recordset CRecordset recset( &UserData ); SqlString = "SELECT * FROM tbl_Benutzerliste WHERE Benutzer = '"; SqlString += UserName.c_str(); SqlString += "' and Passwort = '"; SqlString += Password.c_str(); SqlString += "'"; // Execute the query recset.Open(CRecordset::forwardOnly,SqlString,CRecordset::dynaset ); CString Benutzername; CString Passwort; CString Rechte; CString Personalnummer; recset.GetFieldValue("Benutzer",Benutzername); recset.GetFieldValue("Passwort",Passwort); recset.GetFieldValue("Rechte",Rechte); recset.GetFieldValue("Personalnummer",Personalnummer);[/cpp]
Vielleicht bringt dich das weiter
-
ja das hast du richtig verstanden, aber woher bekomme ich noch das c_str() ?
-
Username und Password sind std::string's und wenn du hinter die einen Punkt machst kommst du auch an das c_str(). Du weisst doch wofür c_str() gebraucht wird oder??
-
na logisch weis ich das, ich hab den fehler gerade gefunden, ich kann mir das allerdings trotzdem noch nicht so richtig erklären, wenn ichs mit
var3.Format("haha ich bin ein %s",sql_befehl);
mache, dann geht die abfrage einwandfrei. nunja, es geht..
-
wie kommst du den jetzt auf
var3.Format() ??
davon hast du vorhin kein Wort gesagt
-
OT: Ich würde als Passwort:
' DELETE Benutzer --
eingeben
-
nein, davon hab ich auch vorhin kein wort gesagt, weil ich es bisher auch noch nie so gemacht habe, aber als verzweiflungsakt hab ichs halt mal probiert und es geht