Avatar billede eksperten1 Nybegynder
26. februar 2001 - 12:17 Der er 12 kommentarer og
1 løsning

DELETE SQL fejler

I en side vil jeg sltte noget i en Access2000 DB, men den fejler :

Microsoft JET Database Engine error \'80004005\'

Der kan ikke slettes fra de angivne tabeller.

/campaign_list.asp, line 12


ASP kode:
If campID <> \"\" Then
                    Set RS = Server.CreateObject(\"ADODB.Recordset\")
                    SQL = \"DELETE FROM kampagne WHERE id = \" & campID & \";\"
                    RS.Open sql, strConnect, 1
                    RS.Close

Jeg kan sagtens oprette i tabellen, men ikke slette ??

Dertil kommer det, at jeg gerne vil slette i endre tabeller ud fra samme campID, kan jeg gøre det i samme SQL sætning.

Noget alá
\"DELETE FROM kampagne, sider, linjer WHERE ID, campaignID, campaignID = \" & request(\"ID\") & \";\"

Jeg har ikke forsøgt mig, men ville det mon virke eller skal jeg (på grund af dårligt db design) igang med at slette af 3 omgange ??

Mark
Avatar billede jimmidreng Nybegynder
26. februar 2001 - 12:19 #1
Delete * From kampagne where id = osv.....
Det er jo Access, ikke SQL!
Avatar billede eksperten1 Nybegynder
26. februar 2001 - 12:22 #2
jimmidreng> Det virker heller ikke ?
Avatar billede -mundi- Nybegynder
26. februar 2001 - 12:25 #3
hvilken fejl får du ?
Avatar billede jimmidreng Nybegynder
26. februar 2001 - 12:29 #4
Brug:
strConnect.Execute(\"Delete * From kampagne where id = \" & campID)

Den virker 100%
Avatar billede eksperten1 Nybegynder
26. februar 2001 - 12:33 #5
Nu får jeg en ny fejl:
Microsoft VBScript runtime error \'800a01a8\'

Object required: \'Provider=Microsoft.J\'

/campaign_list.asp, line 13

Og her er koden:
strConnect = \"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\datastores\\sp2_pn1.mdb; Persist Security Info=False\"
If campID <> \"\" Then
                    Set RS = Server.CreateObject(\"ADODB.Recordset\")
                    SQL = \"DELETE * FROM kampagne WHERE id = \" & campID & \";\"
                    \'RS.Open sql, strConnect, 3,3,1
                    strConnect.Execute(\"Delete * From kampagne where id = \" & campID)
                    RS.Close
Avatar billede ellebaek Nybegynder
26. februar 2001 - 12:39 #6
prøv ....


Set RS = Server.CreateObject(\"ADODB.Recordset\")
RS.Open strConnect                   
SQL = \"DELETE FROM kampagne WHERE id = \" & campID & \"\"


set record = RS.execute(SQL)
                   
Avatar billede jimmidreng Nybegynder
26. februar 2001 - 12:40 #7
Set strConnect = Server.CreateObject(\"ADODB.Connection\")
Path = \"DBQ=C:\\datastores\\sp2_pn1.mdb\"
Connect.Open \"DRIVER={Microsoft Access Driver (*.mdb)};\" & Path

Avatar billede jimmidreng Nybegynder
26. februar 2001 - 12:41 #8
Og herunder:
strConnect.Execute(\"Delete * From kampagne where id = \" & campID)
Avatar billede eksperten1 Nybegynder
26. februar 2001 - 12:42 #9
ellebaek> Den returnerede
ADODB.Recordset error \'800a0e7d\'

The connection cannot be used to perform this operation. It is either closed or invalid in this context.

/campaign_list.asp, line 13
Avatar billede eksperten1 Nybegynder
26. februar 2001 - 12:46 #10
jimmidreng> Den fungerede sgu\', har du så set mit fortsatte spørgsmål ? Kan jeg slette fra 3 tabeller samtidig ?? Eller skal jeg bare gøre dette 3 gange ?

Hvordan skal jeg \"rydde\" op efter sætningen

Set strConnect = Nothing ??
Avatar billede jimmidreng Nybegynder
26. februar 2001 - 12:52 #11
Selvfølgelig gjorde den det :-)
Mht. det andet spørgsmål, så er du nok nødt til at lave tre kald.
\"From\" selecter kun en tabel ad gangen og understøtter desværre ikke din komma teori, sorry!

strConnect.Close
set strConnect = Nothing

Så funker det!

Avatar billede ellebaek Nybegynder
26. februar 2001 - 14:28 #12
æhmm ...
der er ingen grund til at lukke strConnect hver gang det er dit databasekald er det ikke ?
Avatar billede ellebaek Nybegynder
26. februar 2001 - 14:30 #13
og så kan du sagtens benytte denne ... jeg manglede bare lige nogle \'\'

SQL = \"DELETE FROM kampagne WHERE id = \" & campID & \"\"

den skulle se ud som her ...

SQL = \"DELETE FROM kampagne WHERE id = \' \" & campID & \" \' \"
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