Avatar billede newbie.dk Praktikant
13. marts 2005 - 23:56 Der er 35 kommentarer og
1 løsning

Problem med tal og numre felt

I min formular får man et unikt ID nr. Senere når man skal opdatere sine oplysninger skal dette ID nr bruges. Men det virker ikke. Min linie ser således ud:

strSQL = strSQL & " Where UID = " & Request.Querystring("UID")

Dette ID nr ligger i et tekst-felt i databasen, det må være det der driller.
For hvis jeg ændre Where UID = " & Request.Querystring("UID") til Where ID = " & Request.Querystring("ID") og her gør brug af ID nr som er lavet med autonummerering virker det.
Avatar billede newbie.dk Praktikant
13. marts 2005 - 23:59 #1
Det unikke ID nummer er på 23 tal.
Avatar billede amikk Nybegynder
14. marts 2005 - 00:11 #2
prøv med CInt(Request.QueryString("UID"))
Avatar billede newbie.dk Praktikant
14. marts 2005 - 00:19 #3
Det virker desværre ikke.
Avatar billede hmortensen Nybegynder
14. marts 2005 - 00:41 #4
Måske sådan her:
strSQL = strSQL & " Where UID = '" & Request.Querystring("UID") & "'"
Avatar billede newbie.dk Praktikant
14. marts 2005 - 00:52 #5
Desværre, hellere ikke den.
Avatar billede cpufan Juniormester
14. marts 2005 - 11:17 #6
hvordan er kolonnen defineret i db? UID

et tal på 23 cifre,
det må være en Long

Clng(request("UID"))
Avatar billede newbie.dk Praktikant
14. marts 2005 - 12:10 #7
Øv... den virkede hellere ikke
Avatar billede eagleeye Praktikant
14. marts 2005 - 17:05 #8
Hvilken fejl får?
Avatar billede newbie.dk Praktikant
14. marts 2005 - 17:45 #9
Bare at "Siden kan ikke vises"

Mærkeligt når det virke hvis jeg bare bruger ID-feltet(autonummerering - 1,2,3,4,5,6...)
Avatar billede eagleeye Praktikant
14. marts 2005 - 17:49 #10
Er du sikker på du får overført UID så ?
Det kan godt være kolonnen hedder UID men hvis tallet satdig ligger i ID i querystringen skal det være:
  Where UID = " & Request.Querystring("ID")



Angående "siden kan ikke vises" så prøv i IE at vælge:
Menuen -> funktioner -> internetindstillinger... -> avanceret
find og fjern kryds i "vis meddelelse om uskadelige http-fejl" checkboxen
Avatar billede eagleeye Praktikant
14. marts 2005 - 18:00 #11
Glemte at skrive, når du har slået "vis meddelelse om uskadelige http-fejl" fra så prøv at reloade siden, så skulle du gerne få en bedre fejl kode og beskrivelse.
Avatar billede newbie.dk Praktikant
14. marts 2005 - 18:43 #12
Ja den bliver trukket godt nok, har testet det ved at sætte Uid'en ind i et tekst-felt på siden inden den sendes videre. Og de har de rigtige navne.

Efter jeg har slået det fra, får jeg denne fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/send.asp, line 25
----------------
Koden:


strSQL = "Update indtast set "

strSQL = strSQL & "1indtast= " & Request.Querystring("antal") & " , "
strSQL = strSQL & "dato2= Now() "
strSQL = strSQL & " Where UID = " & Request.QueryString("UID")

Conn.Execute(strSQL)  <-- linie 25

Conn.Close
Set Conn = Nothing
Avatar billede newbie.dk Praktikant
14. marts 2005 - 18:48 #13
Min form således ud:

<form name="form" method="GET" action="send.asp">
        <p><font face="Verdana" size="2">Indtast antal<br>
        <input type="hidden" name="UID" value="<%=Request.QueryString("UID")%>">
        <input type="text" name="antal" size="20"><br>
        <br>
        <input type="submit" value="Send" name="submit" style="font-family: Verdana; font-size: 10 px">
        <input type="reset" value="Nulstil" name="reset" style="font-family: Verdana; font-size: 10 px"></font></p>
        </form>


Man får tilsendt et link ala:
http://www.side.dk/indtast.asp?uid=00101614032005518373614
Avatar billede eagleeye Praktikant
14. marts 2005 - 18:50 #14
Fejlen betyder typsik at der eneten kolonnenavn er stavet forkert eller der mangler data i SQL sætningen. Så tjek kolonnenavnet UID findes i tabellen og prøv at udskrive SQL sætningen for at se den ser rigtig ud:

response.write strSQL
response.end
Conn.Execute(strSQL)  <-- linie 25
Avatar billede newbie.dk Praktikant
14. marts 2005 - 19:04 #15
Ved at udskrive sql'en via send.asp får jeg denne:
Update indtast set 1indtast= , dato2= Now() Where UID =

Ved ikke om det kun var det den skulle.

