26. april 2006 - 22:01
Der er
30 kommentarer og 2 løsninger
Ekspertnød
Nedenstående virker fortræffeligt...undtagen hvis man aktiverer de tre udkommenterede linier, jeg aner ikke ,hvad der er galt der? <% @ Language="VBScript" LCID=1030 %> <% Option Explicit %> <% response.buffer=true %> <% Response.CacheControl = "no-cache" %> <% Response.AddHeader "Pragma", "no-cache" %> <% Response.Expires = -1 %> <% Dim CONN, DSN, SQL, RS Set CONN = Server.CreateObject("ADODB.CONNection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("database.mdb") CONN.Open DSN Dim SQL2, aLogin, aPassword, aEmail, aMobile, aName1, aName2, aBirth, aAddress, aPostcode, aCity, aCountry, aSignupDate, aExpiringDate, aLastVisitDate, aAccountType, feedback aLogin = Request.Form ("fLogin" ) aPassword = Request.Form ("fPassword" ) aLastVisitDate = Request.Form ("fLastVisitDate") SQL = "Select * From accounts Where StrComp(Login, '" & aLogin & "', 0) = 0" Set RS = Conn.Execute(SQL) If (RS.bof) and (RS.eof) then Response.Write("&feedback=false&") Else Response.Write("&feedback=true&") Response.Write("aLogin=" & RS("Login") & "&") Response.Write("aEmail=" & RS("Email") & "&") Response.Write("aMobile=" & RS("Mobile") & "&") Response.Write("aName1=" & RS("Name1") & "&") Response.Write("aName2=" & RS("Name2") & "&") Response.Write("aBirth=" & RS("Birth") & "&") Response.Write("aAddress=" & RS("Address") & "&") Response.Write("aPostcode=" & RS("Postcode") & "&") Response.Write("aCity=" & RS("City") & "&") Response.Write("aCountry=" & RS("Country") & "&") Response.Write("aSignupDate=" & RS("SignupDate") & "&") Response.Write("aExpiringDate=" & RS("ExpiringDate") & "&") Response.Write("aLastVisitDate=" & RS("LastVisitDate") & "&") Response.Write("aAccountType=" & RS("AccountType")) 'SQL2 = "Update accounts set" 'SQL2 = SQL2 & " LastVisitDate = '" & aLastVisitDate & "'" 'CONN.Execute(SQL2) End if CONN.Close Set CONN = Nothing %>
Annonceindlæg fra Deloitte
26. april 2006 - 22:05
#1
Ret: 'SQL2 = "Update accounts set" 'SQL2 = SQL & " LastVisitDate = '" & aLastVisitDate & "'" 'CONN.Execute(SQL2) Til: 'SQL = "Update accounts set" 'SQL = SQL & " LastVisitDate = '" & aLastVisitDate & "'" 'CONN.Execute(SQL)
26. april 2006 - 22:07
#2
Naturligvis skal du lige fjerne ' foran :-)
26. april 2006 - 22:09
#3
Det har jeg prøvet, men det gør ingen forskel. Det burde det da heller ikke?
26. april 2006 - 22:12
#4
Jo, ønsker du ikke at udskrive SQL forbindelsen eller ønsker du at udskrive SQL2 forbindelsen?
26. april 2006 - 22:16
#5
SQL2 giver nok en script fejl, da du benytter option explicit, men ikke har en Dim SQL2 nogen steder Hvis du benytter SQL, får du da en databasefejl? Hvis LastVisitDate er datotype, så prøv med # i stedet for apostrof = #" & aLastVisitDate & "#"
26. april 2006 - 22:16
#6
Glem bare min udtagelse om din manglende Dim :)
26. april 2006 - 22:16
#7
'morhan' tager over - jeg forstår ikke hvad du mener nanna31
26. april 2006 - 22:20
#8
SQL2 har en dim allerede. Jeg ønsker at opdatere LastVisiDate i databasen, som er datotype. Hvis det kan lede dig på et spor, så fungerer nedenstående helt fint: <% @ Language="VBScript" %> <% Option Explicit %> <% response.buffer=true %> <% Response.CacheControl = "no-cache" %> <% Response.AddHeader "Pragma", "no-cache" %> <% Response.Expires = -1 %> <% Dim CONN, DSN, SQL Set CONN = Server.CreateObject("ADODB.CONNection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("database.mdb") CONN.Open DSN Dim varFornavn, varEfternavn, varTelefon, varFoedselsdato varFornavn = Request.Form ("fornavn" ) varEfternavn = Request.Form ("efternavn" ) SQL = "Update personer set" SQL = SQL & " Efternavn = '" & varEfternavn & "'" SQL = SQL & " Where StrComp(Fornavn, '" & varFornavn & "', 0) = 0" CONN.Execute(SQL) CONN.Close Set CONN = Nothing %>
26. april 2006 - 22:22
#9
jeg har nærmest bare taget de tre SQL linier og forsøgt at omskrive dem til det øverste eksempel, som ikke virker.
26. april 2006 - 23:02
#10
Du skal havde en WHERE på men det er ikke det som giver fejlen: SQL2 = "Update accounts set" SQL2 = SQL2 & " LastVisitDate = '" & aLastVisitDate & "'" SQL2 = SQL2 & " WHERE StrComp(Fornavn, '" & varFornavn & "', 0) = 0" CONN.Execute(SQL2) Kan du skrive hvilken fejl du får?
26. april 2006 - 23:03
#11
hmm WHERE delen skulle måske være sådan her som din select: Where StrComp(Login, '" & aLogin & "', 0) = 0
26. april 2006 - 23:13
#12
Kan du ikke lave en response.write SQL2 og så kopiere den her ind. Desuden mener jeg når du laver updates med et dato felt skal den, som morhan skriver, hedde: SQL2 = "Update accounts set" SQL2 = SQL2 & " LastVisitDate = #" & aLastVisitDate & "#" SQL2 = SQL2 & " WHERE StrComp(Fornavn, '" & varFornavn & "', 0) = 0" CONN.Execute(SQL2) Og husk det eagly eye skriver med at sætte en WHERE clause på, ellers vil du jo opdatere samtlige accounts i din base :)
26. april 2006 - 23:43
#13
Jeg får ikke nogen fejl, der sker bare ikke noget. Ingen variable sendes tilbage til min Flashmovie. Erstatter jeg SQL2 med SQL sendes variablene fint tilbage, men så får jeg ikke opdateret datoen. Jeg ved ikke, hvordan jeg skal lave den response.write?
26. april 2006 - 23:56
#14
ok hvilken type er kolonnen LastVisitDate ? Hvilken post skal opdaters ? Altså hvordan skal Where delen være? Du kan udskrive sådan her: SQL2 = "Update accounts set" SQL2 = SQL2 & " LastVisitDate = #" & aLastVisitDate & "#" SQL2 = SQL2 & " Where StrComp(Login, '" & aLogin & "', 0) = 0" Response.Write SQL2 Response.End 'Stopper koden linie fjernes igen CONN.Execute(SQL2)
27. april 2006 - 23:24
#15
Det er denne her post, jeg gerne vil opdatere: SQL = "Select * From accounts Where StrComp(Login, '" & aLogin & "', 0) = 0" Typen er short date (dd-mm-yyyy)
27. april 2006 - 23:28
#16
Ok, så prøv den sidste som er vist. Den udskriver SQL2 og prøv at vise den her.
27. april 2006 - 23:33
#17
Der udskrives ikke noget?
27. april 2006 - 23:38
#18
Hvordan loader du siden er det i en browser?
27. april 2006 - 23:38
#19
Hvordan er dato formet i variablen: aLastVisitDate Er det, dd-mm-yyyy eller yyyy-mm-dd?
27. april 2006 - 23:52
#20
Det er dd-mm-yyyy. Jeg loader asp-filen fra Flash i en browser.
27. april 2006 - 23:54
#21
Ok, for den skriver den rigtige dato skal man gemme datoen som yyyy-mm-dd men det kan laves om i ASP koden: Så prøv at rette disse linie: SQL2 = "Update accounts set" SQL2 = SQL2 & " LastVisitDate = #" & aLastVisitDate & "#" SQL2 = SQL2 & " Where StrComp(Login, '" & aLogin & "', 0) = 0" Response.Write SQL2 Response.End 'Stopper koden linie fjernes igen CONN.Execute(SQL2) til dette: aLastVisitDate = year(aLastVisitDate) & "-" & month(aLastVisitDate) & "-" & day(aLastVisitDate) SQL2 = "Update accounts set" SQL2 = SQL2 & " LastVisitDate = #" & aLastVisitDate & "#" SQL2 = SQL2 & " Where StrComp(Login, '" & aLogin & "', 0) = 0" Response.Write SQL2 CONN.Execute(SQL2)
27. april 2006 - 23:55
#22
Når du opdtar vi aLastVisitDate så ikke være lig med dags dato?
28. april 2006 - 00:03
#23
Hvis det er dags dato der skal indsættes i kolonnen LastVisitDate kan du bruge den indbyggede dato funktion i databasen så de linier bliver til: SQL2 = "Update accounts set" SQL2 = SQL2 & " LastVisitDate = Date() " SQL2 = SQL2 & " Where StrComp(Login, '" & aLogin & "', 0) = 0" Response.Write SQL2 CONN.Execute(SQL2)
28. april 2006 - 00:33
#24
Nu opdaterer den sørme! ganske vist med datoen 30-12-1899, men det er da et stort skridt i den rigtige retning :)
28. april 2006 - 10:18
#25
hvorfor ikke bruge: SQL2 = "Update accounts set" SQL2 = SQL2 & " LastVisitDate = #" &FormatDateTime(Now(),VbShortDate) &"#" SQL2 = SQL2 & " Where StrComp(Login, '" & aLogin & "', 0) = 0" Response.Write SQL2 CONN.Execute(SQL2)
28. april 2006 - 18:29
#26
ok, var det med det sidste forslag?
28. april 2006 - 21:13
#27
eagleeye - ja. Thomas - Det funger! Alletiders. Det kunne nu stadigvæk være interessant at vide, hvad der var galt med det andet eksempel, men det er ikke strengt nødvendigt nu. :)
30. april 2006 - 09:36
#28
Har Fundet fejlen, den lå i mit Flash, det måtte den jo gøre iflg. jeres seneste eksempler, som gav resultat. Lægger I et svar? Mange tak for indsatsen.
30. april 2006 - 11:02
#29
Det var så lidt.
30. april 2006 - 11:37
#30
Ja her et svar :) >> Det kunne nu stadigvæk være interessant at vide, hvad der var galt med det andet eksempel men det er ikke strengt nødvendigt nu. :) Jeg kan ikke helt forstå hvorfor det ikke virker da det eksempel bruger databasen dato funktion og den skulle gerne kunne indsætte datoen rigtigt i kolonnen. Det som kan drille er hvis kolonnen er af typen tekst men tidligere i spørgsmålet skrev du kolonnen var en datotype. Så jeg må blive dig et svar skyldigt :O
30. april 2006 - 11:53
#31
Thanks
Kurser inden for grundlæggende programmering