PDA

Bekijk Volledige Versie : ASP Delete rec probleem



Basr
01/03/06, 03:00
Ik heb een Acces database die ik met ASP (klassiek) gebruik. Deze database
had 2 tabellen . Ik ben niet echt een ASP programmeur maar met behulp van
voorbeeldscripts was het me toch gelukt om het te laten functioneren. Nu heb
ik onlangs een derde tabel bijgevoegd en het probleem wat ik nu heb is dat
het mij niet lukt om hieruit records te wissen. Het lukt me wel om records
te wissen uit de twee andere tabellen. Voor het verwijderen van de records
uit de nieuwe tabel heb ik een aangepast script gebruikt dat ook gebruikt
werd voor het verwijderen van records uit tabel 1 en 2. Het lukt me niet het
voor elkaar te krijgen.



Situatie:

Tabel 1 "Products" met veel velden, Veld Pnr=prim sleutel (autonummer)

Tabel 2 "Keyws" met 2 velden, Pnr = prim sleutel (nummer)

Er is een relatie tussen deze 2 tabellen (ref integriteit)



De nieuwe tabel "Members" staat helemaal los van de twee andere tabellen.
Het eerste veld Member = prim sleutel. Alle velden zijn van het Text-type





DE "VERWERKINGSPAGINA" (voor verwijderen van records tabellen 1 en 2)



<BODY>

<%

Dim strID

strID=Request.Form("Pnr")



DIM Conn

Set Conn=Server.CreateObject("ADODB.connection")

Conn.Open "DSN=x"



strSQL = "DELETE FROM Keyws WHERE Pnr=" & CLng(strID)

Conn.Execute(strSQL)

strSQL = "DELETE FROM Products WHERE Pnr=" & CLng(strID)

Conn.Execute(strSQL)



Conn.Close

Set Conn = Nothing

%>

<H2>Het record is verwijderd (hoop ik)</H2>

</BODY>





DE "AANGEPASTE VERWERKINGSPAGINA" (voor verwijderen van records tabel 3)

<BODY>

<%

Dim strID

strID=Request.Form("Member")



DIM Conn

Set Conn=Server.CreateObject("ADODB.connection")

Conn.Open "DSN=x"



strSQL = "DELETE FROM Members WHERE Member=" & CLng(strID)

Conn.Execute(strSQL)



Conn.Close

Set Conn = Nothing

%>

<H2>Het record is verwijderd (hoop ik)</H2>

</BODY>



Wanneer ik deze pagina gebruik krijg ik de melding:" Gegevenstypen komen
niet overeen in criteriumexpressie. (met een verwijzing naar de regel met de
strSQL = ..)



Ik heb nog andere scripts gebruikt maar het lukt me niet. Heeft iemand een
idee wat verkeerd is aan het script dat ik heb gebruikt.

Vast bedankt

Marcel

Erik Baas
01/03/06, 03:00
Basr wrote:

> strSQL = "DELETE FROM Members WHERE Member=" & CLng(strID)

> Wanneer ik deze pagina gebruik krijg ik de melding:" Gegevenstypen komen
> niet overeen in criteriumexpressie. (met een verwijzing naar de regel met de
> strSQL = ..)

Het lijkt me niet nodig om CLng() te gebruiken. Verder moet de waarde
van strID in de query tussen enkele aanhalingstekens komen te staan, dus
zo:

strSQL = "DELETE FROM Members WHERE Member='" & CLng(strID) & "'"

--
Erik.

Basr
01/03/06, 03:00
Bedankt Erik
Ik heb de correctie aangebracht en ik krijg nu geen foutmeldingen meer.
Helaas wordt de record niet gewist. Enig idee wat ik nog meer fout gedaan
kan hebben?
Marcel



"Erik Baas" <ejbaas@gmail.com.invalid> schreef in bericht
news:44043812.5882DB27@gmail.com.invalid...
> Basr wrote:
>
> > strSQL = "DELETE FROM Members WHERE Member=" & CLng(strID)
>
> > Wanneer ik deze pagina gebruik krijg ik de melding:" Gegevenstypen komen
> > niet overeen in criteriumexpressie. (met een verwijzing naar de regel
met de
> > strSQL = ..)
>
> Het lijkt me niet nodig om CLng() te gebruiken. Verder moet de waarde
> van strID in de query tussen enkele aanhalingstekens komen te staan, dus
> zo:
>
> strSQL = "DELETE FROM Members WHERE Member='" & CLng(strID) & "'"
>
> --
> Erik.

Erik Baas
02/03/06, 02:00
Basr wrote:


> > > strSQL = "DELETE FROM Members WHERE Member=" & CLng(strID)

> > strSQL = "DELETE FROM Members WHERE Member='" & CLng(strID) & "'"

> Ik heb de correctie aangebracht en ik krijg nu geen foutmeldingen meer.
> Helaas wordt de record niet gewist. Enig idee wat ik nog meer fout gedaan
> kan hebben?

Het enige wat ik kan bedenken is dat de inhoud van het veld "Member"
spaties bevat. Ik begrijp ook niet waarom het een text-veld is, maak er
maar beter een numeriek veld (long) van. Dat geldt trouwens ook voor je
andere tabellen, zeker voor de primary keys en autonumber-velden...

--
Erik.