Avatar billede janette Nybegynder
08. juli 2002 - 01:13 Der er 8 kommentarer og
1 løsning

Hvordan sletter man en post i en 1 til M relation?

Jeg har blandt mange ting prøvet med følgende:

<% 
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("Emnekasser3.mdb")

SQL = "SELECT Indhold.IndholdID, Indhold.KalalogRef, Indhold.Antal, Indhold.Materiale, Indhold.MaterialeType, Indhold.Pris FROM Indhold UNION SELECT Kassen.KatalognrID, Kassen.Emnenavn, Kassen.EmneDC, Kassen.Undertitel, Kassen.KlassetrinRef, Kassen.AfdRef, Afdeling.Afd_ID, Afdeling.Afdeling, Klassetrin.Klassetrin_ID, Klassetrin.Klassetrin FROM Kassen, Afdeling, Klassetrin WHERE Indhold.IndholdID=KatalognrID AND Klassetrin.Klassetrin_ID=Kassen.KlassetrinRef AND Afdeling.Afd_ID=Kassen.AfdRef AND Kassen.KatalognrID = '" & Request("liste") & "'"

Set Resultat = Server.CreateObject("ADODB.Recordset")
Resultat.Open SQL, Connect, adOpenStatic, adLockPessimistic

Resultat.delete
%>

Det giver følgende fejlmeddelelse:
Antallet af kolonner i de to markerede tabeller eller forespørgsler i en foreningsforespørgsel stemmer ikke overens.

Jeg er nu nået dertil, at jeg så først skal slette poster i den svage tabel(= Indhold) og dernæst den stærke tabel(= Kassen)
Mine forsøg på at gøre ender ved første - Resultat.Open...


<% 
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("Emne3.mdb")

Set Resultat = Server.CreateObject("ADODB.Recordset")

SQL = " DELETE * FROM  Indhold WHERE Indhold.KatalognrRef  = '" & Request("liste") & "'"
Resultat.Open SQL, Connect, adOpenStatic, adLockPessimistic

SQL = " DELETE * FROM  Kassen WHERE Kassen.KatalognrID = " '& Request("liste") & "'"
Resultat.Open SQL, Connect, adOpenStatic, adLockPessimistic
%>

Giver denne fejlmeddelelse: Der er for få parametre. Der var ventet 1.

Håber I kan hjælpe.

Avatar billede eagleeye Praktikant
08. juli 2002 - 08:46 #1
Hvis dine ID er defineret som tal skal du ikke havde ' omkinrg, det er kun hvis kolonnen er defineret som tekst.


SQL = " DELETE * FROM  Indhold WHERE Indhold.KatalognrRef  = " & Request("liste") & ""
Resultat.Open SQL, Connect, adOpenStatic, adLockPessimistic

SQL = " DELETE * FROM  Kassen WHERE Kassen.KatalognrID = " & Request("liste") & ""
Resultat.Open SQL, Connect, adOpenStatic, adLockPessimistic
Avatar billede eagleeye Praktikant
08. juli 2002 - 08:48 #2
Hvis kolonnerne er defineret som tekst i databsen er der en fejl i linien DELETE * FROM Kassen ... hvor ' står på den forkerte side af ", det skal være sådan her:

SQL = " DELETE * FROM  Kassen WHERE Kassen.KatalognrID = '" & Request("liste") & "'"
Resultat.Open SQL, Connect, adOpenStatic, adLockPessimistic
Avatar billede janette Nybegynder
08. juli 2002 - 09:31 #3
Kolonnen er defineret som tal men sætningen her hjælper ikke:

SQL = " DELETE * FROM  Indhold WHERE Indhold.KatalognrRef  = " & Request("liste")
Avatar billede eagleeye Praktikant
08. juli 2002 - 09:33 #4
Jow den gør for man skal som jeg skriver ikke havde ' omkring tal overført via SQL... Du har så bare mere end en fejl :)
Avatar billede eagleeye Praktikant
08. juli 2002 - 09:34 #5
Så er Request("liste") tom !!
Avatar billede janette Nybegynder
08. juli 2002 - 09:37 #6
Request("liste") er ikke tom - jeg modtager liste=6800005
Avatar billede eagleeye Praktikant
08. juli 2002 - 09:40 #7
Så prøv at udskrive din SQL sætning og se om den er rigtig.
Avatar billede eagleeye Praktikant
08. juli 2002 - 09:45 #8
Det kan også skyldes forkert kolonne navn i WHERE delen:
Hedder kolonnen KatalognrRef eller KatalogRef  i tabellen indhold??
Avatar billede janette Nybegynder
11. juli 2002 - 19:00 #9
Undskyld for mine sidste dages fravær og tusind tak til eagleeye - nu virker det.
Kolonnenavnet i tabellen indhold hed kun KatalogRef
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