Avatar billede Jman Praktikant
11. juli 2002 - 17:38 Der er 16 kommentarer og
1 løsning

Hjælp til Update

Hejsa!
Jeg er ikke så god til SQL (endnu*G*) og kunne derfor godt tænke mig lidt hjælp her..

<!-- sådan kalder jeg DB -->
Session("ConnectionString") = "dsn=AdhocitSQL;uid=adhocdefault;pwd=xxx"
Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open Session("ConnectionString")
    SQL = "SELECT prioritet.tekst, opgave.id, opgave.rekvirent, opgave.deadline, opgave.status, opgave.betegnelse, opgave.problem, opgave.losning FROM Opgave INNER JOIN Prioritet ON Opgave.Prioritet = Prioritet.Nummer WHERE ID = '" & request("ID") & "' "
    set rs = Conn.Execute(sql)
<!-- kald slut -->

Herefter lister jeg så alle oplysninger, men 4 af felterne lister jeg i dropdown-boxe, idet man skal kunne rette i DB...

De 4 felter jeg henter ind i dropdown-bokse er
"Tekst" (som egentlig er prioriteten)
"Deadline"
"Status"
"kommentar"
Boksene kalder jeg "ny_tekst","ny_deadline" o.s.v. foran.
Derefter laver jeg Tekst = request.form("ny_tekst") o.s.v.

Alt det mener jeg er korrekt.. MEN MEN MEN
Hvad skal jeg skrive for at lave en connenction og update, når jeg har lavet "If mode=update then"
????
Avatar billede madrich Nybegynder
11. juli 2002 - 17:51 #1
den samme conn

og så er sql udtrykket

SQL = UPDATE tabel_navn SET felt_navn = '"& request.form("input_felt")&"', feltnavn1 = '"&request.form("input_felt")&"'"
Conn.Execute(SQL)

thats it
Avatar billede madrich Nybegynder
11. juli 2002 - 17:52 #2
SQL = "UPDATE tabel_navn SET felt_navn = '"& request.form("input_felt")&"', feltnavn1 = '"&request.form("input_felt")&"' where id_feltnavn = " & request("id")
Conn.Execute(SQL)
Avatar billede Jman Praktikant
11. juli 2002 - 18:02 #3
Sådan har jeg skrevet - der sker ikke noget, men der kommer heller ingen fejl:

<% If mode = "update" then %>
<%
Set dbadhoc = CreateObject("ADODB.Connection")
strConn = "dsn=AdhocitSQL;uid=adhocdefault;pwd=xxx"
dbadhoc.Open strConn

Tekst = Request.Form("ny_prioritet")
deadline = Request.Form("ny_deadline")
Status = Request.Form("ny_status")
Losning = Request.Form("ny_losning")

SQLstmt = "UPDATE opgave SET Tekst = '" & Tekst & "',deadline = '" & deadline & "',Status = '" & Status & "',Losning = '" & Losning & "' WHERE ID = '" & request("ID") & "' "
'SQLstmt = SQLstmt & "VALUES ('" & Request.Form("ny_prioritet") & "','" & Request.Form("ny_deadline") & "','" & Request.Form("ny_status") & "','" & Request.Form("ny_losning") & "')"

response.write sqlstmt

dbadhoc.Execute (SQLstmt)

dbadhoc.Close
Set dbadhoc = nothing
Set SQLstmt = nothing

    response.redirect "ok.asp"
    End if
