webForumDet fria alternativet

Kontrollera att artikeln finns i artikeldatabasen innan insert

ASP

6 svar · 327 visningar · startad av devotion

Medlem sedan jan. 20013 582 inlägg
Frågan#1

:e
Hej!

Jag har en liten fråga....

Jag har en sida där man kan lägga till artiklar i en databastabell. Antalet fält kan man välja dynamsikt, dvs ska jag lägga till 3 artiklar väljer jag tre fält.

Koden som tar emot datat ser ut så här (lite förkortat):

For each item in Request.Form("cnt")

	sEnumber = SQLSafe(Request.form("Enumber"))

	strSQL = "INSERT INTO tblMaterial(eNumber) VALUES('" & sEnumber & "')"
	objConn.execute(strSQL)

Next

Nu skulle jag vilja göra en kontroll mot tabellen tblArticle, som innehåller alla giltiga E-nummer, att verkligen E-numret är giltigt, dvs att det finns med i tbArticle.

Ett exempel:

-jag har valt 5 fält för E-nummer och väljer att lägga till dessa.
-4 E-nummer var giltiga 1 var ogiltigt
-då vill jag att de 4 numrena läggs till samtidigt som det kommer upp någon blänkare om att numret xxxxxxx var ogiltigt och har inte lagts till

Ett giltigt e-nummer består av 7 siffror i grupp så det bästa hade ju varit att ha någon kontroll på formuläret som kollar det som ett första steg. dvs är det inte SJU SIFFROR i grupp så gåpr det inte att posta formuläret. Är det sju siffror i grupp så går det att posta formuläret och kontroll görs mot tblArticle.

Det blev nog lite olika frågor i samma tråd...

Tack på förhand!

Mvh
Henrik

Medlem sedan dec. 19996 721 inlägg
#2
strErr=""
For each item in Request.Form("cnt")
	

	sEnumber = SQLSafe(Request.form("Enumber"))
	
	if objConn.Execute("SELECT 1 FROM tbArticle WHERE eNumber='" & sEnumber & "'").EOF then
		strSQL = "INSERT INTO tblMaterial(eNumber) VALUES('" & sEnumber & "')"
		objConn.execute strSQL,,128
	else
		strErr=strErr & Request.form("Enumber") & " lades inte till sörru...<br>"
	end if

Next

if strErr<>"" then
	Response.Write strErr
end if
Medlem sedan jan. 20013 582 inlägg
#3

Funkar finfint!

Ändrade bara raden:

	if objConn.Execute("SELECT 1 FROM tbArticle WHERE eNumber='" & sEnumber & "'").EOF then
		strSQL = "INSERT INTO tblMaterial(eNumber) VALUES('" & sEnumber

till

	if [b]not[/b] objConn.Execute("SELECT 1 FROM tbArticle WHERE eNumber='" & sEnumber & "'").EOF then
		strSQL = "INSERT INTO tblMaterial(eNumber) VALUES('" & sEnumber

tack för hjälpen!

Nu behöver jag bara bygga vdare på koden, se ny tråd...
Mvh
Henrik

Medlem sedan juni 200032 967 inlägg
#4

Hmm, varför ändrade du det?

emissions kod syftar till att endast köra INSERT om det inte tidigare finns en post med aktuellt enummer. Nu gör du ju insert om det redan finns?

Medlem sedan jan. 20013 582 inlägg
#5

Ehhh, det fungerade inte innan jag ändrade... Men nu ska vi se så jag inte tänker fel...

Flöde:
Om artikeln finns med i tblArticle sätt in en post i tblMaterial annars ge felmeddelande

Det jag vill göra är ju att verifiera att det verkligen finns en artikel med det e-numret i artikeldatabasen innan jag gör en insert till tblMaterial. tblMaterial är en "varukorg" knutet till ett projektnummer..

Mvh
henrik

Medlem sedan juni 200032 967 inlägg
#6

Jamendåså, det är jag som läser fel / slarvigt.
Du får inte skriva så mycket text i samma inlägg. ;-)

Sorry! Givetvis är det rätt med ett NOT, men lägg gärna in ett mellanslag mellan NOT och resten. ;-)

Mvh

Medlem sedan jan. 20013 582 inlägg
#7

:)
aha... det var bara i inlägget som mellanslaget missades... ska rätta till det..

...och messenger suger.... ;)

Mvh
henrik

550 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
417 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
417 ms — ändringar (db)