[asp | sql] dubbele insert, maar geen loop aanwezig

Pagina: 1
Acties:
  • 196 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 20:25
Hoi,

heb nu iets vaags (volgens mij :)) Ik heb een pagina die insert iets in een database. Vrij simpel lijkt me. Maar om de één of andere vage manier wordt de data 2 maal geinsert. Helemaal onderaan deze code staat de insert.

ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<!--#include file="include/conn.asp" -->
<%
Session.LCID = 1043
asContent = request.form("EditorValue")
asContent = replace(asContent, "'", "''")
originalhtml = request.form("EditorValue")
originalhtml = replace(originalhtml, "'", "''")
L_date = request.form("L_date")

if session("so") = "" then
   response.write "Choose an address!<br>Hit your back button!"
   response.end
end if

' Letterhead bouwen
' Nederland
if session("so") = "NL" then

    address = true
    Letterhead = "Geachte $$CusName."

' Germany
elseif session("so") = "GER" then

    address = true
    Letterhead = "Sehr geehrte $$CusName."

' France
elseif session("so") = "FRA" then

    address = true
    Letterhead = "Chere $$CusName."

end if


' hier beginnen we met het echte replacen en vernaggelen van de data!
' eerst beginnnen we met ALLE dubbele waardes eruit te slopen
' en naar VIPP commands om te bouwen!

' debug regels erin knallen!
if request("debug") = "1" then
    response.write Server.HTMLEncode(asContent)&"<br><hr>"
end if

asContent = Replace(asContent, "<STRONG>", "//BO")
asContent = Replace(asContent, "<P>", "//PL")
asContent = Replace(asContent, "</P>", ") 0 SHP"&vbCrlf&"NL"&vbCrlf&"(")
asContent = Replace(asContent, "</STRONG>", "//PL")

' debug regels erin knallen!
if request("debug") = "1" then
    response.write asContent&"<br><hr>"
    response.write (Server.Mappath("dbf/"&JobNaam))&"<br>"
end if

' En nog ff in de DB knallen!
Omschrijving = "Letter"
DatumTijd = Now()

sqlC = "INSERT INTO dbo.tblLetter "
sqlC = sqlC&"(Omschrijving, Content, DatumTijd, OriginalHTML, So)"
sqlC = sqlC&" VALUES  '"&Omschrijving&"', '"&asContent&"', "
sqlC = sqlC&'"&DatumTijd&"', '"&originalhtml&"', '"&session("so")&"')"

set cmdInsert = Server.CreateObject("ADODB.Command")
cmdInsert.ActiveConnection = conn_STRING
cmdInsert.CommandText = sqlC
cmdInsert.CommandType = 1
cmdInsert.CommandTimeout = 0
cmdInsert.Prepared = true
cmdInsert.Execute()

response.redirect "default.asp"
%>


Deze code zorgt er dus voor dat de data exact 2 maal geinsert wordt.
Het gaat hier om een SQL 7 database.

Ik zie het niet, het enige wat ik kan bedenken is dat er iets met die html meegestuurd wordt waardoor er een dubbele actie getriggerd wordt. Maar dat lijkt me zeer onwaarschijnlijk met bijvoorbeeld deze html:
code:
1
<STRONG>Dit is een testje....</STRONG>

En dit komt eruit nadat het "vernaggeld" is:
code:
1
//BODit is een testje....//PL

[ Voor 56% gewijzigd door TeeDee op 26-03-2003 09:28 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 10:39
is het niet sowieso een foutje dat je </STRONG> laat vervangen door //P? Het zal wel niet verplich zijn, maar volgens mij is het netter om je query af te sluiten met een ;

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack


Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 20:25
Nope, daarna moet ie weer switchen naar een //PL (== plain font). Dit is namelijk VIPP en die gaat daarvan (;) over zijn nek :)

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 20:25
Kan het zijn dat de SQL server het record 2 maal insert?
Ik heb alles gecheckt (dus op Views en Stored Procedures e.d.) maar ik zie alleen de standaard views en sp's.

3 mensen hebben de code nu al nagelezen, maar hebben geen van allen een probleem gezien.

Snap er totaal niks meer van :? :? :?

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 19:48

Crazy D

I think we should take a look.

TeeDee schreef op 26 maart 2003 @ 08:58:
Kan het zijn dat de SQL server het record 2 maal insert?
Dat zou kunnen maar aangezien het een insert query is die je uitvoerd, zou ik hooguit denken aan een trigger op de tabel, mjah wat is het nut van een trigger die een ge-insert record nogmaals insert... 8)7 Maar dta kun je testen door een insert query uit te voeren via de query analyzer, als er dan nog 2 maal wordt geinsert, weet je iig zeker dat het niet aan je code ligt :)
Het enigste wat "vreemd" is voor mij is de Prepared property (maar ik ken het Command object niet zo goed). Maar ik kan me niet voorstellen dat die ervoor zorgt dat een query 2 maal wordt uitgevoerd, terwijl je 'm maar 1 keer uitvoert....

