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 Datensatz

    wenn 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


Anmelden zum Antworten