Avatar billede webbe Nybegynder
27. november 2000 - 15:58 Der er 24 kommentarer og
1 løsning

Sletter i stedet for at opdatere!

Hejsa!

Jeg har et problem. Jeg har lavet en side der skal opdatere posterne i en database.

Men istedet for at opdatere posterne sletter den posterne - er der nogen der kan hjælpe mig!

Sender gerne noget kode hvis det er nødvendigt!
Avatar billede erikjacobsen Ekspert
27. november 2000 - 15:59 #1
Det ér nødvendigt!
Avatar billede klas Juniormester
27. november 2000 - 16:00 #2
smid lige lidt kode herinde
Avatar billede webbe Nybegynder
27. november 2000 - 16:02 #3
Her er den del der skulle opdatere mine poster!

<%
rs(\"Sagsnr\") = Request.Form(\"sagsnr\")
rs(\"Overskrift\") = Request.Form(\"overskrift\")
rs(\"Modtaget_dato\") = Request.Form(\"modtaget_dato\")
rs(\"Videregivet_til\") = Request.Form(\"videregivet_til\")
rs(\"Videregivet_dato\") = Request.Form(\"videregivet_dato\")
rs(\"Deadline\") = Request.Form(\"deadline\")
rs(\"Beskrivelse\") = Request.Form(\"beskrivelse\")
rs(\"Billeder_modtaget\") = Request.Form(\"billeder_modtaget\")
rs(\"Artwork_modtaget\") = Request.Form(\"artwork_modtaget\")
rs(\"Pressemateriale_modtaget\") = Request.Form(\"pressemateriale_modtaget\")
rs(\"Trailer_modtaget\") = Request.Form(\"trailer_modtaget\")
rs(\"Bioplakat_praemie\") = Request.Form(\"bioplakat_praemie\")
rs(\"Soundtrack_praemie\") = Request.Form(\"soundtrack_praemie\")
rs(\"Sign_foto_praemie\") = Request.Form(\"sign_foto_praemie\")
rs(\"Fribilletter_praemie\") = Request.Form(\"fribilletter_praemie\")
rs(\"Andet_praemie\") = Request.Form(\"andet_praemie\")
rs(\"Extra\") = Request.Form(\"extra\")
rs.Update
%>
Avatar billede toni01 Nybegynder
27. november 2000 - 16:11 #4
Du skal vel teste på om der står noget i de variabler du opdatere databasen med, og kun opdaterer i databasen de steder hvor der står noget?
Avatar billede ubbe Nybegynder
27. november 2000 - 16:13 #5
Jeg ville nok have gjort sådan her....

Sql = \"UPDATE tabel SET sagsnr=\'\" & Request.form(\"sagsnr\") & \"\' osv. WHERE sagsnr=\'\" et eller andet \"\' \"
Conn.Execute(Sql)


Avatar billede webbe Nybegynder
27. november 2000 - 16:14 #6
Det der sker er, at jeg henter det frem fra databasen der er i forvejen og derefter kan jeg rette i det....men når jeg klikker på opdater så sletter den i stedet for!
Avatar billede ubbe Nybegynder
27. november 2000 - 16:16 #7
du skal bare lige huske at sætte et \",\" efter hver SET:


altså SET sagsnr=\'\" & Request.form(\"sagsnr\") & \"\', overskrift=\'\" & Request.form(\"overskrift\") & \"\' \"

man kan nemlig ikke bruge \"and\"
Avatar billede ubbe Nybegynder
27. november 2000 - 16:17 #8
får du det vist i input-felter eller hvad????
Avatar billede webbe Nybegynder
27. november 2000 - 16:19 #9
Jeps - de informationer der er lagt i databasen underoprettelsen af posten bliver vist igen i input-felter....har brugt det mange gange før, men dette her driller meget....ved ikke hvorfor!
Avatar billede ubbe Nybegynder
27. november 2000 - 16:20 #10
Ok jeg går ud fra at sagsnr et unikt (autonummer..)

Så du henter ved hjælp af sagsnr ik?????

hvis det er sådan så skal bare skrive det som jeg skrev oven over
Avatar billede webbe Nybegynder
27. november 2000 - 16:24 #11
Ja - sagsnr er unikt, men er ikke autonummerering!
Men der kan ikke laves dubletter!

Prøver lige din løsning i morgen og så får du pointene hvis det virker!
Avatar billede ubbe Nybegynder
27. november 2000 - 16:28 #12
OK (vil dog forslå autonummerering)
:-)

\"Det gør det\" ;-)
Avatar billede erikjacobsen Ekspert
27. november 2000 - 19:03 #13
Hmm - det kunne tyde på et helt andet problem. Du må have nogle \"if\"-er,
der fortæller dig om der skal opdateres osv. Og så rammer du et forkert sted.
Så hvis jeg måtte bestemme, så *mere kode* ;-)
Avatar billede webbe Nybegynder
28. november 2000 - 08:17 #14
Til erikjacobsen!

Der er ikke nogen if-sætninger der fortæller om der skal opdateres - kun if-sætninger der fortæller om der skal vises det ene eller det andet der skal vises.

Derfor er det ikke et probæem med if-sætninger.
Avatar billede erikjacobsen Ekspert
28. november 2000 - 09:19 #15
Men så er det noget andet. Vi kan ikke hjælpe dig uden at se din kode.
Avatar billede webbe Nybegynder
28. november 2000 - 09:32 #16
Til ubbe!

Dit forslag virkede ikke - der blev ikke opdateret, så jeg må desværre afvise dit svar!
Avatar billede webbe Nybegynder
28. november 2000 - 09:32 #17
Til ericjacobsen!

Vil du ha\' hele min kode?
Avatar billede erikjacobsen Ekspert
28. november 2000 - 09:40 #18
Kun hvis du vil have et svar ;-)  Du kan sende den til min email, som du kan se ved
at klikke på mit navn her til venstre (emailen virker selv om selv siten er nede). Eller
du kan bare smide den her så alle kan se. Løsningen kommer selvfølgelig her!
Avatar billede carpediem Nybegynder
28. november 2000 - 13:43 #19
Jeg ville også gerne se den kode. specielt din select statement inden update sektionen.
Avatar billede ubbe Nybegynder
29. november 2000 - 15:02 #20
Hvad skrev den af fejl, jeg bruger det selv, såååå deeeet og kan ikke se fejl umiddelbart. Men hvad..

Hov hov ved godt hvorfor det ikke virker det er fordi
WHERE sagsnr skal se sådan ud:

Sql = \"UPDATE tabel SET sagsnr=\'\" & Request.form(\"sagsnr\") & \"\',overskrift=\'\" & Request.form(\"overskrift\") & \"\' WHERE sagsnr=\"& Session(\"sagsnr\") <------hvis du altså bruger sessions
Conn.Execute(Sql)


Avatar billede webbe Nybegynder
29. november 2000 - 15:05 #21
Har selv fundet løsningen - bruger ikke sessions og det har ikke noget med min WHERE-clause at gøre.

erikjacobsen får pointene, da han har ofret en del tid på at hjælpe mig (selv om der ikke kom noget konkret ud af det).

Så ubbe - derfor er dit svar afvist!

Venter bare at erikjacobsen opretter et svar her, så han kan få sine point.

Min løsning var at starte forfra - hvad fejlen var fandt jeg ikke helt ud af, men nu virker det i hvert fald.
Avatar billede webbe Nybegynder
29. november 2000 - 15:06 #22
Kan godt poste koden her hvis nogen har interesse i det, men jeg advarer.......den er lang!
Avatar billede erikjacobsen Ekspert
29. november 2000 - 16:09 #23
Jamen jeg vil ikke have point for tid, men for svar. Så med mindre min hjælp
(pr email) bragte dig i nærheden af løsningen, og løsningen - eller en skitse heraf -
kommer her på eksperten.dk, så må du hellere beholde pengen.... øh pointene selv ;-)
Avatar billede webbe Nybegynder
29. november 2000 - 16:10 #24
erikjacobsen

Okay - så smider jeg min kode ind som svar!
Avatar billede webbe Nybegynder
29. november 2000 - 16:12 #25
Her er den ASP-kode der er genereret ved hjælp af DreamWeaver - ville helst have håndkodet det, men dette her virker!

<%@LANGUAGE=\"VBSCRIPT\"%><%
\' *** Update Record: construct a sql update statement and execute it
MM_editAction = CStr(Request(\"URL\"))
If (Request.QueryString <> \"\") Then
  MM_editAction = MM_editAction & \"?\" & Request.QueryString
End If
If (CStr(Request(\"MM_update\")) <> \"\" And CStr(Request(\"MM_recordId\")) <> \"\") Then

  MM_tableName = \"Oprettelse\"
  MM_tableCol = \"Sagsnr\"
  MM_recordId = \"\'\" + Request.Form(\"MM_recordId\") + \"\'\"
  MM_fields = \"sagsnr,Sagsnr,\',none,\'\',overskrift,Overskrift,\',none,\'\',modtaget_dato,Modtaget_dato,\',none,\'\',videregivet_til,Videregivet_til,\',none,\'\',videregivet_dato,Videregivet_dato,\',none,\'\',deadline,Deadline,\',none,\'\',beskrivelse,Beskrivelse,\',none,\'\',billeder_modtaget,Billeder_modtaget,\',none,\'\',artwork_modtaget,Artwork_modtaget,\',none,\'\',pressemateriale_modtaget,Pressemateriale_modtaget,\',none,\'\',trailer_modtaget,Trailer_modtaget,\',none,\'\',bioplakat_praemie,Bioplakat_praemie,none,\'Y\',\'N\',soundtrack_praemie,Soundtrack_praemie,none,\'Y\',\'N\',sign_foto_praemie,Sign_foto_praemie,none,\'Y\',\'N\',fribilletter_praemie,Fribilletter_praemie,none,\'Y\',\'N\',andet_praemie,Andet_praemie,\',none,\'\',extra,Extra,\',none,\'\',bioplakat,Bioplakat,none,\'Y\',\'N\',logo,Logo,none,\'Y\',\'N\',synopsis,Synopsis,none,\'Y\',\'N\',biografier,Biografier,none,\'Y\',\'N\',bag_kameraet,Bag_kameraet,none,\'Y\',\'N\',interviews,Interviews,none,\'Y\',\'N\',tek_data_spilletid,Tek_data_spilletid,\',none,\'\',tek_data_format,Tek_data_format,\',none,\'\',tek_data_orgtitel,Tek_data_orgtitel,\',none,\'\',tek_data_nattitel,Tek_data_nattitel,\',none,\'\',tek_data_censur,Tek_data_censur,\',none,\'\',tek_data_praemieredato,Tek_data_praemieredato,\',none,\'\',tek_data_edbnr,Tek_data_edbnr,\',none,\'\',status,Status,\',none,\'\',startdato,Startdato,\',none,\'\',Slutdato,Slutdato,\',none,\'\',tidsforbrug,Tidsforbrug,\',none,\'\'\"
  MM_redirectPage = \"admin.asp\"

  \' create the sql update statement
  MM_updateStr = \"update \" & MM_tableName & \" set \"
  MM_fieldsArray = Split(MM_fields, \",\")
  For i = LBound(MM_fieldsArray) To UBound(MM_fieldsArray) Step 5
    FormVal = CStr(Request.Form(MM_fieldsArray(i)))
    Delim = MM_fieldsArray(i+2)
    If (Delim = \"none\") Then Delim = \"\"
    AltVal = MM_fieldsArray(i+3)
    If (AltVal = \"none\") Then AltVal = \"\"
    EmptyVal = MM_fieldsArray(i+4)
    If (EmptyVal = \"none\") Then EmptyVal = \"\"
    If (FormVal = \"\") Then
      FormVal = EmptyVal
    Else
      If (AltVal <> \"\") Then
        FormVal = AltVal
      ElseIf (Delim = \"\'\") Then  \' escape quotes
        FormVal = \"\'\" & Replace(FormVal,\"\'\",\"\'\'\") & \"\'\"
      Else
        FormVal = Delim + FormVal + Delim
      End If
    End If
    If (i <> LBound(MM_fieldsArray)) Then
      MM_updateStr = MM_updateStr & \",\"
    End If
    MM_updateStr = MM_updateStr & MM_fieldsArray(i+1) & \" = \" & FormVal
  Next
  MM_updateStr = MM_updateStr & \" where \" & MM_tableCol & \" = \" & MM_recordId

  \' finish the sql and execute it
  Set MM_updateCmd = Server.CreateObject(\"ADODB.Command\")
  MM_updateCmd.ActiveConnection = \"dsn=Opgaver;\"
  MM_updateCmd.CommandText = MM_updateStr
  MM_updateCmd.Execute

  \' redirect with URL parameters
  If (MM_redirectPage = \"\") Then
    MM_redirectPage = CStr(Request(\"URL\"))
  End If
  If (InStr(1, MM_redirectPage, \"?\", vbTextCompare) = 0 And Request.QueryString <> \"\") Then
    MM_redirectPage = MM_redirectPage & \"?\" & Request.QueryString
  End If
  Call Response.Redirect(MM_redirectPage)
End If
%> <%

Dim rs__MMColParam
rs__MMColParam = \"12345\"
if(Request.QueryString(\"Sagsnr\") <> \"\") then rs__MMColParam = Request.QueryString(\"Sagsnr\")

%> <%
set rs = Server.CreateObject(\"ADODB.Recordset\")
rs.ActiveConnection = \"dsn=Opgaver;\"
rs.Source = \"SELECT * FROM Oprettelse WHERE Sagsnr = \'\" + Replace(rs__MMColParam, \"\'\", \"\'\'\") + \"\'\"
rs.CursorType = 0
rs.CursorLocation = 2
rs.LockType = 3
rs.Open
rs_numRows = 0
%>
<%
set format = Server.CreateObject(\"ADODB.Recordset\")
format.ActiveConnection = \"dsn=Opgaver;\"
format.Source = \"SELECT * FROM Formater\"
format.CursorType = 0
format.CursorLocation = 2
format.LockType = 3
format.Open
format_numRows = 0
%>
<%
set censur = Server.CreateObject(\"ADODB.Recordset\")
censur.ActiveConnection = \"dsn=Opgaver;\"
censur.Source = \"SELECT * FROM Censur\"
censur.CursorType = 0
censur.CursorLocation = 2
censur.LockType = 3
censur.Open
censur_numRows = 0
%>
<%
set statusRS = Server.CreateObject(\"ADODB.Recordset\")
statusRS.ActiveConnection = \"dsn=Opgaver;\"
statusRS.Source = \"SELECT * FROM Statuskat\"
statusRS.CursorType = 0
statusRS.CursorLocation = 2
statusRS.LockType = 3
statusRS.Open
statusRS_numRows = 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