ASP - Lägga till data i Databas

Permalänk
Medlem

ASP - Lägga till data i Databas

Hej!
Jag använder följande kod för att lägga till en post i en microsoft acess databas med hjälp av asp kod, jag har tidigare använt mig av samma kod, vilket har fungerat bra. Jag använder Windows XP proffesional och IIS.

Jag får jag följande felmeddelande:

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query.

den kod jag använder är följande:

<%
Dim con, sql_insert, data_source

data_source = "driver={Microsoft Access Driver (*.mdb)};dbq=" & "d:/min_databas.mdb"

sql_insert = "insert into Tabell1 (namn) values ('Jonas)"

' skapa Connection Objekt och öppna databasen
Set con = Server.CreateObject("ADODB.Connection")
con.Open data_source

' kör sgl insert kommando
con.Execute sql_insert

'stäng databasen
con.Close
Set con = Nothing
%>

Är det någon som vet var problemet kan ligga?
Operation must use an updateable query?
vad betyder det?

Permalänk
Medlem

Har inte du postat samma inlägg förut?? Börja med att byta ut

sql_insert = "insert into Tabell1 (namn) values ('Jonas)" till

sql_insert = "insert into Tabell1 (namn) values ('Jonas')"

Visa signatur
Permalänk
Hedersmedlem

Glöm inte att kolla att IUSR_datornamn har rätt att skriva till d:\min_databas.mdb

Visa signatur

Nämen hej!

Permalänk
Medlem

Ok! Det står ('Jonas') i min asp fil, vet inte varför det försvann när jag skrev inlägget, alltså inte det som är haken...

Jag har inte postat det här inlägget förut, vad jag kan minnas.

Det konstiga är att jag har använt exakt samma kod innan, utan det här problemet, den enda skillnad är att jag då använde windows 98 och personal webserver och nu XP med IIS, är det där haken ligger på något sätt??

Permalänk
Medlem

Ok det där med att IUSR_datornamn ej har rätt att skriva till D: kanske är haken, hur fixar jag det?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av freeztee
Ok! Det står ('Jonas') i min asp fil, vet inte varför det försvann när jag skrev inlägget, alltså inte det som är haken...

Jag har inte postat det här inlägget förut, vad jag kan minnas.

Det konstiga är att jag har använt exakt samma kod innan, utan det här problemet, den enda skillnad är att jag då använde windows 98 och personal webserver och nu XP med IIS, är det där haken ligger på något sätt??

Tyckte bara att jag kände igen koden men iofs kan man inte skriva en databaskoppling på så många olika sätt så jag kanske misstog mig

Visa signatur
Permalänk
Medlem

Har du kört guiden behörighet så att användarna kan skriva databas-filer?

Visa signatur

Många bäckar små, blir en stor å.

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av freeztee
Ok det där med att IUSR_datornamn ej har rätt att skriva till D: kanske är haken, hur fixar jag det?

Du kan ta egenskaper för filen, gå in i fliken säkerhet och ändra behörigheterna där. Du vill nog inte ge för mycket till användaren, man vet aldrig.

Visa signatur

The variable 'brain' is declared but never used

Permalänk
Medlem

hmmm.. jag har kollat det där med skrivrättigheter nu, det verkar vara ok.
Jag får dock samma felmeddelande?

vad menas egentligen med: Operation must use an updateable query?
ingen som har haft samma problem?

Permalänk
Medlem

Varför framåtslash?
d:/min_databas.mdb => d:\min_databas.mdb

Kontrollera så att IIS_USER_MACHINE_NAME har rättigheter att skriva skriva till filen OCH skapa filer (skriva till) mappen som filer ligger i, detta för att det måste skapas en s.k lock-fil för access som håller reda på aktuella connections till databasen etc.

I övrigt ser koden helt ok ut!, kontrollera att du stavat rätt på tabell namn etc. Testa gärna genom att skapa en fråga i MS Access där du pastar in SQL-koden nedan och kontrollerar att du får det önskade resultatet.

Lite modifierad kod nedan som bör funkar om tabellen heter Tabell1 kolumnen heter namn och databaseen ligger i d:\min_databas.mdb och IIS_USER har skrivrättigherer till d:\

<%
Dim con, sql_insert, data_source

data_source = "driver={Microsoft Access Driver (*.mdb)};dbq=" & "d:\min_databas.mdb"

sql_insert = "insert into Tabell1 (namn) values ('Jonas')"

' skapa Connection Objekt och öppna databasen
Set con = Server.CreateObject("ADODB.Connection")
con.Open data_source

' kör sgl insert kommando
con.Execute(sql_insert)

'stäng databasen
con.Close
Set con = Nothing
%>

Visa signatur

Peter Löfås <plo@alternativet.nu>
Linköpings Tekniska Högskola (Y-Linjen)

Permalänk
Medlem

hmmm.. jag får det inte att fungera!
Jag har nu ställt in rättigheter att skriva och köra script på databasen och mappen den ligger i, dock får jag samma felmeddelande!
hur exakt skall jag ställa in rättigheter för mappar och databas??