Access und QuotedStr



  • Hiho,

    und zwar möchte ich eine Auswertung mit C++ und einer Accessdatenbank machen, dabei muss ich allerdings beim SElect das datum mit einem auswählbaren Vergleichen sowie einen vorgegebenen Namen. Mit QuotedStr gibts am ende allerdings keine Ausgabe da er eben keine Einträge damit erkennt gibt es vielleicht eine andere Möglichkeit außer QuotedStr??? 😕

    hier mal mein Quellcode:

    AnsiString von;
     AnsiString bis;
     AnsiString ca;
    
     ca = Label5->Caption;
     von = l_von->Caption;
     bis = l_bis->Caption;
    
     t_auswertungca->Active = true;
     ds_auswertungca->DataSet->First();
    
     q_auswertungca->Close();
     q_auswertungca->SQL->Clear();
     q_auswertungca->SQL->Add(AnsiString("SELECT * FROM Verk WHERE Datum >= ") + QuotedStr(von));
     q_auswertungca->SQL->Add(AnsiString("AND Datum <= ") + QuotedStr(bis));
     q_auswertungca->SQL->Add(AnsiString("AND CA = ") + QuotedStr(ca));
     q_auswertungca->Open();
    
     Label4->Caption = q_auswertungca->RecordCount;
    

    greetz
    hCk



  • wenn die Datenbankspalten vom Typ DateTime sind ist es günstiger die Datumswerte als Parameter zu übergeben

    TDateTime von, bis;
     AnsiString ca;
    
     ca = Label5->Caption;
     von = StrToDateTime(l_von->Caption);
     bis = StrToDateTime(l_bis->Caption);
    
     t_auswertungca->Active = true;
     ds_auswertungca->DataSet->First();
    
     q_auswertungca->Close();
     q_auswertungca->SQL->Clear();
     q_auswertungca->SQL->Add("SELECT * FROM Verk WHERE Datum >= :von");
     q_auswertungca->SQL->Add("AND Datum <= :bis");
     q_auswertungca->SQL->Add("AND CA = " + QuotedStr(ca));
     q_auswertungca->ParamByName("von")->AsDateTime = von;
     q_auswertungca->ParamByName("bis")->AsDateTime = bis;
     q_auswertungca->Open();
    
     Label4->Caption = q_auswertungca->RecordCount;
    

    eventuell muss statt AsDateTime Values stehen



  • mhhh hab das jetzt mal so übernommen -> kommt allerdings ne exeption

    Meldung: "von' ist keine gültige Datumsangabe hab es auch mit den Values probiert da zeigt er mir an keine Funktion von TParams,
    Variablen sind auch überprüft das ist ein datum 😉



  • wenn du TQuery benutzt muss ParamCheck true sein

    noch einen Hinweis zum SQL

    select * from verk where Datum between :von and :bis and ...
    

    hierbei ist das "bis" allerdings nicht eingechlossen, also bei der Variable "bis" einfach +1 machen



  • hat einwandfrei funktioniert --> auch schon vorher aber dadurch das ich das ganze bei FormCreate reingeschrieben statt FormShow gabs halt jedesmal eine Exeption logisch "0" is ja auch kein datum 😃

    danke für die hilfe linnea!


Log in to reply