Avatar billede Slettet bruger
10. september 2003 - 12:11 Der er 27 kommentarer og
2 løsninger

Opdatering af database

Jeg skal have opdateret et felt i min
database men får en fejl.

Hvor ligger fejlen i mit script?
Kunne forstille mig det er i min
sql opdatering.

Url'en der bliver sendt ser sådan her ud:

"slut.asp?msisdn=20604522"

(Tabllen hedder start og kolonnen hedder slut)


<html>
<title>Rute slut. Tak for i dag!</title>
<head>
</head>
<body>
<%
dim msisdn
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("MobilTelefoner.mdb")
Conn.Open DSN

mobil = Request.QueryString("msisdn")
mobil = replace(mobil, "", "")

strSQL = "Update Start set"
strSQL = & "Slut = (#" & now & "#)
strSQL = & " Where Mobilnummer = (#" & mobil & "#)"


Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>
Avatar billede Slettet bruger
10. september 2003 - 12:15 #1
tror det er fordi du mangler et mellemrum:

strSQL = "Update Start set"
strSQL = & "[mangler mellemrum her]Slut = (#" & now & "#)

ellers vil det se sådan her ud, hvis du udskriver strSQL.

Update Start setSlut = (#" & now & "#)

og det skal se sådan her ud:

Update Start set Slut = (#" & now & "#)

så du skal bare indsætte et mellemrum...
Avatar billede Slettet bruger
10. september 2003 - 12:26 #2
Det er nu rettet, men det virker stadig ikke.

Synes jeg har gjort alt rigtigt.

Der er 3 kolonner i tabellen "Start"
(Start, Slut, Mobilnummer)
i databasen "Mobiltelefoner".

Når jeg kører asp scriptet er det meningen
at den skal indsætte et slut tidspunkt
i den række hvor mobilnummeret =
(mobil) som jeg henter i min query.

Skulle det ikke være rigtigt lavet så?
Avatar billede Slettet bruger
10. september 2003 - 12:28 #3
prøv at udskrive strSQL
Avatar billede Slettet bruger
10. september 2003 - 12:29 #4
og smid det her,hvis du ikke selv finder fejlen
Avatar billede Slettet bruger
10. september 2003 - 12:30 #5
Det kan jeg vel ikke gøre når den fejler?

Eller skal noget af sql sætningen "stoppes"?
Avatar billede Slettet bruger
10. september 2003 - 12:31 #6
tror jeg har fundet ud af det...
skal rettes til:

strSQL = "Update Start set"
strSQL = strSQL & "Slut = (#" & now & "#)
strSQL = strSQL & " Where Mobilnummer = (#" & mobil & "#)"


du skrivet bare & "blablabla" og ikke strSQL & "blablabla"
Avatar billede Slettet bruger
10. september 2003 - 12:32 #7
undskyld omvendt...
Avatar billede Slettet bruger
10. september 2003 - 12:36 #8
Det kører stadig ikke desværre.. :-(

Jeg har nu følgende kode:

<html>
<title>Rute slut. Tak for i dag!</title>
<head>
</head>
<body>
<%
dim msisdn
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("MobilTelefoner.mdb")
Conn.Open DSN

mobil = Request.QueryString("msisdn")
mobil = replace(mobil, "", "")

strSQL = "Update Start set"
strSQL = StrSQL & "Slut = (#" & now & "#)"
strSQL = strSQL & "Where Mobilnummer = (#" & mobil & "#)"

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>
Avatar billede Slettet bruger
10. september 2003 - 12:37 #9
her har du ikke sat mellemrummet ind
Avatar billede Slettet bruger
10. september 2003 - 12:38 #10
Det har jeg prøvet, men hjalp ikke..
Avatar billede eagleeye Praktikant
10. september 2003 - 12:41 #11
Der skal kun # omkrign hvis det er en dato type kolonne hvis det er tal kolonne skal der ikke være noget omrking, hvis det det er tekst kolonne skal der ' omkring.

Der ud over skal dato'er overføres i US/UK format yyyy-mm-dd eller vmm-dd-yyyy eller vil den bytte rundt på mm og dd hvis man skriver en dansk dato. MAn kan formatere sine datoer med Year, Month og Day funktionerne. Men du vil ligge Now i så brug den interne Now() funktion i databasen (og så det uden #)..:


Så hvis mobil er en tekst kolonne så prøv dette kode:

strSQL = "Update Start set"
strSQL = StrSQL & "Slut = Now() "
strSQL = strSQL & "Where Mobilnummer = '" & mobil & "'"

Conn.Execute(strSQL)
Avatar billede eagleeye Praktikant
10. september 2003 - 12:43 #12
Men er mobil nummer et en tal kolonne skal ' omkring mobil fjernes så din SQL sætning bliver som vist her:

strSQL = "Update Start set "
strSQL = StrSQL & "Slut = Now() "
strSQL = strSQL & "Where Mobilnummer = " & mobil

I mit svar mangler der et mellemrum efter set"  --->  set "
Avatar billede Slettet bruger
10. september 2003 - 12:45 #13
(Lige en tak fordi du hjælper) :-)

Ok. Det er en tekst kolonne, så der var i hvert fald
en fejl - men den kører stadig ikke... Mystisk.
Avatar billede Slettet bruger
10. september 2003 - 12:46 #14
Skulle der ikke være mellemrum mellem " og Where ?
Avatar billede Slettet bruger
10. september 2003 - 12:46 #15
jo
Avatar billede eagleeye Praktikant
10. september 2003 - 12:47 #16
Det mellemrum er efter ) i linjen oven over så det betyder ikke noget. HAr du fået det mellemrum med som skulle være efter set??

strSQL = "Update Start set"

til:

strSQL = "Update Start set "
Avatar billede Slettet bruger
10. september 2003 - 12:49 #17
Ja nu har jeg. :-)
Men det kører ikke.
Intern server fejl stadigvæk. argh..

