Avatar billede websam Nybegynder
11. september 2002 - 08:15 Der er 26 kommentarer og
3 løsninger

Håber på hurtigt svar !?!

hejsa !

Jeg laver følgende :

Sql = "Select StopDate From Customer Where Id = " & Request.QueryString("Id")
Set Rs = Conn.Execute(Sql)

Date1 = DateAdd("d",-30,Rs("StopDate"))
Datestr = Day(Date1) & "-" & Month(Date1) & "-" & Year(Date1)

Sqlwp = "Delete From MerchantPayout Where Date = '"&Datestr&"' And CusOrder = " & Request.QueryString("Ordre")
Conn.Execute(Sqlwp)

Men den sletter ikke noget og det selvom at der er en record der har både date og cusorder og jeg får heller ikke nogen fejl er der et kvikt hoved der kan svare mig på hvad der skulle være galt med min kode ???

WebSam
Avatar billede neteffect Nybegynder
11. september 2002 - 08:21 #1
Hvis datoen i databasen er af date/time-typen:

Datestr = "#" & Month(Date1) & "-" & Day(Date1) & Year(Date1) & "#"

Sqlwp = "Delete * From MerchantPayout Where Date = "&Datestr&" And CusOrder = " & Request.QueryString("Ordre")
Avatar billede neteffect Nybegynder
11. september 2002 - 08:22 #2
Ups, der smuttede en bindestreg

Datestr = "#" & Month(Date1) & "-" & Day(Date1) & "-" & Year(Date1) & "#"
Avatar billede websam Nybegynder
11. september 2002 - 08:25 #3
Jamen da ikke når jeg køre op mod en SqlServer vel ???
Avatar billede medions Nybegynder
11. september 2002 - 08:28 #4
Sqlwp = "Delete From MerchantPayout Where Date = # DateAdd("d",-30,rs("stopdate")) # And CusOrder = " & Request.QueryString("Ordre")
Conn.Execute(Sqlwp)

//>Rune
Avatar billede medions Nybegynder
11. september 2002 - 08:28 #5
Sqlwp = "Delete From MerchantPayout Where Date = DateAdd("d",-30,rs("stopdate")) And CusOrder = " & Request.QueryString("Ordre")
Conn.Execute(Sqlwp)
ups... :o)

//>Rune
Avatar billede neteffect Nybegynder
11. september 2002 - 08:32 #6
Mit forslag er standard SQL. Jeg er forholdsvis sikker på SQL-server skal have det på samme måde som Access (Jet) og alle de andre databasesystemer, der hævder at være SQL-compliant.
Avatar billede eagleeye Praktikant
11. september 2002 - 08:35 #7
Prøv at bruge dato formatet yyyy-mm-dd:

Datestr =  Year(Date1) & "-" & Month(Date1) & "-" & Day(Date1)

Sqlwp = "Delete From MerchantPayout Where Date = #"&Datestr&"# And CusOrder = " & Request.QueryString("Ordre")
Conn.Execute(Sqlwp)
Avatar billede eagleeye Praktikant
11. september 2002 - 08:36 #8
dog SQL server så ingen # men ' i SQL sætningen.

Datestr =  Year(Date1) & "-" & Month(Date1) & "-" & Day(Date1)

Sqlwp = "Delete From MerchantPayout Where Date = '"&Datestr&"' And CusOrder = " & Request.QueryString("Ordre")
Conn.Execute(Sqlwp)
Avatar billede neteffect Nybegynder
11. september 2002 - 08:37 #9
Avatar billede websam Nybegynder
11. september 2002 - 08:57 #10
Fedt med en masse svar/kommentare :o)
(Medions) hvad skulle forskellen være på at lave det direkte i Sql-sætningen ???
(eagleeye) hvorfor vende datoformatet i sql serveren skriver den 30-08-2002
og hvis jeg laver en response.write sql skriver den oxo dato'en som 30-08-2002 så det burde jo være ok ???
Avatar billede neteffect Nybegynder
11. september 2002 - 09:14 #11
>medions, eagleeye
Kunne vi blive enige om, at en dato i standard SQL skal være i amerikansk rækkefølge, mm-dd-yyyy?

Og at det SQL-statement der videregives driveren, en en simpel tekststreng, som er evalueret færdig af scriptet?

>websam
Det er således IKKE ok, at din response.write sql skriver datoen i dansk format.
Avatar billede websam Nybegynder
11. september 2002 - 09:17 #12
ok det vil sige at selvom den skriver det på dansk i serveren så laver den om på det alligevel ??? Eller er jeg helt galt på den ???
Avatar billede eagleeye Praktikant
11. september 2002 - 09:26 #13
>neteffect