%>
Avatar billede madrich Nybegynder
11. juli 2002 - 18:47 #4
Hvad kommer der ud når du skriver SQL strengen ud ? -> har du evt noget man kan se online ?
Avatar billede madrich Nybegynder
11. juli 2002 - 18:49 #5
det er sikkert fordi at ID ikke matcher noget i tabellen : = )
Avatar billede Jman Praktikant
11. juli 2002 - 18:59 #6
nej, for jeg kan jo godt kalde informationerne med samme funktion (request ("id")
Jeg klan desværre ikke vise dig det online, da det er noget intranet-noget, jeg har overtaget
Avatar billede eagleeye Praktikant
11. juli 2002 - 19:44 #7
Hvor kommer mode fra??

<% If mode = "update" then %>

Prøv evt at sætte LCase(mode) for "Update" er ikke lig "update"
Avatar billede Jman Praktikant
11. juli 2002 - 20:09 #8
den kommer p.g.a. denne form:
<form method="post" action="EditTask.asp?mode=update&id=<%=rs("id")%>">

skal jeg ligge hele koden op ?
Avatar billede eagleeye Praktikant
11. juli 2002 - 20:13 #9
koden som hendter mode kan du evt lige vise..

Du skriver bare der ikke sker noget og du får ingen fejl...
Det undre mig lidt da du udskriver SQL sætningen her:
  response.write sqlstmt


Og redirecter til ok.asp siden hvis det går godt:
  response.redirect "ok.asp"

Hvis der ikke kommer noget på skærmen eller ud kommer til ok.asp siden ville jeg gætte på at mode ikke er = "update"
Avatar billede Jman Praktikant
11. juli 2002 - 20:30 #10
jeg smider lige koden alligevel.... ;0)

<% if Request.ServerVariables("SERVER_SOFTWARE")="Microsoft-IIS/4.0" then Session.LCID = 1030 %>
<%Session("ConnectionString") = "dsn=AdhocitSQL;uid=adhocdefault;pwd=xxx"%>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<META HTTP-EQUIV="Refresh" CONTENT="180; URL=admin/hotlinetask.asp" target="_mainwindow" >
<link rel="stylesheet" href="../../scripts/style.css">
<title>Hotline Opgaver</title>
</head><body>
<%
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open Session("ConnectionString")
    SQL = "SELECT prioritet.tekst, opgave.id, opgave.rekvirent, opgave.deadline, opgave.status, opgave.betegnelse, opgave.problem, opgave.losning FROM Opgave INNER JOIN Prioritet ON Opgave.Prioritet = Prioritet.Nummer WHERE ID = '" & request("ID") & "' "
    set rs = Conn.Execute(sql)
%>

<table border="0" width="550" cellpadding="2" style="border-collapse: collapse" bordercolor="#111111" cellspacing="0" bgcolor="#CCCCCC">
<tr>
    <td width="100%">
    <div align="center">
    <table border="0" width="100%" style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0">
    <tr>
    <TD colspan="5" width="550" bgcolor="#999999">
