Avatar billede ferstin Nybegynder
12. februar 2003 - 11:31 Der er 23 kommentarer og
1 løsning

Slet data i felt

Jeg anvender dette her script til at slette data i et bestemt felt (efter jeg HAR åbnet databasen):

linje 89 og 90:
rsprod("image") = Null
rsprod.Update

Men jeg får konstant denne fejlbesked:

ADODB.Recordset error '800a0cb3'
Object or provider is not capable of performing requested operation.
/admin/product.asp, line 89

Hvad kan være galt?
Avatar billede somaliomar Praktikant
12. februar 2003 - 11:38 #1
Tjek om feltet er obligatorisk. Hvis feltet er obligatorisk kan du naturligvis ikke give feltet en Null-værdi. Eller prøv med ""/0 i stedet for Null:

rsprod("image") = "" '/rsprod("image") = 0
rsprod.Update
Avatar billede ferstin Nybegynder
12. februar 2003 - 11:39 #2
bruger jeg denne istedet:
db.execute("delete [image] from products where productid=" & productid)
- så slettes hele rækken...
Avatar billede ferstin Nybegynder
12. februar 2003 - 11:39 #3
feltet er ikke obligatorisk, - jeg prøver lige med rsprod("image") = "" '/rsprod("image") = 0
Avatar billede ferstin Nybegynder
12. februar 2003 - 11:41 #4
hmm... nej, jeg får samme fejl på denne:
rsprod("image") = "" '/rsprod("image") = 0
Avatar billede ferstin Nybegynder
12. februar 2003 - 11:45 #5
Her er lidt mere af mit script, som først sletter et billede på serveren (virker fint) og efterfølgende skal slette feltet med navnet på filen (f.eks. billede.gif):

if stage="delete_image" and productid<>"" then
db.execute("select * from products where productid=" & productid)


Dim billednavn2, image2
billednavn2 = Request.QueryString("navn")
image2=rsprod("image")

Dim fso2
Set fso2 = Server.CreateObject("Scripting.FileSystemObject")
If fso2.FileExists(Server.Mappath("./upload/"& billednavn2)) Then
fso2.DeleteFile (Server.Mappath("./upload/"& billednavn2))
End If


rsprod("image") = "" (fejl på denne linje)
rsprod.Update
Avatar billede ferstin Nybegynder
12. februar 2003 - 11:50 #6
Jeg har ændret lidt i mit script, og nu er det en anden linje jeg får fejl på:

db.execute("select * from products where productid=" & productid)
image2 = rsprod("image")
image2 = ""
rsprod.Update (fejl på denne linje)
Avatar billede somaliomar Praktikant
12. februar 2003 - 12:31 #7
Prøv med:

rsprod.AddNew
rsprod("image") = ""
rsprod.Update
Avatar billede eagleeye Praktikant
12. februar 2003 - 12:47 #8
Husk at feltet image i daatbasen skal sætte til at kunne acceptere Null som længde/værdi, for Access skal TilladNullængde sættet til Ja for kolonnen.
Avatar billede ferstin Nybegynder
12. februar 2003 - 13:01 #9
Der er tilladt nul-længde i databasen under image feltet...
Avatar billede somaliomar Praktikant
12. februar 2003 - 13:02 #10
Hvordan ser hele dit script ud?
Avatar billede ferstin Nybegynder
12. februar 2003 - 13:03 #11
Jeg anvender nu dette script:

dim db2
dim strConn2

strConn2 = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../produkter.mdb")
Set db2 = Server.CreateObject("ADODB.Connection")
Query = "SELECT * FROM products WHERE productid=" & Request.QueryString("productid")
db2.open strConn2

db2("image") = Null (fejl på denne linje)
db2.Update

Men får denne besked:
Microsoft VBScript runtime error '800a01c2'
Wrong number of arguments or invalid property assignment
/admin/product.asp, line 103
Avatar billede somaliomar Praktikant
12. februar 2003 - 13:05 #12
Prøv med

dim db2
dim strConn2

strConn2 = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../produkter.mdb")
Set db2 = Server.CreateObject("ADODB.Connection")
Query = "SELECT * FROM products WHERE productid=" & Request.QueryString("productid")
db2.open strConn2

db2.AddNew
db2("image") = Null
db2.Update
Avatar billede ferstin Nybegynder
12. februar 2003 - 13:08 #13
somaliomar >
Så får jeg denne besked:

Microsoft OLE DB Provider for ODBC Drivers error '80040e37'

[Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot find the input table or query 'AddNew'. Make sure it exists and that its name is spelled correctly.

/admin/product.asp, line 102
Avatar billede ferstin Nybegynder
12. februar 2003 - 13:22 #14
Nu får jeg denne fejl:

Microsoft VBScript runtime error '800a01c2'
Wrong number of arguments or invalid property assignment
/admin/product.asp, line 101

ved brug af dette script:

strConn2 = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../produkter.mdb")
Set db2 = Server.CreateObject("ADODB.Connection")
Query = "SELECT * FROM products WHERE productid=" & Request.QueryString("productid")
db2.open strConn2, Query, 1, 2

db2("image") = Null
db2.Update
Avatar billede somaliomar Praktikant
12. februar 2003 - 13:24 #15
Kan du ikke bruge UPDATE:

dim strConn2

strConn2 = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../produkter.mdb")
Set db2 = Server.CreateObject("ADODB.Connection")
Query = "UPDATE products SET image = '' WHERE productid=" & Request.QueryString
("productid")
db2.open strConn2
strConn2.Execute(Query)
Avatar billede ferstin Nybegynder
12. februar 2003 - 14:15 #16
Dette script:

strConn2 = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../produkter.mdb")
Set db2 = Server.CreateObject("ADODB.Recordset")
Query = "UPDATE products SET image = '' WHERE productid=" & Request.QueryString("productid")

db2.open strConn2 (fejl i denne linje)
strConn2.Execute(Query)

laver denne fejl:
ADODB.Recordset error '800a0e7d'

Operation is not allowed on an object referencing a closed or invalid connection.

/admin/product.asp, line 92
Avatar billede somaliomar Praktikant
12. februar 2003 - 14:23 #17
strConn2 = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../produkter.mdb")
Set db2 = Server.CreateObject("ADODB.Recordset")
Query = "UPDATE products SET image = '' WHERE productid=" & Request.QueryString("productid")

strConn2.Execute(Query)
Avatar billede ferstin Nybegynder
12. februar 2003 - 14:33 #18
Så får jeg fejlen:

Microsoft VBScript runtime error '800a01a8'

Object required: 'Driver={Microsoft Ac'

/admin/product.asp, line 93
Avatar billede somaliomar Praktikant
12. februar 2003 - 15:20 #19
Hvad så med det her

Set Conn = Server.CreateObject("ADODB.Connection")
strConn2 = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../produkter.mdb")
Conn.Open strConn2

Query = "UPDATE products SET image = '' WHERE productid=" & Request.QueryString("productid")
Conn.Execute(Query)
Avatar billede ferstin Nybegynder
13. februar 2003 - 10:57 #20
somaliomar > så får jeg denne fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x588 Thread 0x4c8 DBC 0xadc0014 Jet'.

admin/product.asp, line 88
Avatar billede somaliomar Praktikant
13. februar 2003 - 11:01 #21
Har du skrive-rettigheder på den mappe som databasen ligger på? Det tror jeg nemlig ikke at du har. Fejlkoden '80004005' betyder, at du ikke har skrive-rettigheder på databasen.
Avatar billede somaliomar Praktikant
13. februar 2003 - 11:02 #22
Tjek siden http://www.webwizguide.info/asp/faq/access_database_faq.asp og søg efter "80004005" uden gåseøjne.
Avatar billede ferstin Nybegynder
13. februar 2003 - 11:28 #23
somaliomar > jo, jeg er helt sikker på, at jeg har skriverettigheder på databasen, jeg kan nemlig både få lov at oprette billeder, ændre billeder og oprette/slette produkter i systemet.

Det er udelukkende sletningen af indholdet i feltet Image i tabellen Products der giver mig problemer. Jeg har ikke problemer med at slette en hel række (et helt produkt) men når jeg kun skal slette billedet på serveren, og indholdet af feltet Image, så gider den ingenting. Jeg forstår det simpelthen ikke.

Her er hele min kode på siden, som det ser ud nu:

<!-- #include file="db.asp" ----->
<%
produktnavn = Request.QueryString("productid")
billednavn = Request.QueryString("navn")

    rsprod=db.execute("select * from products where productid=" & produktnavn)

Dim fso
Set fso = Server.CreateObject("Scripting.FileSystemObject")
If fso.FileExists(Server.Mappath("./upload/"& billednavn)) Then
fso.DeleteFile (Server.Mappath("./upload/"& billednavn))
End If

    editMSG="billedet blev slettet."
    editcomplete=true



rsprod("image") = Null
rsprod.Update
Response.Redirect "product.asp?productid=" & produktnavn

%>

Det giver fejlbeskeden:

ADODB.Fields error '800a0cb3'

Object or provider is not capable of performing requested operation.

/admin/slet_bil.asp, line 23
Avatar billede ferstin Nybegynder
13. februar 2003 - 13:07 #24
Jeg opgiver. Tager nok problemet op igen en anden gang.
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