Kolonnenavnet UID findes i tabellen.
Men jeg har mistanke til at det måske er felt-type der driller, kan det være?
UID-felt i db'en er et tekst-felt. Hvor ID jo er et autonummer-felt.
For den er jo det eneste der bliver lavet om når jeg validere fra UID eller ID.
Avatar billede eagleeye Praktikant
14. marts 2005 - 19:07 #16
Det betyder ID'et ikke bliver overført.

Prøv på din form side at tage "Vis Kilde" og tjek hidden feltet har et tal i value.

<input type="hidden" name="UID" value="ETTAL">
Avatar billede newbie.dk Praktikant
14. marts 2005 - 19:18 #17
Det var mig der var for hurtigt før, sådan her ser linien ud, havde glemt at putte ID'et på, sorry.

Update indtast set 1indtast= 500 , dato2= Now() Where UID = 00101614032005518373614
Avatar billede eagleeye Praktikant
14. marts 2005 - 19:20 #18
Ok og det var et tekst felt så skal der ' omkring så prøv sådan her:

strSQL = strSQL & " Where UID = '" & Request.QueryString("UID") & "'"
Avatar billede newbie.dk Praktikant
14. marts 2005 - 19:24 #19
Stadig fejl i

Conn.Execute(strSQL)  <-- linie 25
Avatar billede eagleeye Praktikant
14. marts 2005 - 19:26 #20
Samme fejl?
Avatar billede newbie.dk Praktikant
14. marts 2005 - 19:28 #21
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/send.asp, line 30
Avatar billede newbie.dk Praktikant
14. marts 2005 - 19:28 #22
linie 25 er så blevet til 30
Avatar billede eagleeye Praktikant
14. marts 2005 - 19:30 #23
men eller er det den linje som var 25 før?

hmm det lyder underligt hvis kolonnen findes og den er af typen tekst. Så prøv også at sætte klammer omkring UID:

strSQL = strSQL & " Where [UID] = '" & Request.QueryString("UID") & "'"
Avatar billede newbie.dk Praktikant
14. marts 2005 - 19:33 #24
Linie er
Conn.Execute(strSQL)

Jeg puttede noget af din kode ind, så jeg bare har gjort til kommentar.

Desværre hjalp det ikke noget med []
Avatar billede eagleeye Praktikant
14. marts 2005 - 19:35 #25
Prøv at sætte klamme omkring den linje med 1indtast:

strSQL = strSQL &  "[1indtast]= " & Request.Querystring("antal") & " , "
Avatar billede newbie.dk Praktikant
14. marts 2005 - 19:40 #26
Stadig fejl i

Conn.Execute(strSQL)
Avatar billede eagleeye Praktikant
14. marts 2005 - 19:42 #27
Så er der noget som ikke passer. Også hvis du siger det virker med ID.

Er kolonne UID i tabellen og er UID af typen tekst?
Hvordan ser det ud hvis du udskriver strSQL nu?
Avatar billede newbie.dk Praktikant
14. marts 2005 - 19:51 #28
Min kode ser således ud:
strSQL = "Update indtast set "

strSQL = strSQL & "[1indtast]= " & Request.Querystring("antal") & " , "
strSQL = strSQL & "dato2= Now() "
strSQL = strSQL & " Where [UID] = '" & Request.QueryString("UID") & "'"

response.write strSQL
response.end
Conn.Execute(strSQL)

Udskriver sql'en:
Update indtast set [1indtast]= 45 , dato2= Now() Where [UID] = '00101614032005518373614'
Avatar billede eagleeye Praktikant
14. marts 2005 - 19:57 #29
Og hvis du fjerner det som udskriver den så får du en fejl?  stadig den samme?
Avatar billede eagleeye Praktikant
14. marts 2005 - 19:58 #30
Hvis kolonnen antal er af typen tal, og kolonnnen dato2 er af typen Date/time eller tekst og kolonne UID er af typen tekst skulle der ikke være nogle problemmer med den SQL sætning.
Avatar billede newbie.dk Praktikant
14. marts 2005 - 19:58 #31
Nu virker det!

Jeg fjernede rammerne [] igen, og så blevet der opdateret.
Mærkeligt, for den kode har vi prøvet for 15 minutter siden.
Avatar billede newbie.dk Praktikant
14. marts 2005 - 19:59 #32
Ja kolonnerne var af den type du nævner.
Avatar billede newbie.dk Praktikant
14. marts 2005 - 20:01 #33
Når man får en fejlmeddelelse så har der været kontakt til serveren, ik?
Avatar billede newbie.dk Praktikant
14. marts 2005 - 20:05 #34
Mange tak for hjælpen.
Ligger du et svar.

Man bliver lidt usikker på hvad der er sket. For det er den samme kode som blevet skrevet for lidt tid siden.
Avatar billede eagleeye Praktikant
14. marts 2005 - 20:08 #35
jo så har den været i kontakt med serveren.

Ok her et svar :)
Avatar billede newbie.dk Praktikant
14. marts 2005 - 20:22 #36
Perfekt. Har teste lidt og det kører bare. Mange tak.
Jeg hæver lige point'ne til 60p, for det er jo nok mig der har lavet et eller andet galt.
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