Jeps SQL tolker datoer som UK format altså mm-dd-yyyy. Jeg har lavet flere løsninger hvor der bruges enten MySQL eller Access som datadata og er kommet til at hvis man bruger formatet  yyyy-mm-dd  så giver det færest problemmer med forskellige typer databaser.. Jeg har ikke prøver med en SQL server, men jeg gætter på yyyy-mm-dd virker.
Avatar billede eagleeye Praktikant
11. september 2002 - 09:27 #14
SQL læser datoer som UK format, og det er lige meget om du har en dansk server og dansk Access.
Avatar billede neteffect Nybegynder
11. september 2002 - 09:47 #15
websam> Ja, uanset hvordan databasen er sat til at gemme den datatype, der svarer til SQL DATE eller TIMESTAMP, skal datoer i SQL-queries være i formatet mm-dd-yyyy (og klokkkeslet skal være med 12-timers med AM/PM)
Avatar billede websam Nybegynder
11. september 2002 - 09:48 #16
Nu har jeg prøvet med YYYY-MM-DD og MM-DD-YYYY og DD-MM-YYYY og det hjælper stadig ikke :-((
Avatar billede websam Nybegynder
11. september 2002 - 09:51 #17
neteffect> vil det sige at jeg oxo skal have klokkeslet med for at kunne slette ud fra dato nej vel ???
Avatar billede neteffect Nybegynder
11. september 2002 - 09:57 #18
I mange asp-scripts ser man en blanding af rigtig SQL og Microsofts ADO. Og så går der helt kage i dato-håndteringen, fordi SQL SKAL have det på amerikansk, mens ADO (i et vist omfang) tager hensyn serverens locale og scriptets eventuelle locale (LCID=).

Den pragmatiske, sikre måde er at sætte scriptets LCID=1033 (amerikansk) og dermed få de indbyggede scriptfunktioner til at køre på amerikansk. Ulempen er, at man selv skal lave sig et sæt funktioner, der konverterer datoerne fra/til dansk format ved brugerinput og visning. Men de funktioner behøver man jo kun at lave én gang for alle.
Avatar billede eagleeye Praktikant
11. september 2002 - 10:04 #19
Er Date i databasen en dato eller både dato og klokkeslet ?
Avatar billede eagleeye Praktikant
11. september 2002 - 10:06 #20
Kommer der en fejl eller virker det bare ikke??
Date er i Access reserveret ord. Det kan være det også er det i SQL server.
Avatar billede websam Nybegynder
11. september 2002 - 10:07 #21
kun dato så jeg fatter ikke at den ikke vil slette :o(
Avatar billede neteffect Nybegynder
11. september 2002 - 10:08 #22
Klokkeslet: Ja, der er du nok inde på noget dér.

Hvis klokkeslettet er med i dit felt i databasen, skal der tages hensyn til dét.

datesStrFrom = "#" & Month(Date1) & "-" & Day(Date1) & "-" & Year(Date1) & " 00:00:00 AM#"
datesStrTo = "#" & Month(Date1) & "-" & Day(Date1) & "-" & Year(Date1) & " 11:59:59 PM#"

Sqlwp = "DELETE * FROM MerchantPayout WHERE (Date BETWEEN " & datesStrFrom & " AND " & datesStrTo & ") AND (CusOrder = " & Request.QueryString("Ordre")& ")"
Avatar billede websam Nybegynder
11. september 2002 - 10:10 #23
Nej der kommer ingen fejl og sqlserveren giver besked om hvis den ikke vil acceptere hvad man kalder sine felter og den godkender navnet date !!!
Avatar billede eagleeye Praktikant
11. september 2002 - 10:13 #24
Findes der ikke som i Access og MySQL en function som kan formatere et dato/klokkeslet felt til eksvis kun dato:

Sqlwp = "Delete From MerchantPayout Where FORMATDATE(Date, 'mm-dd-yyyy') = '" & Datestr & "' And CusOrder = " & Request.QueryString("Ordre")
Avatar billede websam Nybegynder
11. september 2002 - 10:14 #25
neteffect> der er ikke klokkeslet i den tabel jeg henter fra men der er i den jeg skal slette i det kan vel oxo give problemer !?!
Avatar billede websam Nybegynder
11. september 2002 - 10:18 #26
eagleeye> Det er jeg ikke så meget inde men jeg kan jo bare bruge min funktion der unlader klokkeslettet og det har jeg prøvet uden held så det er sq lidt træls efterhånden !!!
Avatar billede neteffect Nybegynder
11. september 2002 - 10:27 #27
Det er den tabel du skal slette i, vi taler om.
Hvad siger den til mit forslag af 10:08:38?

Du kan eventuelt ændre DELETE til SELECT, mens du tester, og lægge en response.write Sqlwp & "<br>" ind før queryen udføres, og en response.write af recorden ind lige efter, så du kan se queryen og om den får fat i recorden.
Avatar billede websam Nybegynder
11. september 2002 - 10:46 #28
neteffect> Jeps den er oxo prøvet uden held desværre !
Avatar billede neteffect Nybegynder
11. september 2002 - 11:19 #29
"..uden held..", giver den fejl eller hvad? Kan du selecte recorden?

Næste trick er at lave query'en med SQL-servers query-builder, hvad den så end hedder. Hvis den er lige så smart som den i Access, så kan man få den til at vise queryen i SQL (View=>SQL). Copy og paste den genererede query ind i det script og give den asp-fernis med & variabler & .
Det er den nemmeste metode til at lave komplicerede SQL-queries til scripts.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester