Avatar billede nanna31 Praktikant
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
%>
Avatar billede madeindk Nybegynder
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)
Avatar billede madeindk Nybegynder
26. april 2006 - 22:07 #2
Naturligvis skal du lige fjerne ' foran :-)
Avatar billede nanna31 Praktikant
26. april 2006 - 22:09 #3
Det har jeg prøvet, men det gør ingen forskel. Det burde det da heller ikke?
Avatar billede madeindk Nybegynder
26. april 2006 - 22:12 #4
Jo, ønsker du ikke at udskrive SQL forbindelsen eller ønsker du at udskrive SQL2 forbindelsen?
Avatar billede morhan Novice
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 & "#"
Avatar billede morhan Novice
26. april 2006 - 22:16 #6
Glem bare min udtagelse om din manglende Dim :)
Avatar billede madeindk Nybegynder
26. april 2006 - 22:16 #7
'morhan' tager over - jeg forstår ikke hvad du mener nanna31
Avatar billede nanna31 Praktikant
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
%>
Avatar billede nanna31 Praktikant
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.
Avatar billede eagleeye Praktikant
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?
Avatar billede eagleeye Praktikant
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
Avatar billede thomas_yde Nybegynder
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 :)
Avatar billede nanna31 Praktikant
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?
Avatar billede eagleeye Praktikant
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)
Avatar billede nanna31 Praktikant
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)
Avatar billede eagleeye Praktikant
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.
Avatar billede nanna31 Praktikant
27. april 2006 - 23:33 #17
Der udskrives ikke noget?
Avatar billede eagleeye Praktikant
27. april 2006 - 23:38 #18
Hvordan loader du siden er det i en browser?
Avatar billede eagleeye Praktikant
27. april 2006 - 23:38 #19
Hvordan er dato formet i variablen:  aLastVisitDate
Er det, dd-mm-yyyy eller yyyy-mm-dd?
Avatar billede nanna31 Praktikant
27. april 2006 - 23:52 #20
Det er dd-mm-yyyy.
Jeg loader asp-filen fra Flash i en browser.
Avatar billede eagleeye Praktikant
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)
Avatar billede eagleeye Praktikant
27. april 2006 - 23:55 #22
Når du opdtar vi aLastVisitDate så ikke være lig med dags dato?
Avatar billede eagleeye Praktikant
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)
Avatar billede nanna31 Praktikant
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 :)
Avatar billede thomas_yde Nybegynder
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)
Avatar billede eagleeye Praktikant
28. april 2006 - 18:29 #26
ok, var det med det sidste forslag?
Avatar billede nanna31 Praktikant
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. :)
Avatar billede nanna31 Praktikant
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.
Avatar billede thomas_yde Nybegynder
30. april 2006 - 11:02 #29
Det var så lidt.
Avatar billede eagleeye Praktikant
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
Avatar billede nanna31 Praktikant
30. april 2006 - 11:53 #31
Thanks
Avatar billede nanna31 Praktikant
02. maj 2006 - 11:40 #32
Kan I evt. hjælpe med http://www.eksperten.dk/spm/705080 ?
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