Avatar billede para7 Nybegynder
10. februar 2004 - 17:17 Der er 16 kommentarer og
1 løsning

Tjek for doublet kikser

Hej, jeg har et site, hvor der et stedskal indskrives distributørers ID, men deres ID må ikke være det samme. Det virker pludselig og pludselig ikke. Hvad kan være galt:

Data = request.querystring("Data")
strSQL = " select TNIid from Distributoer where cstr(TNIid) <> " & Data
rs.open strSQL, conn
do until rs.EOF
if Data = rs("TNIid") then
    TNIidX = "Doublet"
    exit do
    else
    TNIidX = "ok"
end if
rs.movenext
loop
rs.Close
if TNIidX <> "Doublet" then
    strSQL = " update Distributoer set "
    strSQL =  strSQL & "TNIid = '" & Data & "', "
    strSQL =  strSQL & "Rettet = now "
    strSQL =  strSQL & " where ID = " & request.querystring("id")
    conn.execute(strSQL)
end if
set rs = nothing
Avatar billede para7 Nybegynder
10. februar 2004 - 17:20 #1
PS: Det er en Access 2000 database. TNIid er af datatypen Tal.
Avatar billede ellebaek Nybegynder
10. februar 2004 - 17:22 #2
kan du ikke bare bruge dette:

Data = request.querystring("Data")
strSQL = " select TNIid from Distributoer where cstr(TNIid) = " & Data
rs.open strSQL, conn

if not rs.eof then
rs.Close
    strSQL = " update Distributoer set "
    strSQL =  strSQL & "TNIid = '" & Data & "', "
    strSQL =  strSQL & "Rettet = now "
    strSQL =  strSQL & " where ID = " & request.querystring("id")
    conn.execute(strSQL)
else
Response.write "der findes allerede en med dette id...
end if
set rs = nothing
Avatar billede erikjacobsen Ekspert
10. februar 2004 - 17:23 #3
Bagvendt måde at gøre det på. Start med en
strSQL = " select TNIid from Distributoer where TNIid = " & Data
som så giver 0 eller 1 rækker.
Avatar billede ellebaek Nybegynder
10. februar 2004 - 17:26 #4
<%
Data = request.querystring("Data")
strSQL = " select TNIid from Distributoer where cstr(TNIid) = " & Data
rs.open strSQL, conn

if rs.eof then
rs.Close
    strSQL = " update Distributoer set "
    strSQL =  strSQL & "TNIid = '" & Data & "', "
    strSQL =  strSQL & "Rettet = now "
    strSQL =  strSQL & " where ID = " & request.querystring("id")
    conn.execute(strSQL)
else
Response.write "der findes allerede en med dette id...
end if
set rs = nothing
%>
Ja, jeg havde lige et not for meget. Det skal se ud som den her.
Avatar billede para7 Nybegynder
10. februar 2004 - 18:06 #5
Tak ellebæk, det virker! (Og erikjacobsen) Jeg nok tænke på en anden måde end de vante do until EOF.
Men jeg nu har bare problemer med at overføre fejlen med querystring. Jeg får overført Doublet når jeg burde få ok ? Kan vi få det med her ?
Avatar billede ellebaek Nybegynder
10. februar 2004 - 18:09 #6
Hvad mener du med querystring?
Avatar billede para7 Nybegynder
10. februar 2004 - 18:09 #7
Jeg har:

Data = request.querystring("Data")
strSQL = " select TNIid from Distributoer where cstr(TNIid) = " & Data
rs.open strSQL, conn
if rs.eof then
    strSQL = " update Distributoer set "
    strSQL =  strSQL & "TNIid = '" & Data & "', "
    strSQL =  strSQL & "Rettet = now "
    strSQL =  strSQL & " where ID = " & request.querystring("id")
    conn.execute(strSQL)
    TNIidX = "ok"
    else
    TNIidX = "Doublet"