<form method="post" action="EditTask.asp?mode=update&id=<%=rs("id")%>">
    <h2 style="margin:3 5; "><font color="#FFFFFF">Ret i opgavenr. <%=rs("id")%> - <% =rs("Betegnelse")%></font></h2>
      </TD>
    </tr>
    <TR>
    <TD width="110" valign="top">
    <h3 style="margin-left: 5; margin-right: 3; margin-top:0; margin-bottom:3">
    <font style="font-size: 9pt; font-weight:400"><b>Prioritet: </b><br>
        <select size="1" name="ny_prioritet" style="border-style:solid; border-width:1; font-size: 7pt; background-color:#E6E6D0">
        <option value="<%=rs("Tekst")%>" selected><%=rs("Tekst")%></option>
        <option value="1">Meget høj</option>
        <option value="2">Høj</option>
        <option value="3">Mellem</option>
        <option value="4">Lav</option>
        <option value="5">Meget lav</option>
        <option value="16">Fast opgave</option>
        <option value="98">Skal prioriteres</option>
        </select> 
    </font></h3>
    </TD>
    <TD width="150" valign="top">
    <h3 style="margin-left: 5; margin-right: 3; margin-top:0; margin-bottom:3">
    <font style="font-size: 9pt; font-weight:400"><b>Hotline nr. </b><br><%=rs("ID")%></font></h3>
    </TD>
    <TD width="100" valign="top">
    <h3 style="margin-left: 5; margin-right: 3; margin-top:0; margin-bottom:3">
    <font style="font-size: 9pt; font-weight:400"><b>Rekvirent: </b><br><%=rs("Rekvirent")%></font></h3>
    </TD>
    <TD width="150" valign="top">
    <h3 style="margin-left: 5; margin-right: 3; margin-top:0; margin-bottom:3">
    <font style="font-size: 9pt; font-weight:400"><b>Deadline: </b><br>
    <input type="text" name="ny_deadline" size="8" value="<%=rs("Deadline")%>"></font></h3>
    </TD>
    <TD width="200" valign="top">
    <h3 style="margin-left: 5; margin-right: 3; margin-top:0; margin-bottom:3">
    <font style="font-size: 9pt; font-weight:400"><b>Hotline status: </b><br></font><font style="font-size: 9pt; font-weight:400">
    <select size="1" name="ny_status" style="border-style:solid; border-width:1; font-size: 7pt; background-color:#E6E6D0">
        <option value="<%=rs("Status")%>" selected><%=rs("Status")%></option>
        <option>EJ PÅBEGYNDT</option>
        <option>Igang</option>
        <option>Igang - CH</option>
        <option>Igang - CDP</option>
        <option>Igang - KTM</option>
        <option>Igang - JKK</option>
        <option>Igang - MHE</option>
        <option>Igang - PJ</option>
        <option>Igang - JEJ</option>
        <option>Igang - RM</option>
        <option>Igang - AV</option>
        <option>Venter - se kommentar</option>
        <option>På hold - se kommentar</option>
        </select></font></h3>
    </TD>
    </TR>
    <TR>   
    <TD colspan="5" width="550">
    <h3 style="margin-left:5; margin-right:5; margin-top:0; margin-bottom:0">Problem:</h3><h4 style="margin-left:5; margin-right:5; margin-top:0; margin-bottom:5"> <%=rs("Problem")%></h4>
    </TD>
    </TR>
    <TR>   
    <TD colspan="5" width="550">
    <h3 style="margin-left:5; margin-right:5; margin-top:0; margin-bottom:0">Løsning/kommentar:</h3><h4 style="margin-left:5; margin-right:5; margin-top:0; margin-bottom:5">
    <textarea rows="4" name="ny_losning" cols="60"><%=rs("Losning")%>
----------
</textarea>
    </h4>
    </TD>
    </TR>
    <TR>   
    <TD colspan="5" width="550">
    <p align="center"><INPUT type=submit value=Opdatér></p>
    </TD>
    </TR>
    <%
    rs.Close
    Set rs = Nothing
    Set SQL = Nothing
    %>
    </form>
</table>
</div>
</table>
</body></html>

<% If mode = "update" then %>
<%
Set dbadhoc = CreateObject("ADODB.Connection")
strConn = "dsn=AdhocitSQL;uid=adhocdefault;pwd=default"
dbadhoc.Open strConn

Tekst = Request.Form("ny_prioritet")
deadline = Request.Form("ny_deadline")
Status = Request.Form("ny_status")
Losning = Request.Form("ny_losning")

SQLstmt = "UPDATE opgave SET Tekst = '" & Tekst & "',deadline = '" & deadline & "',Status = '" & Status & "',Losning = '" & Losning & "' WHERE ID = '" & request("ID") & "' "
'SQLstmt = SQLstmt & "VALUES ('" & Request.Form("ny_prioritet") & "','" & Request.Form("ny_deadline") & "','" & Request.Form("ny_status") & "','" & Request.Form("ny_losning") & "')"

response.write sqlstmt

dbadhoc.Execute (SQLstmt)

dbadhoc.Close
Set dbadhoc = nothing
Set SQLstmt = nothing

    response.redirect "ok.asp"
    End if
