webForumDet fria alternativet

Delete och select i samma

8 svar · 158 visningar · startad av bagera

bageraMedlem sedan jan. 2001126 inlägg
#1

Kan jag execvera alla dom här "samtidigt" på något sätt?
kan man skriva alltihop i en sträng?

strsql = "SELECT questiontableid FROM questiontable where headtableid ='"& vart1 "&';"

strsql2 = "DELETE from headtable where headtableid ='"& vart1 &"' ;"

strsql3 = "DELETE from questiontable where headtableid ='"& vart1 &"' ;"

strsql4 = "DELETE from responsetable where questiontableid ='"& vart2 &"' ;"

------------------
Mvh:

Johan

Små grodor är också grodor, men inte lika stora.

VideMedlem sedan dec. 19998 577 inlägg
#2

Javisst, separera dom med ";" bara. :)

strsql = "SELECT questiontableid FROM questiontable where headtableid ='"& vart1 "&'; DELETE from headtable where headtableid ='"& vart1 &"'; DELETE from questiontable where headtableid ='"& vart1 &"'; DELETE from responsetable where questiontableid ='"& vart2 &"';"

------------------
Doesn't 'expecting the unexpected' make the unexpected expected?
webeye.nu

bageraMedlem sedan jan. 2001126 inlägg
#3

Så enkelt det kan vara ibland:)
Men hur gör jag då när selectens värde ska in i variabeln "vart2"?

strsql = "SELECT questiontableid FROM questiontable where headtableid ='"& vart1 "&'; DELETE from headtable where headtableid ='"& vart1 &"'; DELETE from questiontable where headtableid ='"& vart1 &"'; DELETE from responsetable where questiontableid ='"& vart2 &"';"

------------------
Mvh:

Johan

Små grodor är också grodor, men inte lika stora.

@ndersMedlem sedan juni 200032 969 inlägg
#4
strsql = "SELECT questiontableid FROM questiontable where headtableid ='"& vart1 "&'; DELETE from headtable where headtableid ='"& vart1 &"'; DELETE from responsetable where questiontableid IN(SELECT questiontableid FROM questiontable where headtableid ='"& vart1 "&'); DELETE from questiontable where headtableid ='"& vart1 &"'; "

Jag bytte plats på dina två sista DELETE-satser, eftersom det hade blivit lite krångligt annars.

Redigering: Behöver du verkligen din första SELECT-fråga där förresten? Ska du använda ID:t till något annat än till DELETE-satsen?

Mvh,

------------------
All your base are belong to me.

[Redigerat av @nders den 04 okt 2001]

LarsGMedlem sedan dec. 200012 464 inlägg
#5

Du kan sätta villkoret direkt i delete-satsen.

strsql = "DELETE from headtable where headtableid ='"& vart1 &"'; DELETE from responsetable where questiontableid in (SELECT questiontableid FROM questiontable where headtableid ='"& vart1 "&');DELETE from questiontable where headtableid ='"& vart1 &"'"

Jag ändrade på ordningen mellan dina delete-satser.

------------------
essentitia preter non sans multiplicandum

bageraMedlem sedan jan. 2001126 inlägg
#6

Vilka hjältar ni är!

Bara därför svänger jag iväg en snabbfråga.

behöver man stänga databasen om man använder denna?
Set rs = conn.Execute(strsql)

Tack å bock!

------------------
Mvh:

Johan

Små grodor är också grodor, men inte lika stora.

VideMedlem sedan dec. 19998 577 inlägg
#7

Databasen måste du alltid stänga, och skapar du ett recordset så skall det också stängas...

------------------
Doesn't 'expecting the unexpected' make the unexpected expected?
webeye.nu

bageraMedlem sedan jan. 2001126 inlägg
#8

Så här ser hela koden ut, tar jag bort stängningen så här funkar den, inte annars.
vad gör jag för fel?

vart1 =request.querystring("id")

strconn = MM_forum_STRING

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open strconn

strsql = "DELETE from responsetable where questiontableid in (SELECT questiontableid FROM questiontable where headtableid ='"& vart1 &"');DELETE from questiontable where headtableid ='"& vart1 &"'; DELETE from headtable where headtableid ='"& vart1 &"'"

Set rs = conn.Execute(strsql)
response.redirect"admin.asp"

------------------
Mvh:

Johan

Små grodor är också grodor, men inte lika stora.

LarsGMedlem sedan dec. 200012 464 inlägg
#9

I och med att du gör execute på ett statement som inte returnerar några poster så får du ett tomt och stängt recordset tillbaka.

conn.Execute strsql,,128
conn.close
response.redirect"admin.asp"

Du kan utelämna tilldelningen av recordsetet.

------------------
essentitia preter non sans multiplicandum

133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)