Meddelande

Minska
No announcement yet.

HJÄLP uppdate

Minska
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • HJÄLP uppdate

    Jag berhöver hjälp med uppdate

    jag ser inte vad felet är, någon som ser det?


    HTML-kod:
    Set db=Server.CreateObject("ADODB.connection")
    db.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & _
    Server.Mappath("db.mdb")
    
    sql="UPDATE tabel SET box='"&Request.Form("box")&"' WHERE Counter=16"
    
    db.Execute sql 

  • #2
    1. Vad får du för felmeddelande?
    2. Hur ser SQL frågan ut när du skriver ut den?
    3. Vad fungera inte?
    "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

    Kommentera


    • #3
      Saknas vänster krullparentes va?
      Livet är kort och Nu!
      Läs mera!
      !?

      Kommentera


      • #4
        Microsoft OLE DB Provider for ODBC Drivers error '80004005'
        [Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query.

        Kommentera


        • #5
          vid response.write sql
          så får jag
          Object required: ''
          men jag tycker inte att det saknas någon, är jag blind?

          Kommentera


          • #6
            Prova...[kod]Response.Write("UPDATE tabel SET box='"&Request.Form("box")&"' WHERE Counter=16")[/kod]...bara för att se vad den skriver ut. För övrigt bör du escape'a datan innan du stoppar in den i databasen. Folk kan ju skriva vade de vill i fältet box, tex något som innehåller ' och på så vis avslutar strängen, för att sedan skriva in egen SQL-kod.

            (Edit: Du läste mina tankar )
            Gameboy Genius - Foto: Gatukonst och elektronikporr
            Internklippning:
            1) Snaggning av fångar.
            2) Klippning frisörer emellan.

            Kommentera


            • #7
              Var du får för fel med Object Required så hade det varit ännu enklare att veta vilken rad du få felet på, men ditt första problem är med stor sannolikhet att du inte har rättigheter att skriva till din databas: http://support.microsoft.com/kb/175168

              Så sätt IUSR_<serverNamn> har rättigheter att skriva till din access databas.
              "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

              Kommentera


              • #8
                jag fick UPDATE tebel SET box='' WHERE Counter=16

                Kommentera


                • #9
                  Är det korrekt då? kan box vara en tom sträng?
                  "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

                  Kommentera


                  • #10
                    Är det rätt rad?

                    Är det rätt dokument som du ändrar i...? Låter otroligt, men tro mig... det har hänt!!

                    Kommentera


                    • #11
                      Måste sno denna tråd! Vill inleda me att säga att jag programmerat ASP för ca 6-7 år sedan men har för länge seda migrerat till LAMP. Oavsett vilket så gjorde jag ett arbete åt ett företag kring 2002 där jag givetvis använda ASP och Access-databaser eftersom det då var det enda jag kunde. I veckan fick jag ett mail från detta företag att de inte längre kan lägga till eller ta bort/uppdatera information som går mot databasen. Jag testade själv och mycket riktigt har jag fått detta fel.

                      Kod:
                      Microsoft JET Database Engine error '80004005'
                      
                      Operation must use an updateable query.
                      
                      /minfil.asp, line 123
                      När jag googlar på detta så hittar jag bara en enda lösning på samtliga sidor - rättigheter. Det enda som står är att det skulle saknas skrivrättigheter. Hur dessa rättigheter helt random skulle förändrats vet jag inte, men må så vara. Eftersom att företaget inte har en egen server utan hyr ett webhotell kan jag inte ändra användarna för mappen utan bara sätta rättigheter. Jag testade att ändra rättigheter till 777 så samtliga användare ska kunna skriva, men det funkar ändå inte. Det som slår mig är om det är så att jag faktiskt måste lägga till användaren IUSR_ på något vis, men jag vet ju varken vad datornamnet heter, och det finns inte heller någon kontrollpanel för att ändra detta. Ska jag behöva maila de som hostar hotellet? Eller kan något annat vara fel? Kan det inte vara något annat än rättigheter, den står ju nu som 777 nu?

                      Bifogar min kod också. Tacksam för snabbt svar!

                      Kod:
                      Cnnstr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.Mappath("mapp/data.mdb") & ";"
                      set Cnn = Server.CreateObject("adodb.connection")
                      Cnn.open Cnnstr
                      
                      SQL = "INSERT INTO info(datum,info) VALUES('" & Request.Form("datum") & "','" & Request.Form("info") & "')"
                      Cnn.Execute(SQL)
                      Min SQL-sats skrivs ut på följande vis om jag visar den efter jag fyllt i värden:
                      INSERT INTO info(datum,info) VALUES('Test','Test')

                      Igen, påminner om att allt detta fungerat klockrent i ungefär 6 år.

                      Kommentera


                      • #12
                        Sätt rättigheterna på din databas, inte asp filerna. Kontakta webbhotellet för att fixa rättigheterna eller placera in i mappen på webbhotellet som de har satt rättigheterna redan.
                        "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

                        Kommentera


                        • #13
                          Givetvis ändrar jag ju rättigheterna på mappen min databas är i och min databas. Just nu har jag rwxrwxrwx (777) på både mappen och filen.

                          Är det troligt att webhotellet har ändrat rättigheter på min mapp bara sådär? Har ju fungerat över 5 år.

                          EDIT: Sätter rättigheterna via en FTP-klient eftersom det är den enda accessen mot filerna jag har. Men funkar gör det onekligen om jag kollar från en annan klient senare. Kan givetvis dubbelkolla genom att skriva ett script som laddar upp en fil till mappen, men det känns onödigt.

                          EDIT2: Mappstrukturen när man ansluter mot FTPn är följande
                          databases
                          domain.se
                          log

                          I domain.se ligger mina filer. Där i ligger en mapp med privilegierna 777 som heter mapp. I den mappen ligger min databas.mdb som har privilegierna 777.

                          Har testat chmoda databases i root till 777 och ange sökvägen ../databases/databas.mdb (som fortfarabde är satt till 777) utan förändring. Känns ju sjukt konstigt att en mapp skapad av de som äger domänen med namn databases ska ha fel rättigheter.

                          Tror helt enkelt jag får ta och ringa/maila.
                          Last edited by Jftn; 2010-05-18, 21:45.

                          Kommentera


                          • #14
                            Om webbhotellet har uppgraderat din server så kan de självklart har missat det, vilket webbhotell kör du med? Visa webbhotell har specifika mappar för access databaser som endast där har rättigheterna för IUSR_<datornamn>, kontakta dom och checkar av med dom.
                            "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

                            Kommentera


                            • #15
                              Köpte det av gate9 som blev neno som numera är Crystone. De har inte gjort någon uppdatering vad jag vet om, men de hade en drift på deras jupiterserver nyligen. Däremot har det fungerat efter det.

                              Jaja, se min EDIT2 i inlägget ovan för dedikerade mappar för databaser med rättigheter för IUSR_NM

                              Kommentera

                              Working...
                              X