Avatar billede Jman Praktikant
24. september 2003 - 12:52 Der er 18 kommentarer og
2 løsninger

Updateform virker på en profil, men ikke en anden

Hejsa!
Jeg har forsøgt mig på en opdateringsformular i næsten 3 dage nu og kan simpelthen ikke komme videre. Opdateringsformularen er aftestet hos 6 brugere nu og jeg får forskellige resultater.
Eksempelvis har jeg logget mig på samme Citrix-server med 2 forskellige brugere. Den ene bruger kan benytte opdateringen uden problemer, men den anden kan ikke - det forstår jeg bare ikke, når det er ASP.

Formularen:
<% mode = Request.QueryString("mode")%>

<% If mode = "update" then

    '######################################## Start på opgaveopdatering ########################################
    Set dbsupport = CreateObject("ADODB.Connection")
    strConn = "dsn=xxxxxx"
    dbsupport.Open strConn

    'StrDate = Year(Date) & "-" & Right("0" & Month(Date),2) & "-" & Right("0" & Day(Date),2)
    StrDate = Right("0" & Day(Date),2) & "-" & Right("0" & Month(Date),2) & "-" & Year(Date)
    'StrDate = Year(Date) & Month(Date) & Day(Date)

    Tekst = Request.Form("ny_prioritet")
    Priornr = Request.Form("ny_priornr")
    tidsestimat = Request.Form("tidsestimat")
    tidsestimat = CDBL(tidsestimat)

    if StrRekvirentLogon = initialer then
        StrNyDeadline = request.form("ny_deadline")
        deadline = Right("0" & Day(StrNyDeadline),2) & "-" & Right("0" & Month(StrNyDeadline),2) & "-" & Year(StrNyDeadline)
        'deadline = Year(StrNyDeadline) & "-" & Right("0" & Month(StrNyDeadline),2) & "-" & Right("0" & Day(StrNyDeadline),2)
        'deadline = Day(StrNyDeadline) & "-" & Month(StrNyDeadline) & "-" & Year(StrNyDeadline)
      else
        'minvar = StrDeadline
        'dim temp
        'temp = split(minvar, "-")
        'deadline = temp(1)&"-"&temp(0)&"-"&temp(2)

        StrNyDeadline = StrDeadline
        'deadline = Year(StrNyDeadline) & "-" & Right("0" & Month(StrNyDeadline),2) & "-" & Right("0" & Day(StrNyDeadline),2)
        deadline = Right("0" & Day(StrNyDeadline),2) & "-" & Right("0" & Month(StrNyDeadline),2) & "-" & Year(StrNyDeadline)
        'deadline = Day(StrNyDeadline) & "-" & Month(StrNyDeadline) & "-" & Year(StrNyDeadline)
    end if

    Status = Request.Form("ny_status")
    Ansvarlig = Request.Form("ny_ansvarlig")
    StrSlutDate = Right("0" & Day(Date),2) & "-" & Right("0" & Month(Date),2) & "-" & Year(Date)
    'StrSlutDate = Year(Date) & "-" & Right("0" & Month(Date),2) & "-" & Right("0" & Day(Date),2)
    Slutdato = StrSlutdate & " " & time
    lostaf = initialer
    NyKategori = request.form("ny_kategori")

    if request.form("afsluttet") <> "" then
        check_afsluttet = 1    'Eller true
        Status = "Afsluttet"
      else
        check_afsluttet = 0    'Eller false
    end if

    if request.form("Vist") <> "" then
        check_Vist = 1    'Eller true
      else
        check_Vist = 0    'Eller false
    end if

        'SQLstmt = "UPDATE opgave SET Prioritet = '" & Tekst & "',Priornr = '" & Priornr & "',deadline = '" & deadline & "',Tidsestimat = '" & tidsestimat & "',Status = '" & Status & "',Ansvarlig = '" & Ansvarlig & "',Slutdato = '" & Slutdato & "',Afsluttet = '" & check_afsluttet & "', Vist = '" & check_vist & "', lostaf = '" & lostaf & "', kategori = '" & NyKategori & "' WHERE ID ="&request("ID") #Bruges som sikerhedskopi
        SQLstmt = "UPDATE opgave SET Prioritet = '" & Tekst & "',Priornr = '" & Priornr & "',deadline = '" & deadline & "',Tidsestimat = '" & tidsestimat & "',Status = '" & Status & "',Ansvarlig = '" & Ansvarlig & "',Afsluttet = '" & check_afsluttet & "', Vist = '" & check_vist & "', lostaf = '" & lostaf & "', kategori = '" & NyKategori & "' WHERE ID ="&request("ID")
        'SQLstmt = SQLstmt & "VALUES ('" & Request.Form("ny_prioritet") & "','" & Request.Form("ny_priornr") & "','" & deadline & "','" & Request.Form("tidsestimat") & "','" & Afsluttet & "','" & Request.Form("ny_ansvarlig") & "','" & slutdato & "','" & Request.Form("check_afsluttet") & "','" & Request.Form("check_afsluttet") & "','" & lostaf & "','" & request.form("ny_kategori") & "')"
        response.write "<br>" & SQLstmt

        dbsupport.Execute (SQLstmt)
        dbsupport.Close
        Set dbsupport = nothing
        Set SQLstmt = nothing
       
        If check_vist = 1 then
            SQL_viden = "SELECT * from opgave WHERE ID =" & request("ID")
            set rs_viden = Conn.Execute(sql_viden)

            Betegnelse = rs_viden("Betegnelse")
            Betegnelse = replace(Betegnelse,"'","''")
            Kategori = rs_viden("kategori")
            Problem = rs_viden("problem")
            Problem = replace(problem,"'","''")
            Vis_intranet = 1
            refid= request("id")

            set DBCMD1 = Server.CreateObject("ADODB.Connection")
            DBCMD1.Open = "DSN=websupport"
            strCreateNew="Insert into videndeling (Betegnelse,Kategori,Problem,Vis_intranet,dato, refid)VALUES ('" & Betegnelse & "','" & Kategori & "','" & problem & "','" & vis_intranet & "','" & slutdato & "','" & refid & "')"
            'response.write "<br><br>" & strCreateNew
            DBCMD1.Execute strCreateNew
            DBCMD1.Close
            set DBCMD1 = nothing

            rs_viden.Close
            Set rs_viden = Nothing
            Set SQL_viden = Nothing
        End if
   
    '######################################## slut på opgaveopdatering ######################################## %>

