uppdatera många poster ?!

ASP

2 svar · 151 visningar · startad av henrik2001

Medlem sedan dec. 2000241 inlägg
Trådstart#1

hej!

jag håller på med och knåpar lite med en databas...och nu ska jag göra en sida där man ska kunna ändra informationen...databasen innehåller ca 115 kolumner.
finns det nåt bättre (lättare?) sätt att uppdatera databasen, förutom:

form1 = Replace(Request.Form("form1"),"'","''")
minConn.Execute("UPDATE DataBasen SET Test = '" & form1 & "', blabla = '" & blabla & "' Where ID = " & id)
' osv osv...

det blir lite jobbigt, tycker jag, om man ska uppdatera mer än 100 kolumner!

nåt bättre förslag?

/henrik

Medlem sedan dec. 20003 563 inlägg
#2

Nja. Visst går det men det verkar lite konstigt. Om du ska göra något likadant genom varje kolumn så går det på nedanstående sätt.
Men det låter som om databasdesignen är lite si så där om du måste uppdatera över 100 kolumner.
Men det kanske är nödvändigt.

<%
set rs = conn.execute("SELECT * FROM "&tabell&"")
fields = rs.fields.count -1

For i = 0 to fields
conn.execute("UPDATE tabell SET rs.fields(i).name = '"Vad_du_nu_ska_uppdatera"' WHERE ID = "&id&" ")
next
%>

Kom på: Om du gör ungefär samma sak i kolumnerna 1 - 25 eller nått.. eller vad vet jag :) så skulle du kunna sätta in if-satser eller select i for-satsen.
Iofs lite onödigt om du ska göra 100 olika uppdateringar men det här var det bästa jag kunde komma med.

[r]
Såg att rubriken var poster???
Det är en jäkla skillnad mellan poster och "kolumner"/fält.
[/r]

Medlem sedan juli 20003 825 inlägg
#3
IF request("remove") <> "" THEN
	' GET X_SORTFIELD
	SQL = "SELECT * FROM [navigation] WHERE [x_ID] = " & request("remove") & ";"
	set mySQL = Conn.Execute(SQL)
	x_sortfield = mySQL("x_sortfield")
	' ## DELETE POST
	SQL = "DELETE * FROM [navigation] WHERE [x_ID] = " & request("remove") & ";"
	Conn.Execute(SQL)
	' ## UPDATE THE REST
	SQL = "UPDATE [navigation] SET [x_sortfield] = [x_sortfield]-1 WHERE [x_sortfield] > " & x_sortfield & ";"
	Conn.Execute(SQL)
	returnPath = "index.asp"
END IF
	' ## UPDATE THE REST
	SQL = "UPDATE [navigation] SET [x_sortfield] = [x_sortfield]-1 WHERE [x_sortfield] > " & x_sortfield & ";"
	Conn.Execute(SQL)
252 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)