ASP --> Dubbele records in Access DB

Pagina: 1
Acties:

  • Urk
  • Registratie: Maart 2000
  • Laatst online: 00:24
Ik heb een heel raar probleem.

In mijn ASP applicatie worden er 2 precies dezelfde records in de DB ingevoegd (autonummer klopt wel, dus 21 daarna 22 met dezelfde gegevens)

We kunnen niet vinden waar dat aan ligt, hieronder een deel van de code --> (sorry voor de lange post :D

<%
'open the database connection
Set Conn = Server.CreateObject( "ADODB.Connection" )
Conn.Open "FILEDSN=trialdb.DSN"

'Ophalen van de vragen
vraag1 = Request.Form("vraag1")
vraag2 = Request.Form("vraag2")
vraag3 = Request.Form("vraag3")
vraag4 = Request.Form("vraag4")
vraag5 = Request.Form("vraag5")
vraag6 = Request.Form("vraag6")
vraag7 = Request.Form("vraag7")
vraag8 = Request.Form("vraag8")

prodnr1 = Request.Form("prodnr1")
prodnr2 = Request.Form("prodnr2")
prodnr3 = Request.Form("prodnr3")
prodnr4 = Request.Form("prodnr4")
paperamount1 = Request.Form("paperamount1")
paperamount2 = Request.Form("paperamount2")
paperamount3 = Request.Form("paperamount3")
paperamount4 = Request.Form("paperamount4")
totalamount = Request.Form("totalamount")
budgetleft = Request.Form("budgetleft")
uploadfile = Request.Form("uploadfile")

prodcode1 = Request.Form("prodcode1")
prodcode2 = Request.Form("prodcode2")
prodcode3 = Request.Form("prodcode3")
prodcode4 = Request.Form("prodcode4")
proddesc1 = Request.Form("proddesc1")
proddesc2 = Request.Form("proddesc2")
proddesc3 = Request.Form("proddesc3")
proddesc4 = Request.Form("proddesc4")

deliveryorderbyname = Request.Form("deliveryorderbyname")
deliveryorderbyphone = Request.Form("deliveryorderbyphone")
deliveryorderbyemail = Request.Form("deliveryorderbyemail")
deliverycompany = Request.Form("deliverycompany")
deliveryattn = Request.Form("deliveryattn")
deliveryaddress1 = Request.Form("deliveryaddress1")
deliveryaddress2 = Request.Form("deliveryaddress2")
deliveryzip = Request.Form("deliveryzip")
deliverycity = Request.Form("deliverycity")
deliverycountry = Request.Form("deliverycountry")
deliveryemail = Request.Form("deliveryemail")
deliveryphone = Request.Form("deliveryphone")

Set RS = Server.CreateObject("ADODB.Recordset")
sqlString = "SELECT * FROM Delivery"
RS.open sqlString, Conn, adopenkeyset, adlockoptimistic

RS.AddNew
RS("delivery_userid").value = Session("Identification")
RS("delivery_orderbyname").value = deliveryorderbyname
RS("delivery_orderbyphone").value = deliveryorderbyphone
RS("delivery_orderbyemail").value = deliveryorderbyemail
RS("delivery_company").value = deliverycompany
RS("delivery_attn").value = deliveryattn
RS("delivery_address1").value = deliveryaddress1
RS("delivery_address2").value = deliveryaddress2
RS("delivery_zip").value = deliveryzip
RS("delivery_city").value = deliverycity
RS("delivery_country").value = deliverycountry
RS("delivery_emailcontact").value = deliveryemail
RS("delivery_phonecontact").value = deliveryphone
RS.Update

deliverypid = RS("delivery_id").value

RS.Close
Set RS = nothing

Set RS2 = Server.CreateObject("ADODB.Recordset")
sqlString = "SELECT * FROM Orders"
RS2.open sqlString, Conn, adopenkeyset, adlockoptimistic

RS2.AddNew
RS2("orders_userid").value = Session("Identification")
RS2("orders_entrydate").value = Now()
RS2("orders_shipdate").value = Now()
RS2("orders_status").value = "1"
RS2("orders_delivery").value = deliverypid
RS2("orders_logo").value = uploadfile
RS2.Update

orderid = RS2("orders_id")

RS2.Close
Set RS2 = nothing

Set RS3 = Server.CreateObject("ADODB.Recordset")
sqlString = "SELECT * FROM Question"
RS3.open sqlString, Conn, adopenkeyset, adlockoptimistic

RS3.AddNew
RS3("question_1").value = vraag1
RS3("question_2").value = vraag2
RS3("question_3").value = vraag3
RS3("question_4").value = vraag4
RS3("question_5").value = vraag5
RS3("question_6").value = vraag6
RS3("question_7").value = vraag7
RS3("question_8").value = vraag8
RS3("question_orderid").value = orderid
RS3.Update

RS3.Close
Set RS3 = nothing

Set RS4 = Server.CreateObject("ADODB.Recordset")
sqlString = "SELECT * FROM Orderdetail"
RS4.open sqlString, Conn, adopenkeyset, adlockoptimistic

RS4.AddNew
RS4("orderdetail_orderid").value = orderid
RS4("orderdetail_paperid").value = prodnr1
RS4("orderdetail_quantity").value = paperamount1
RS4.Update

RS4.Close
Set RS4 = nothing

If Not prodnr2 = "b" Then

Set RS5 = Server.CreateObject("ADODB.Recordset")
sqlString = "SELECT * FROM Orderdetail"
RS5.open sqlString, Conn, adopenkeyset, adlockoptimistic

RS5.AddNew
RS5("orderdetail_orderid").value = orderid
RS5("orderdetail_paperid").value = prodnr2
RS5("orderdetail_quantity").value = paperamount2
RS5.Update

RS5.Close
Set RS5 = nothing

End If

If Not prodnr3 = "c" Then

Set RS6 = Server.CreateObject("ADODB.Recordset")
sqlString = "SELECT * FROM Orderdetail"
RS6.open sqlString, Conn, adopenkeyset, adlockoptimistic

RS6.AddNew
RS6("orderdetail_orderid").value = orderid
RS6("orderdetail_paperid").value = prodnr3
RS6("orderdetail_quantity").value = paperamount3
RS6.Update

RS6.Close
Set RS6 = nothing

End If

If Not prodnr4 = "d" Then

Set RS7 = Server.CreateObject("ADODB.Recordset")
sqlString = "SELECT * FROM Orderdetail"
RS7.open sqlString, Conn, adopenkeyset, adlockoptimistic

RS7.AddNew
RS7("orderdetail_orderid").value = orderid
RS7("orderdetail_paperid").value = prodnr4
RS7("orderdetail_quantity").value = paperamount4
RS7.Update

RS7.Close
Set RS7 = nothing

End If

Set RS8 = Server.CreateObject( "ADODB.Recordset" )
RS8.ActiveConnection = Conn

UpdateQuery = "SELECT * FROM User WHERE user_id = " & Session("Identification")
RS8.ActiveConnection = Conn
RS8.lockType = adLockOptimistic

RS8.Open UpdateQuery
RS8("user_budgetleft").value = budgetleft
RS8.Update

RS8.Close
Set RS8 = nothing

---------END-------------

Indien het niet aan de code ligt (wij zien niks raars, en anderen ook niet) Waar kan het dan aan liggen?

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 09-09 16:14

Crazy D

I think we should take a look.

Hmm kheb ff geen zin om de code helemaal te bekijken, maar waarom doe je:

1. niet een insert query in plaats van via AddNew's wat een stuk makkelijker is imho

2. if not 1., waarom doe je een select * zonder where als je alleen AddNew doet? SELECT * FROM tabel WHERE idveld = -1 (of "niet bestaand" in z'n algemeenheid, dan krijg je een lege recordset (EOF dus) waarop je wel gewoon AddNew kan doen. Scheelt nogal, vooral als je tabel lekker vol wordt... Maar dan nog is 1. imho de betere manier

Exact expert nodig?