Avatar billede styrbaek Nybegynder
31. marts 2001 - 02:08 Der er 25 kommentarer og
2 løsninger

Operation must use an updateable query.

Jeg har et har lidt problemer med at skrive til min access database.

Jeg får følgende fejl

Microsoft OLE DB Provider for ODBC Drivers error \'80004005\'

[Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query.

/news/admin/addnews.asp, line 25


Min database connection ser således ud:

Set news = Server.CreateObject(\"ADODB.Connection\")
news.Open \"driver={Microsoft Access Driver (*.mdb)};dbq=\" & server.mappath(\"../../db/news.mdb\")

-------
Og problemt ser ud til at ligger her:
/news/admin/addnews.asp, line 24 og 25

sqlstr = \"INSERT INTO news ([name],[title],[news],[urls],[time],[date]) VALUES (\'\" & request.form(\"name\") & \"\', \'\" & gtitle & \"\', \'\" & gnews & \"\', \'\" & request.form(\"urls\") & \"\', \'\" & Time & \"\', \'\" & day(Date) & \" \" & monthname(month(date)) & \" \" & year(date) & \"\')\"
Set rsnews = news.Execute(sqlstr)

Jeg har skriverettigheder til databasen!
Avatar billede zeth Nybegynder
31. marts 2001 - 03:09 #1
Det ser altså ikke ud til at du har skriverettigheder! Sikker på at du ligger den i et bibliotek med rettighederne??
Avatar billede styrbaek Nybegynder
31. marts 2001 - 10:26 #2
yes der er skriverettigheder. Jeg har andre scripts der både læser og skriver til en database i samme bibliotek.
-------------
Dette script virker f.eks. perfekt:

<%
Response.Buffer = True

Response.Expires = 0

\' Funktion der fikser quotes...
FUNCTION fixQuotes( theString )
    fixQuotes = Replace( theString, \"\'\", \"\'\'\" )
END FUNCTION

\' Hent data fra formular   
    Nyhed = Request( \"Nyhed\" )
    Forfatter = Request( \"Forfatter\" )

\'Åbn databasen
  Dim Con
  Set Con = Server.CreateObject(\"ADODB.Connection\")

Con.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.Mappath(\"../../db/nyheder.mdb\")

\' ... Ogsaa saetter vi vores data fra formularen ind i databasen
IF Request.Servervariables(\"Content_Length\") > 0 THEN
    Sql = \"INSERT INTO nyheder (Dato, Nyhed, Forfatter) VALUES(\'\" & Date() & \"\',\'\" & fixQuotes( Nyhed ) & \"\',\'\" & fixQuotes( Forfatter ) & \"\')\"
    Con.Execute Sql

\' Og her skriver vi lige en lille besked om at nu er nyheden tilfoejet   
    Response.Write \"<strong>Tak for din nyhed. Den er blevet tilf&oslash;jet til databasen. </strong>\"
   
END IF

con.Close
Set con = Nothing

%>



<html>
<head>
    <title>Nyhedsting</title>

    <link rel=stylesheet type=\"text/css\" href=\"../style/stylenormal.css\">
</head>

<body>

<h1>Skriv NYHED</h1>
<br>


<br><br>

<form action=\"nyhed.asp\" method=\"POST\" target=\"_self\">
<table border=\"0\" width=\"600\">
    <tr>
        <td valign=\"top\" width=\"150\">Nyhed</td>
        <td><textarea cols=\"30\" rows=\"8\" name=\"Nyhed\"></textarea></td>
    </tr>
    <tr>
        <td>Forfatter</td>
        <td><input type=\"text\" name=\"Forfatter\"></td>
    </tr>
    <tr>
        <td colspan=\"2\" align=\"center\"><input type=\"submit\" value=\" - SKRIV - \"></td>
    </tr>
</table>
</form>

</body>
</html>

------------------------

Mine scripts virker i øvrigt findt i PWS, det er først når de kommer ud på mit webhotel hos Azero.dk det går galt.
Avatar billede skovtrold Nybegynder
31. marts 2001 - 18:07 #3
Bare for at være nysgerrig - hvorfor har du indsat dine felter sådan her:
([name],[title] osv. og ikke bare:
(name, title )?
Avatar billede nute Nybegynder
31. marts 2001 - 18:09 #4
du skal gi alle brukere skriverettigheter til din database...

høyreklikk på db\'en, velg properties, velg fanebladet security og gi \'everybody\' \'write\' aksess til din db

/nute
Avatar billede styrbaek Nybegynder
31. marts 2001 - 18:17 #5
Ang. \"mine\" felter ([name],[title] osv. så har jeg ingen anelse da jeg er nybegynder og bare låner scripts til mine hjemmesider.

Avatar billede styrbaek Nybegynder
31. marts 2001 - 18:41 #6
Nu har jeg prøvet at slette [ og ] i mit script men det ændre ikke noget. :-(
Avatar billede skovtrold Nybegynder
01. april 2001 - 18:02 #7
Bare for at tjekke - du er sikker på at alle navnene i din database svarer til de navne der står i din kode?
Avatar billede styrbaek Nybegynder
01. april 2001 - 19:52 #8
Når mit script virker i PWS går jeg da stærkt ud fra at navnene i databasen svarer til de navner der er i koden.
Jeg har også fundet ud af at det er rettighederne i selve databasefilen det er galt med, men jeg kan ikke ændre dem????
Avatar billede nute Nybegynder
02. april 2001 - 09:17 #9
du kan endre rettighetene i datbasen ved å høyreklikke på databasen, velge properties, fanebladet security og gi \'everybody\' \'write\' access til databasen....det skal nok hjelpe...det at du i ditt FTP prog til å forandre skriverettigheter, er jeg ikke sikker på om er nok...du kan jo prøve...
Avatar billede soerens Nybegynder
02. april 2001 - 10:58 #10
Det er 99.9% sikkert fordi Azero har \"glemt\" at lave skriverettigheder til IUSR_xxx accounten i DB kataloget.

For de interesserede er der en god beskrivelse af fejlen på nedenstående URL:
http://support.microsoft.com/support/kb/articles/Q175/1/68.ASP

/SørenS.
Avatar billede styrbaek Nybegynder
02. april 2001 - 11:04 #11
Jamen der er altså nogle af mine databaser jeg godt kan skrive til..???
Avatar billede skovtrold Nybegynder
02. april 2001 - 11:09 #12
For at bruge udelukkelsesmetoden - kan du hente data fra den database, hvor du har problemer?
Avatar billede soerens Nybegynder
02. april 2001 - 11:15 #13
Ligger alle dine databaser i DB kataloget ?

Bare lige for at fjerne al tvivl, når du FTP\'er til din site bliver du mødt af to kataloger: WWW og DB, det er det sidstnævnte jeg snakker om ;-)

Har du en af dine databaser til at ligge oppe på selve webbet, altså et eller andet sted inde under www-kataloget, vil du helt sikkert få den fejlmeddelelse når du forsøger at lave ændringer i databasen.

/SørenS.
Avatar billede styrbaek Nybegynder
02. april 2001 - 12:03 #14
OK, vi tar den lige et gang til ;-)
- I PWS kan jeg læse og skrive til ALLE mine databaser.
- På mit webhototel hos Azero ligger ALLE mine databaser i db-mappen og jeg kan hente data fra ALLE databaserne.
- Jeg har et nogle databaser liggende i db-mappen som jeg både kan læse og skrive til.
- ALLE databasefiler har læse/skrive rettigheder når jeg uploader dem.

Jeg har uploadet et script der tester min databaser, og viser en masse ting som jeg ikke kan få ret meget ud af, men det kan I måske.
http://www.nr-snede.dk/dbtest-guestbook.asp(denne db kan jeg godt skrive til)
http://www.nr-snede.dk/dbtest-kalender.asp (denne db kan jeg ikke skrive til)
Avatar billede skovtrold Nybegynder
02. april 2001 - 12:07 #15
Een forskel er ihvertfald, at der for den database du ikke kan skrive til, står:
Read-Only Data Source = True
- hvor der for den anden står = False
Avatar billede soerens Nybegynder
02. april 2001 - 12:22 #16
Jeg starter lige med en forklaring på hvorfor det fungerer på en PWS:

Din maskine med PWS kører højst sandsynligt FAT som filsystem, og dette er der INGEN sikkerhed i. Lavede du en website og hostede den på Indernettet på en Win9x maskine der kører PWS vil du blive hacket / defacet i løbet af 5 minutter ;-)

Azero (...og alle andre hosting firmaer) kører deres løsninger på RIGTIGE servere, hvor sikkerheden er i top. Her benyttes det såkaldte NTFS filsystem, hvor det er nødvendigt at specificere hvem der har lov til hvad.

Til at hive fat i filer med benytter IIS\'en sig af en user acount ved navn IUSR_xxx, hvor xxx = serverens navn.

Som standard har IUSR_xxxx så få rettigheder som overhovedet muligt, for ellers ville alle web-brugere have fri adgang til hele din server ;-)

Det er så klart at når man så ønsker at web-brugere skal kunne skrive ned i en DB, så skal der pilles lidt i rettighederne.

Håber du kan bruge forklaringen ;-)

Anyway, det er lidt ringe af Azero at de ikke har ordnet dette, de plejer ikke at glemme det. Jeg har dog selv været ude for at det er svipset for dem en enkelt gang (vi har 7-8 Ironsite Exec + 1 dedikeret server hos dem).

Det var lidt omkring PWS, kigger måske på det andet senere ;-)

/SørenS
Avatar billede soerens Nybegynder
02. april 2001 - 12:27 #17
....hov, så lige den her:

  \"ALLE databasefiler har læse/skrive rettigheder når jeg uploader dem.\"

Det er sådan set ligemeget, det kan du ikke styre selv. Serveren / Azero styrer 100% hvad der skal være af rettigheder.

Én ting du nok lige bør tjekke er at der ikke ved et uheld er strøget et ReadOnly flag på nogen af dine .MDB-filer.

Jeg har selv før brugt TIMER på fejlfinding hvor ovennævnte har været problemet ;-)

/SørenS.
Avatar billede styrbaek Nybegynder
02. april 2001 - 12:35 #18
Jeg stiller lige et dumt spørgsmål...
Hvad er et ReadOnly flag???
Avatar billede skovtrold Nybegynder
02. april 2001 - 12:37 #19
Der står jo også i de links du sendte sidst, at der for databasen med problemer kun er readonly rettigheder.
\"Read-Only Data Source = True\"
Det er properties for db\'en
Avatar billede soerens Nybegynder
02. april 2001 - 13:03 #20
Højre-klik på en tilfældig fil og vælg Egenskaber/Properties, der er der et felt / flag /whatever der hedder Read only / Skrivebeskyttet ;-)

Dette er den ENESTE form for \"rettighed\" der kommer med, når du lægger noget op via FTP (kan dog godt variere lidt fra det ene stykke FTP-software til det andet).

/SørenS
Avatar billede styrbaek Nybegynder
02. april 2001 - 13:35 #21
Jeg har prøvet om jeg kunne ændre i properties fra mit ftp-program, men som jeg skrev i min mail til Søren S. så får jeg en fejl 501.
Avatar billede styrbaek Nybegynder
02. april 2001 - 14:21 #22
Jeg må indrømme at jeg er ved at miste overblikket her. Er der nogen der kan fortælle mig om det er mine databaser det er galt med, eller om det er indstillingerne hos mit udbyder, der ikke er rigtige???
Avatar billede styrbaek Nybegynder
03. april 2001 - 09:36 #23
Hallo, har i glemt mig ;-)
Jeg har ikke fået mysteriet løst endnu, og jeg vil helst ikke blande min webhost ind i sagen hvis det er mine databaser det er galt med.
Søren, er det rigtig nok at man ikke kan få lov at ændre rettighederne for en fil, via ftp-program, hos Azero ???
Avatar billede nute Nybegynder
03. april 2001 - 10:01 #24
melder meg herved ut...jeg mener det er skriverettighetene du mangler, men jeg kjenner ikke til Azero og deres servere....

/nute
Avatar billede soerens Nybegynder
03. april 2001 - 10:31 #25
Sorry, har travlt med at arbejde (yeah, right ;-)

Man kan ikke ændre rettigheder for en fil via ftp PUNKTUM!

Det har ikke noget med Azero at gøre. For at få lov til at ændre rettigheder for en fil skal man have Administrator-privilegier på serveren, og DET tror jeg næppe nogen udbyder vil gi\' deres kunder ;-)

Jeg kan ikke umiddelbart hjælpe dig mere herfra. Hvis jeg skal kigge på det yderligere bliver jeg nok nød til at bede dig om at maile mig brugernavn og password til din FTP. Men så er jeg også 99.9% sikekr på at jeg kan løse det i løbet af 10 minutter!

Problemet med det er så bare at du skal stole på mig 100%! Du kan nemlig ikke selv ændre dit password bagefter, det skal du ha\' Azero til og det koster vistnok 99,-

Fuldt forståeligt hvis du ikke vil være med til det, jeg skulle selv være DESPERAT før jeg sendte sådanne oplysninger til en fremmed ;-)

Jeg er SIKKER på at dit problem er rettighedsbaseret! Om det er Azero der har klokket i det, eller om du har lavet en lille fejl et sted ved jeg så ikke...

/SørenS.
Avatar billede styrbaek Nybegynder
03. april 2001 - 11:08 #26
Jamen vi kender jo efterhånden hinande helt godt ;-) så koderne er på vej.
Du må dele de 30 point med nute, i hvert fald i første omgang :-)
Avatar billede nute Nybegynder
03. april 2001 - 11:11 #27
takker....:)
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