Avatar billede webbe Nybegynder
06. februar 2003 - 11:29 Der er 10 kommentarer og
1 løsning

For få parametre?

Hejsa eksperter

Jeg er igang med at lave et shopping-card og det går også fint nok - bortset fra følgende problem:

Jeg vælger først dessin og på baggrund af dessin skal der vælges størrelser og på baggrund af størrelser skal der vælges farve.

Valget af dessin går fint nok, men når jeg vil vælge størrelse går det galt.

Min kode er her:

If (Request.ServerVariables("CONTENT_LENGTH") > 0) Then
    dess = request.form("dessnr")
    vSQL = "SELECT DID, Dess FROM tbl_dess WHERE Dess='"&dess&"'"
    Set rv = DB.Execute(vSQL)
    if not rv.eof then
        sv = true
        sSQL = "SELECT SID, Str FROM tbl_str WHERE D-ID="&rv("DID")
        Set sr = DB.Execute(sSQL)
    end if
end if

og jeg får fejlen:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 2.
/ht/temp/forhandlernet/order.asp, line 22

Hvad går der galt?
Avatar billede medions Nybegynder
06. februar 2003 - 11:34 #1
If (Request.ServerVariables("CONTENT_LENGTH") > 0) Then
    dess = request.form("dessnr")
    vSQL = "SELECT DID, Dess FROM tbl_dess WHERE Dess='"&dess&"'"
    Set rv = DB.Execute(vSQL)
    if not rv.eof then
        sv = true
        sSQL = "SELECT SID, Str FROM tbl_str WHERE D-ID= '"&rv("DID") & "'"
        Set sr = DB.Execute(sSQL)
    end if
end if

//>Rune
Avatar billede webbe Nybegynder
06. februar 2003 - 11:58 #2
medions:

Så let er det ikke - både feltet DID og D-ID er af typen integer!!!
Avatar billede webbe Nybegynder
06. februar 2003 - 12:01 #3
hvis jeg udskriver sql-sætningen får jeg følgende:

SELECT SID, Str FROM tbl_str WHERE D-ID=234

så det burde være rigtigt nok!
Avatar billede medions Nybegynder
06. februar 2003 - 12:01 #4
If (Request.ServerVariables("CONTENT_LENGTH") > 0) Then
    dess = request.form("dessnr")
    vSQL = "SELECT DID, Dess FROM tbl_dess WHERE Dess='"&dess&"'"
    Set rv = DB.Execute(vSQL)
    if not rv.eof then
        sv = true
        sSQL = "SELECT SID, Str, D-ID FROM tbl_str WHERE D-ID= '"&rv("DID") & "'"
        Set sr = DB.Execute(sSQL)
    end if
end if

Så prøv lgie sådan..

//>Rune
Avatar billede medions Nybegynder
06. februar 2003 - 12:02 #5
If (Request.ServerVariables("CONTENT_LENGTH") > 0) Then
    dess = request.form("dessnr")
    vSQL = "SELECT DID, Dess FROM tbl_dess WHERE Dess='"&dess&"'"
    Set rv = DB.Execute(vSQL)
    if not rv.eof then
        sv = true
        sSQL = "SELECT SID, Str, D-ID FROM tbl_str WHERE D-ID= "&rv("DID")
        Set sr = DB.Execute(sSQL)
    end if
end if

Sorry, sådan!

//>Rune
Avatar billede webbe Nybegynder
06. februar 2003 - 12:15 #6
medions:

Nope - der er sq ikke rigtig noget der virker.
Avatar billede eagleeye Praktikant
06. februar 2003 - 12:36 #7
Fejlen kommer højst sansynligt fordi du baruger et "ulovligt" tegn i kolonnen D-ID nemlig -, SQL vil tolke det som kolonnen D - kolonne ID. Det kan dog let omgåes ved at sætte [] omkring navnet, [D-ID]:

        sSQL = "SELECT SID, Str FROM tbl_str WHERE [D-ID]="&rv("DID")
Avatar billede webbe Nybegynder
06. februar 2003 - 12:57 #8
eagleeye:

Thanx man - det var lige det der skulle til.
Avatar billede webbe Nybegynder
06. februar 2003 - 12:59 #9
eagleeye:

Et lille tillægsspørgsmål:

Hvordan fjerne jeg de første karakterer af en streng?
Det skal kun ske hvis strengen starter med bogstavet "a"
Avatar billede eagleeye Praktikant
06. februar 2003 - 13:03 #10
Jeg bruger Mid til at fjerne de føste X antal karakter eks som fjerner den første karakter

str = "abc"
str = Mid(str,2)

Så er str = "bc"

Hvis du vil tjekke på om "a" er føste bogstav og så fjerne det:

str = "bac"
if inStr(str,"a") = 1 then
  str = Mid(str,2)
end if

Så er str stadig = "bac" da "a" ikke er føste karakter i strengen.
Avatar billede webbe Nybegynder
06. februar 2003 - 13:12 #11
Tak for det - pointene er dine! ;0)
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