%>
Avatar billede eagleeye Praktikant
11. juli 2002 - 20:36 #11
Prøv at ændre denne linie:

<% If mode = "update" then %>


Til:
mode = Request.QueryAtring("mode")
<% If mode = "update" then %>
Avatar billede eagleeye Praktikant
11. juli 2002 - 20:38 #12
Hmm

mode = Request.QueryString("mode")
Avatar billede Jman Praktikant
12. juli 2002 - 07:55 #13
God morgen eagleeye!
Endnu en gang har du sgu reddet min dag... eller rettere mit script!
Det ser til at den requester "mode" nu og rettelserne bliver også foretaget.. men jeg har aldrig set den løsning før. Er det en slags "fuskerløsning" eller er der en forklaring bag at man skal lave en Request.QueryString ?
---
derudover får jeg en fejl til slut..hvis du lige gad...
Hvis ikke jeg ændrer noget (altså lader felterne være, som de er) får jeg følgende fejl:

UPDATE opgave SET Prioritet = 'Høj',deadline = '25-07-2002',Status = 'Igang',Losning = '' WHERE ID = '3232'
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value 'Høj' to a column of data type smallint.

/edb/Adhocit/EditTask.asp, line 124
---
Jeg mener det er p.g.a. af feltet skal indeholde tal, men det er values også - det er bare som om den overer dette, hvis der ikke rettes i nogle felter.

Kan du klare den ?
-og lig lige et svar ;0)
Avatar billede eagleeye Praktikant
12. juli 2002 - 08:08 #14
God morgen :)

>>Er det en slags "fuskerløsning" eller er der en forklaring bag at man skal lave en Request.QueryString ?

Nej det er skam en rigtig løsning. Når man sender noget til en side via QueryStringen altså data som er placeret efter filnavnet i linket. Eks.: EditTask.asp?mode=update
Det svare til samme function som Reques.Form som hendter data POST'ed via en input form.


I select boksen  ny_prioritet  sættes tal ind i value feltet så vidt jeg kan se. For at hendte den skal du skrive Request.Form("ny_prioritet") det er som om den får fat i den tekst som er valgt.

Kunne det tænkes det et fordi den ikke er ændret?? for den første der bliver lagt i prioritet select'en er:
<option value="<%=rs("Tekst")%>" selected><%=rs("Tekst")%></option>

Der sættes nemlig tekst ind i både value og beskrivese..
Den som sættes ind i values skal vel være  prioritet ??

<option value="<%=rs("Prioritet")%>" selected><%=rs("Tekst")%></option>
Avatar billede Jman Praktikant
12. juli 2002 - 08:16 #15
tja det kunne det i højeste grad, men jeg har et rpoblem, hvis jeg skriver den (som du nævte med option value) får jeg en Recordset error. Item cannot be found in the collection corresponding to the requestet name og ordinal... Jeg ved det ikke, men det har nok noget med det dersens "join" at gøre... ?
Avatar billede eagleeye Praktikant
12. juli 2002 - 08:22 #16
Prøv at til føje Prioritet.Nummer til SELCT i den første SQL:


SQL = "SELECT prioritet.tekst, Prioritet.Nummer, opgave.id, opgave.rekvirent, opgave.deadline, opgave.status, opgave.betegnelse, opgave.problem, opgave.losning FROM Opgave INNER JOIN Prioritet ON Opgave.Prioritet = Prioritet.Nummer WHERE ID = '" & request("ID") & "' "


Og så rette denne:
<option value="<%=rs("Tekst")%>" selected><%=rs("Tekst")%></option>

Til:
<option value="<%=rs("Nummer")%>" selected><%=rs("Tekst")%></option>

Så tror jeg den får priotets nummeret med rigtigt..
Avatar billede Jman Praktikant
12. juli 2002 - 08:25 #17
jamen dog - du er jo en stor herlighed ...!

1000 tak for hjælpen
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