<% response.redirect "default.asp" %>

<% End if %>

Når jeg får fejlen er det:
UPDATE opgave SET Prioritet = '98',Priornr = '',deadline = '24-09-2003',Tidsestimat = '0',Status = 'EJ PÅBEGYNDT',Ansvarlig = 'JEJ',Afsluttet = '0', Vist = '0', lostaf = 'JEJ', kategori = 'CSG                                              ' WHERE ID =13065

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

[Microsoft][ODBC SQL Server Driver][SQL Server]The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.

/websupport_v2/inc_vis_opgave.asp, line 546

Det driver mig til vanvid!!!
Avatar billede dawin_dk Nybegynder
24. september 2003 - 17:40 #1
en god ide er at tvinge serveren til altid at bruge danske betegnelser og standarder når man bruger danske dato-formater ... det kan f.eks. gøres med : session.lcid=1030

g så vil jeg gerne vide hvad websupport_v2/inc_vis_opgave.asp, line 546 præcist indeholder....
Avatar billede Jman Praktikant
24. september 2003 - 18:04 #2
Session.lcid er i toppen af siden

546: dbsupport.Execute (SQLstmt)
Avatar billede dawin_dk Nybegynder
24. september 2003 - 18:08 #3
prøv at udskrive sqlstmt ... og paste den til mig :)
Avatar billede Jman Praktikant
24. september 2003 - 18:10 #4
den er i oprindelige spørgsmål - det er den nederste del
Avatar billede dawin_dk Nybegynder
24. september 2003 - 18:11 #5
(gerne udskriv den for både den bruger der ikke virker og den der virker :)
Avatar billede Jman Praktikant
24. september 2003 - 18:13 #6
no can do - i dag i hvert fald. Det er intranet på arbejde og jeg er lige kommet hjem
Avatar billede dawin_dk Nybegynder
24. september 2003 - 18:16 #7
UPDATE opgave SET Prioritet = '98',Priornr = '',deadline = '24-09-2003',Tidsestimat = '0',Status = 'EJ PÅBEGYNDT',Ansvarlig = 'JEJ',Afsluttet = '0', Vist = '0', lostaf = 'JEJ', kategori = 'CSG' WHERE ID =13065

..hmmm.. lad mig gætte ... deadline er en dato i databasen ? ...

