Re: sql-fråga med datum
eriks skrev:
Man ska väl skriva så med # ?
Det brukar variera mellan olika databashanterare.
16 svar · 424 visningar · startad av eriks
Hej igen,
Nu har jag fel på min SQL-fråga. Så här ser det ut:
SQLStmt1 = "UPDATE Order2 Set O_Datum = #" & CDate(request("datum")) & "# WHERE O_ordernr=" & Request.Querystring("ID") & ""
Set RS1 = Connection.Execute(SQLStmt1)
Jag får inget felmeddelande. Men det uppdateras inte. Tabellen heter Order2, fältet O_Datum, formuläret jag hämtar från datum, resp. ID, och O_ordernr är också rätt, så jag misstänker att det är något fel i datum-formen. Man ska väl skriva så med # ? Har testat med och utan, Cdate, händer inget!
Någon som vet? MVH Erik
Re: sql-fråga med datum
eriks skrev:
Man ska väl skriva så med # ?
Det brukar variera mellan olika databashanterare.
Re: Re: sql-fråga med datum
UlfT skrev:
Det brukar variera mellan olika databashanterare.
Riktigt. Om man använder Access är det # som gäller för datum, annars apostrofer.
eriks: Skriv ut den färdiga SQL-frågan istället för att exekvera den, så är det lättare att felsöka.
Hej! Såhrär blir det om jag skriv ut frågan:
UPDATE Order2 Set O_Datum = #2005-10-22# WHERE O_ordernr=5020272
Det ser ju helt rätt ut tycker jag! Men det ändras inte. Och kommer inget felmeddelande!
Och du är säker på att ordernumret 5020272 stämmer?
Ja. Jag har även en annan sql- som ser ut:
SQLStmt7 = "UPDATE Order2 Set O_Pris = '" & pris & "' WHERE O_ordernr=" & Request.Querystring("ID") & ""
Set RS7 = Connection.Execute(SQLStmt7)
När jag skriver ut den får jag:
UPDATE Order2 Set O_Pris = '1691' WHERE O_ordernr=5020272
Och den ändras! Och där är 10 andra som ändras. Bara datumet som inte ändras. Vad kan möjligtvis vara fel?
Får man fråga varför du använder massor av update-frågor istället för att uppdatera alla fält i samma SQL-fråga?
Du råkar inte ha on error resume next i din kod?
Tillägas kan detta. Kolla i inlägg tidigare. Där står att jag får ut:
UPDATE Order2 Set O_Datum = #2005-10-22# WHERE O_ordernr=5020272
Datumet 2005-10-22 är det jag har lagt in i formuläret, det är alltså det som datumet ska ändras till. Men det går inte in i databasen!
Visst får man fråga det! Det är för att jag inte är så vass på asp, och kör kod som jag vet fungerar (alltså ofta inte så effektiv). Hur gör man för att uppdatera alla?
Jag har ingen on error resume next. Tycker att detta är ett riktigt mysterie! Men SQL-frågan är ju rätt, var kan då problemet vara, det är ju ganska specifikt nu! Jag tycker det är tokigt.
Tackar för all hjälp hittills
Det är bara att lägga in allt som ska uppdateras i SQL-frågan enligt följande:
UPDATE tabell SET fält1 = 'värde1', fält2 = 2, fält3 = #2002-02-02# WHERE något=1
Jag antar att du använder Access. Hur går det om du kör SQL-frågan direkt i programmet? Får du något felmeddelande då?
Vet inte hur man gör det! Ledtråd? =)
Mitt Access är på engelska, men något sånt härnt:
Öppna databasen. Klicka på "Frågor" -> Skapa fråga i designläge.
Stäng konstiga popuprutor, klicka på ikonen längst upp till vänster under "Arkiv"-menyn, välj SQL. Klistra in SQL-frågan. Exekvera med det röda utropstecknet.
Det går alldeles utmärkt att göra det direkt i access! Mystiken tätnar! Detta är otroligt
Varför har du 'Set' framför din exekvering? Frågan returnerar ju inget ändå.
eriks skrev:
Det går alldeles utmärkt att göra det direkt i access! Mystiken tätnar! Detta är otroligt
Du kör alltså exakt samma fråga i access, och det fungerar, men inte om du exekverar den från en asp-sida?
Helt rätt @nders, så är det!