Hej tokelil Nej, det gør ingen forskel. Der er ikke noget problem i at validere på selve datoen. Det jeg vil er at kunne vælge alle datoer der er mindre end f.eks. dags dato, og opdatere dem med en ny dato eller noget i den dur.. SQL\'en er der ikke problemer med. Men syntaxen i Builderen og det \'damn\' MSaccess er ikke lige at rútte med. SQL\'en skulle gerne lyde: \"UPDATE liste SET dato=\'24-08-01 WHERE DATO<\'24-08-01\'\"; Men at overføre det til builderen er åbenbart ikke ligetil.... I henhold til at konvertere dato til string...Så har du selvfølgelig ret, men ikke destro mindre validere den på en string, men kun de første 2 positioner i strengen, men det hjælper ikke når den så kommer op med at d. 12-09-01 er mindre end 14-08-01 fordi 14 er større end 12..øhh Jeg er lidt i tvivl om man benytter ParamByName i dette tilfælde, da Param1 bliver til en enkelt værdi. DATA->_Q_5->ParamByName(\"Param1\")->AsDateTime = Dato.Date(Date()); bliver til dags dato, men der er ikke på noget tidspunkt der indikere at der skal vælges alle mindre end, derfor var jeg ude i med at erklære mindre end operatoren i selv SQL\'en : DATA->_Q_5->SQL->Add(\"where on_offer_over<:Param1\");, mewn den virker heller ikke.. Så vi ser om ikke der er en der har en genial løsning eller et hint om hvilken retning man skal gå i... {Perfi:}
Ved ikke helt om det er noget du kan bruge, men sidst jeg lavede en update til MSAccess brugte jeg ikke Param\'s. (Måske ikke den korrekte måde at gøre det på, men en lille dårlig vane fra ASP)
Lavede det således istedet: (lægger 30 dage til dagsdato)
TDate tmpDato = Date(); tmpDato += 30;
S = \"UPDATE Tabel1 Set Udløber = #\"+ tmpDato +\"# WHERE Medlemsnr = \"+ IntToStr(tmpMedlemsnr) +\";\"; Query1->SQL->Add(S);
Hej igen Jeg kan godt få dette til at spille: String S = \"UPDATE model, on_offer SET ID_state=0 WHERE ID_state=1 and (((on_offer_over)<#19-08-01# ))\"; DATA->_Q_5->SQL->Add(S); DATA->_Q_5->ExecSQL();
SÅ - HVORFOR i helvedet kan dette så ikke fungere: TDate TD_dato=Date(); String S = \"UPDATE model, on_offer SET ID_state=0 WHERE ID_state=1 and (((on_offer_over)<\\\"\"+TD_dato+2\\\"))\"; DATA->_Q_5->SQL->Add(S); DATA->_Q_5->ExecSQL(); Ja, jeg spørger bare..... perfi:
Du skal vel bruge # omkring datoer når du arbejder med Access... måske... altså: String S = \"UPDATE model, on_offer SET ID_state=0 WHERE ID_state=1 and (((on_offer_over)<#\" + TD_dato + \"#))\";
tokelil<< Lige så snart man putter en variabel inde i SQL strengen, så opdatere den bare alle hvor ID_state er lig med=0. (((on_offer_over)<#24-08-01#))\"; \"ER FUCKET\" (((on_offer_over)<#\" + TD_dato + \"#))\"; \"ER IORDEN\". HVAD SKER DER...... Jeg må nok hellere snart tælle til 10, hvis det ikke skal gå ud over min kone... JEG SÆTTER 100 point xtra på højkant, til den engel der kan løse dette problem. Uden at glemme TOKELIL, som har bidraget... PERFI:
Er sku da underligt!!! Hvis man udskriver din SQL streng efter at du har indsat variablen med dato, giver det vel det samme som hvis du \"hardcoder\" din SQL. ? Kan det være din TD_dato der på en eller anden ikke fungerer rigtigt ? Måske noget omkring dansk/amerikansk dato format? (Et skud... Giver mig altid problemer i ASP)
Nå, men jeg fandt selv ud af det og det var milevis væk fra det vi var ude i...Men tokelil det med amerikansk/dansk dato format var lidt af det rigtige. Her kommer den som virker: mm=Edit2->Text.SubString(4,2); dd=Edit2->Text.SubString(1,2); if(Edit2->Text.SubString(4,1)==0) mm=Edit2->Text.SubString(5,1); yy=Edit2->Text.SubString(7,2); TD_dato=mm+\"/\"+dd+\"/20\"+yy; DATA->Query5->SQL->Clear(); String S = \"UPDATE model, on_offer SET model.ID_state = 0 WHERE (((model.ID_state)=1) AND ((model.ID_pics)=[on_offer].[offer_id]) AND ((on_offer.on_offer_over)<#\"+TD_dato+\"#))\"; DATA->Query5->SQL->Add(S); try { DATA->Query5->ExecSQL(); Panel18->Show(); } catch(...) { Panel15->Show(); } Som ses måtte jeg konvertere strengen om.... Så jeg deler pointene op 30 til mig selv og 30 til tokelil
Agh.. hader når man er nød til at lave den slags konverteringer! Anyway, tak for de kommende point ! ;-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.