<html>
<title>Rute slut. Tak for i dag!</title>
<head>
</head>
<body>
<%
dim msisdn
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("MobilTelefoner.mdb")
Conn.Open DSN

mobil = Request.QueryString("msisdn")
mobil = replace(mobil, "", "")

strSQL = "Update Start set "
strSQL = StrSQL & "Slut = Now() "
strSQL = strSQL & "Where Mobilnummer = '" & mobil & "'"



Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>
Avatar billede Slettet bruger
10. september 2003 - 12:51 #18
hvad er din fejl helt præcist??
Avatar billede eagleeye Praktikant
10. september 2003 - 12:51 #19
Prøv i IE at slå denne fra:

Menuen funktioner  --> internetindstillinger  --> kilk på avanceret
fjern kryds i "vis meddelelse om uskadelige http-fejl" checkboxen
Avatar billede Slettet bruger
10. september 2003 - 12:51 #20
Siden kan ikke vises
Der er problemer med den side, du prøver at åbne, og den kan ikke vises.

--------------------------------------------------------------------------------

Prøv følgende:

Åbn hjemmesiden 10.31.45.25:8300, og søg efter hyperlinks, der fører til de ønskede oplysninger.
Klik på knappen  Opdater, eller prøv igen senere.

Klik på  Søg for at søge efter oplysninger på Internettet.
Du kan også se en liste over relaterede websteder.




HTTP 500 - Intern serverfejl
Internet Explorer
Avatar billede eagleeye Praktikant
10. september 2003 - 12:57 #21
se 10/09-2003 12:51:33 og så reload siden så skulle du gerne få en bedre fejlkode.
Avatar billede Slettet bruger
10. september 2003 - 13:02 #22
Jeg prøver lige at se min database helt igennem! :-)
Avatar billede Slettet bruger
10. september 2003 - 13:09 #23
Nu prøvede jeg at starte fra bunden, så det virker
indtil nu.

Når jeg skal lave denne linje:

strSQL = strSQL & " Mobilnummer = '20604522'"

Så går det galt når den skal checke mobilnummeret
(Det er et tekstfelt).

Hvad er der galt her?
Avatar billede Slettet bruger
10. september 2003 - 13:10 #24
sorry. Bare glem den...
Glemte Where (Det var den sidste linje!) :-)
Avatar billede Slettet bruger
10. september 2003 - 13:12 #25
Det kører indtil nu..
Så prøver jeg at proppe Request delen ind. :-)
Avatar billede Slettet bruger
10. september 2003 - 13:16 #26
SÅ KØRER DET!!!!

Løsningen er:

<html>
<title>Opdatere data i databasen</title>
<head>
</head>
<body>
<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("Mobiltelefoner.mdb")
Conn.Open DSN

mobil = Request.QueryString("msisdn")
mobil = replace(mobil, "", "")

' SQL sætning opbygges
strSQL = "Update start set "
strSQL = StrSQL & "Slut = Now() "
strSQL = strSQL & "Where Mobilnummer = '" & mobil & "'"


' SQL sætning eksekveres
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
<h1>Databasen er opdateret!</h1>
</body>
</html>
Avatar billede eagleeye Praktikant
10. september 2003 - 13:26 #27
...jeg er lost...???
kører det, eller? ;)
Avatar billede Slettet bruger
10. september 2003 - 13:29 #28
Hey Eagleeye...

Yeps and thanx.. :-)

Det ruller bare nu.. Totalt cool....
Kan så ikke lige se hvad forskellen er må jeg nok
indrømme, men da jeg byggede det hele op forfra
kørte det... Så jeg siger mange tak!
Avatar billede Slettet bruger
10. september 2003 - 13:29 #29
Og der var lige lidt point til jer begge! :-)
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