MySQL/ASP Delete

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Agneus
    Medlem
    • 2003-12-13
    • 46

    #1

    MySQL/ASP Delete

    Har byggt om en Accesslösning till MySQL.

    Lägg till post, redigera post, sortera/lista poster funkar.
    Men att radera en post funkar inte. Jag skickar ett id-nummer till filen radera.asp som genererar det här felmeddelandet:

    Microsoft VBScript runtime error '800a01a8'
    Object required: ''
    radera.asp, line 15


    Vad kan vara fel/saknas?


    Code:
    <html>
    
    <!-- #include File="adovbs.inc" -->
    
    <!-- #Include File="DBkoppling.inc" -->
    
    <%	
    
    	 'Set Connect = Server.CreateObject("ADODB.Connection")
    	 'Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("db_Access.mdb") 
    	 'Set RecSet = Server.CreateObject("ADODB.Recordset")
    	
    	
    	Radera = "SELECT * FROM tabellen WHERE id = " & Request.QueryString("id") & " "
    
    	RecSet.Open Radera, Connect, adOpenStatic, adLockOptimistic 
    
    	RecSet.Delete
    
    	RecSet.Close
    	Connect.Close
    	
    Response.Redirect("form_ny.asp")
    
    %>
    
    </html>
  • voigtann1
    Forumvärd
    • 2001-06-14
    • 8810

    #2
    Du har inte skapat ett Recordset ser det ut som.
    "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

    Comment

    • @nders
      Moderator
      Marsvin
      • 2000-06-30
      • 26914

      #3
      Hela det där kodschabraket kan du ersätta med följande:[kod]<!-- #Include File="DBkoppling.inc" -->
      <%

      Radera = "DELETE FROM tabellen WHERE id = " & CLng(Request.QueryString("id"))
      Connect.Execute Radera,,128
      Connect.Close
      Set Connect = Nothing

      Response.Redirect("form_ny.asp")

      %>[/kod]Clng har jag lagt runt din request för att se till att ID är ett heltal. Försöker man skicka in annat kraschar koden. Man måste alltid tänka "sql injection".

      Jag utgår ifrån att objektet Connect skapas i DBkoppling.inc - så ser det iaf ut på din originalkod.

      [edit]: Eventuellt får du ta bort ,,128 från execute-anropet - jag vet inte om mysql (rättare sagt myodbc) hanterar detta.

      Mvh
      @aviddevguy

      Comment

      • @nders
        Moderator
        Marsvin
        • 2000-06-30
        • 26914

        #4
        I övrigt: om du har en includefil med ändelsen .inc - se till att IISn exekverar den filändelsen som en asp-fil. Man vill inte riskera att filen går att ladda hem via webbläsaren, och någon får tag i uppgifterna till din databas.

        mvh
        @aviddevguy

        Comment

        • Agneus
          Medlem
          • 2003-12-13
          • 46

          #5
          TACK @nders!

          Det funkade. Behövde inte ta bort ,,128

          Extra tack för tipset om inc-filer

          Comment

          • @nders
            Moderator
            Marsvin
            • 2000-06-30
            • 26914

            #6
            Varsågod.

            Använd gärna funktionen "Markera som lösning" till höger i inlägget som hjälpte dig att lösa ditt problem.

            mvh
            @aviddevguy

            Comment

            Working...