angivelse af datoer i SQLs kan være pænt tricky ... mener de skal angives #mm/dd/yyyy# for at man er sikker på de fungerer som de skal hele tiden ..
Avatar billede Jman Praktikant
24. september 2003 - 18:20 #8
ikke når det er en SQL database og datoen er sat - det er jo ikke det, der er galt, når den virker korrekt i 50% af tilfældende...
Avatar billede dawin_dk Nybegynder
24. september 2003 - 18:26 #9
man skal aldrig sige aldrig ... jeg har oplevet mange mystiske fejl ... men er der evt forskel i de 2 brugeres adgange... så kun en af dem sætter deadline ..

det ser for mig ud som om at hvis initialer ikke matcher ... så bruger du den her

StrNyDeadline = StrDeadline ...

men strDeadline er ikke tidligere sat .. det er StrDate derimod .. måske den du har ment ?
Avatar billede Jman Praktikant
25. september 2003 - 08:48 #10
StrNyDeadline træder kun i kraft, hvis bruger ikke er den samme som rekvirenten.
D.v.s. hvis man ikke har oprettet opgaven, kan man ikke rette i deadline.

Her er output på de to brugere:
korrekt (fra bruger pj)
UPDATE opgave SET Prioritet = '2',Priornr = '            ',deadline = '10-03-2003',Tidsestimat = '0',Status = 'EJ PÅBEGYNDT',Ansvarlig = 'PJ',Slutdato = '25-09-2003 08:42:26',Afsluttet = '0', Vist = '0', lostaf = 'PJ', kategori = 'Intranet                                          ' WHERE ID =12957

ikke-korrekt (fra bruger JEJ)
UPDATE opgave SET Prioritet = '2',Priornr = '            ',deadline = '10-03-2003',Tidsestimat = '0',Status = 'EJ PÅBEGYNDT',Ansvarlig = 'PJ',Slutdato = '25-09-2003 08:45:00',Afsluttet = '0', Vist = '0', lostaf = 'JEJ', kategori = 'Intranet                                          ' WHERE ID =12957
Avatar billede dawin_dk Nybegynder
25. september 2003 - 09:06 #11
hva DB er det... access / ms-sql / mysql ?
Avatar billede Jman Praktikant
25. september 2003 - 09:07 #12
SQL
Avatar billede Jman Praktikant
25. september 2003 - 09:08 #13
De to brugere er begge valideret i Active Directory med administratorrettigheder.
Jeg har desuden prøvet med en "almindelig" bruger, hvor det også duer, så det er helt sikkert ikke brugerettigheder
Avatar billede dawin_dk Nybegynder
25. september 2003 - 10:40 #14
det var ik det jeg spurgte om .. spurgte hva database det er ...
Avatar billede Jman Praktikant
25. september 2003 - 10:57 #15
MS SQL!!
OK her kommer en funky information:
StrDate = Right("0" & Day(Date),2) & "-" & Right("0" & Month(Date),2) & "-" & Year(Date)

Hvis jeg bytter om på Year og Day, så er det omvendt for de 2 brugere... Så kan brugere JEJ benytte update og ikke Bruger PJ
Avatar billede dawin_dk Nybegynder
25. september 2003 - 11:13 #16
men de er så authed med forskellige settings i deres brugere ... omkring datoer ...

prøv at angive datoen i SQL som yyyy/mm/dd .. og så se om det virker ....
Avatar billede Jman Praktikant
25. september 2003 - 11:28 #17
prøv at angive datoen i SQL som yyyy/mm/dd .. og så se om det virker ....
hvordan ???

Det var i øvrigt derfor jeg kom med kommentaren (25/09-2003 09:08:43)
Avatar billede Jman Praktikant
25. september 2003 - 13:49 #18
Problem løst ! .. tror jeg, for jeg har aldrig fået svaret. I MS SQL, kan man tilsyneladende bestemme om det skal være lokale settings, der bestemmer formater.
Fint nok! - men det der huer mig er, at mine 2 testbrugere benyttede den samme server til at sende fra og begge brugere er medlem af administrator OU'en i ctive Directory... Så svaret fik jeg ikke - kun en løsning på mit problem

Stik mig et svar, så kvittere jeg med en "halvtredser"
Avatar billede dawin_dk Nybegynder
25. september 2003 - 13:54 #19
hehe.. fair nok .. et svar :))

- good luck :)

(men angivelse i det standardformat burde blive forstået af alle settings...)
Avatar billede Jman Praktikant
25. september 2003 - 14:13 #20
åbenbart ikke i SQL vers. 7
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