end if
set rs = nothing
response.redirect portalHome & "?valg=" & request.querystring("valg") & "&ret=" & request.querystring("ret") &_
"&vis=" & request.querystring("vis") & "&id=" & request.querystring("id") & "&Page=" & request.querystring("Page") &_
"&nPerPage=" & request.querystring("nPerPage") & "&action=" & request.querystring("action") & "&TNIidX=" & TNIidX
Avatar billede ellebaek Nybegynder
10. februar 2004 - 18:14 #8
får du ok med den funktion også ?
Avatar billede para7 Nybegynder
10. februar 2004 - 18:14 #9
Altså jeg sender tilbage fra denne exe-side til min retteside og vil gerne opsnappe request.querystring("TNIid"), men som regel sendes der Doublet som query.
Avatar billede para7 Nybegynder
10. februar 2004 - 18:15 #10
Jeg får også ok, men ikke så tit ;)
Avatar billede para7 Nybegynder
10. februar 2004 - 18:16 #11
Jeg vender lige tilbage kl. 19 ca.
Avatar billede ellebaek Nybegynder
10. februar 2004 - 18:18 #12
hmm...

Du skulle gerne kun have ok, når der ikke er nogen doubletter, og omvendt.
Avatar billede para7 Nybegynder
10. februar 2004 - 19:48 #13
Det ser ud til at TNIid finder sig selv. Der må nok tages højde for det i kodestumpen. Men hvordan kan jeg ikke lige begribe ?

Data = request.querystring("Data")
strSQL = " select TNIid from Distributoer where cstr(TNIid) = " & Data
rs.open strSQL, conn
if rs.eof then
    strSQL = " update Distributoer set "
    strSQL =  strSQL & "TNIid = '" & Data & "', "
    strSQL =  strSQL & "Rettet = now "
    strSQL =  strSQL & " where ID = " & request.querystring("id")
    conn.execute(strSQL)
    session("TNIidX") = "TNI ID er opdateret."
    else
    session("TNIidX") = "Der er en Distributør med dette TNI ID i forvejen!"
end if
set rs = nothing
response.redirect portalHome & "?valg=" & request.querystring("valg") & "&ret=" & request.querystring("ret") &_
"&vis=" & request.querystring("vis") & "&id=" & request.querystring("id") & "&Page=" & request.querystring("Page") &_
"&nPerPage=" & request.querystring("nPerPage") & "&action=" & request.querystring("action") & "&TNIidX=" & TNIidX
Avatar billede para7 Nybegynder
10. februar 2004 - 19:51 #14
Jeg har prøvet med session istedet for querystring og kommer til samme fejl. Jeg kan se, at ved at sætte en stopklods, så ender det ved stopklodsen (response.end):

else
response.end
session("TNIidX") = "Der er en Distributør med dette TNI ID i forvejen!"
Avatar billede para7 Nybegynder
10. februar 2004 - 20:04 #15
Jeg fandt ud af det:

Data = request.querystring("Data")
strSQL = " select TNIid from Distributoer where ID <> " & request.querystring("id") & " and cstr(TNIid) = " & Data
rs.open strSQL, conn
if rs.eof then
    strSQL = " update Distributoer set "
    strSQL =  strSQL & "TNIid = '" & Data & "', "
    strSQL =  strSQL & "Rettet = now "
    strSQL =  strSQL & " where ID = " & request.querystring("id")
    conn.execute(strSQL)
    TNIidX = "TNI ID er opdateret."
    else
    TNIidX = "Der er en Distributør med dette TNI ID i forvejen!"
end if
set rs = nothing
response.redirect portalHome & "?valg=" & request.querystring("valg") & "&ret=" & request.querystring("ret") &_
"&vis=" & request.querystring("vis") & "&id=" & request.querystring("id") & "&Page=" & request.querystring("Page") &_
"&nPerPage=" & request.querystring("nPerPage") & "&action=" & request.querystring("action") & "&TNIidX=" & TNIidX
Avatar billede erikjacobsen Ekspert
10. februar 2004 - 20:04 #16
Hvad er "id" ? Er distributøren der allerede?
Avatar billede para7 Nybegynder
10. februar 2004 - 20:23 #17
Ja, han skal bare rettes. Når en ny Distributør oprettes er TNIid'et ikke kendt endnu.
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

IT-JOB

Capgemini Danmark A/S

Java Engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Analytiker til Security Operationscenter i Cyberdivisionen Hvidovre

Riskpoint A/S (Riskpoint Solutions Limited)

Senior Developer