Exact expert nodig?


Acties:
  • 0 Henk 'm!

  • Kermit.de.Kikker
  • Registratie: Februari 2002
  • Laatst online: 19:49
Ik zou ook eens kijken hoe je je form submit, misschien doe je het met javascript en submit je hem stiekem twee keer?

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 20:25
Ja, ik weet dat het sql insert er misschien ranzig uitziet, maar dit is origineel gemaakt in Dreamweaver Ultradev.

Een "trigger" op de db voor een dubbele insert (ook gecheckt in de Query Analyzer) heb ik er zeker niet aanhangen, was het maar zo, dan kan ik het eraf halen :)

Kermit.de.Kikker: het form wordt idd gesubmit met een JS.
code:
1
2
3
4
5
6
7
function OnFormSubmit(){

  if(confirm("Are you sure you have finished editing?")){
    copyValue();
    document.fHtmlEditor.submit();
  }
}

Maar dit stukje JS gebruik ik voor een heleboel form submits. Ik heb er nog nooit ellende meegehad. Ik copy paste dit altijd uit andere pagina's.

[ Voor 50% gewijzigd door TeeDee op 26-03-2003 09:18 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

Verwijderd

in regel 61 ben je een (") vergeten aan het einde van de regel

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 20:25
Verwijderd schreef op 26 maart 2003 @ 09:23:
in regel 61 ben je een (") vergeten aan het einde van de regel
Kan kloppen, die ben ik vergeten omdat ik die query een beetje aangepast heb vanwege de layout..

maar dat doet niks af aan het feit dat ie 2 x insert

/edit: (") toegevoegd in startpost

[ Voor 7% gewijzigd door TeeDee op 26-03-2003 09:29 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • syllaz
  • Registratie: Mei 2002
  • Laatst online: 17-09 11:26
Ik heb precies hetzelfde probleem als hierboven, en daar gisteren een topic over geopend.
Mijn probleem is niet SQL7, maar MS Access die constant 2 records tegelijk aanmaakt....

http://gathering.tweakers.net/forum/list_messages/731754

Wellicht dat je er wat aan hebt...

Acties:
  • 0 Henk 'm!

  • Wokkels
  • Registratie: Juli 2000
  • Laatst online: 29-10-2024

Wokkels

Het lekkerste zoutje

over de Prepared property:
he Prepared property sets or returns a Boolean value that, if set to True, indicates that the command should save a prepared version of the query specified in the CommandText property before execution.
haal deze property eens weg en probeer het dan nog eens. Ik heb het vermoeden dat het hierdoor komt.
Dit is het enige dat ik zou kunnen verzinnen.

Permanent wintericon!


Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

TeeDee schreef op 26 March 2003 @ 09:16:
*knip*
Maar dit stukje JS gebruik ik voor een heleboel form submits. Ik heb er nog nooit ellende meegehad. Ik copy paste dit altijd uit andere pagina's.
Hoe ziet de html van je submit knop er uit?

Who is John Galt?


Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 20:25
justmental schreef op 26 March 2003 @ 09:51:
[...]
Hoe ziet de html van je submit knop er uit?
code:
1
2
<input type="submit" name="Submit" 
value="create!" onClick="OnFormSubmit()">


/edit:
Wokkels: die Command.Prepared heb ik eruit gehaald, mocht niet baten. Hij insert nu 2 x, alleen nu zit er 1 sec. tussen. Als ik die Command.Prepared weer terug zit, zit er geen tijdsverschil in.

[ Voor 37% gewijzigd door TeeDee op 26-03-2003 09:57 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

Hier heeft men hetzelfde probleem.
[rml][ ASP/SQL] multiple insert probleem[/rml]

Hou dat topic dus ook in de gaten!

Hier dezeflde vraag wat ik daar net heb gesteld : Is er toevallig een patch gedraaid op de server?

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

TeeDee schreef op 26 March 2003 @ 09:54:
code:
1
2
<input type="submit" name="Submit" 
value="create!" onClick="OnFormSubmit()">
Gaat ie nu niet 2x submitten vawege de type=submit en onclick=submit?
Probeer eens met type=button.

Who is John Galt?


Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 20:25
Godnondeju justmental!
Dat was het. Totaal geen asp error dus, maar een foutje in de type van de button! Dit element wat ik gebruik werkt altijd, alleen nu ben ik blijkbaar vergeten om de type om te zetten.

Zo vaag, ik gebruik deze elementen al maanden, en altijd ging het goed. :)

Heart..pumps blood.Has nothing to do with emotion! Bored

Pagina: 1