Hej
Hur gör jag för att tabort ett inlägg ur databasen samtidigt som jag postar det till en ny databas?
Mvh Jonas
10 svar · 592 visningar · startad av jonas76
Hej
Hur gör jag för att tabort ett inlägg ur databasen samtidigt som jag postar det till en ny databas?
Mvh Jonas
Du får göra det med två operationer. En insert och en delete inom en transaktion.
connect.begintrans
on error resume next
connect.execute "insert into db2.ogrish (aleb,bleb) values('a',12)"
if err then
connect.rollbacktrans
else
connect.execute "delete from db1.oapiey where aleb = 12"
end if
if err then
connect.rollbacktrans
else
connect.committrans
end if
on error goto 0
Tack för din hjälp, jag har testat följande kod som fungerar nästan bra :) den tar bort inlägget ur första data basen och den lägger till inlägget i nästa databas, men....
den tar inte bara bort ETT inlägg utan alla inlägg i första databasen :( , fast den lägger till som den skall i nästa databas ( endast en dvs) :).
Koden ser ut som följer:
dim id, ref, tid, landslott, cbslott, user, datum, status
id = request.form("id")
landslott = request.form("landslott")
ref = request.form("ref")
tid = request.form("tid")
cbslott = request.form("cbslott")
user = request.form("user")
datum = request.form("datum")
status = request.form("status")
set connection = server.createobject("adodb.connection")
connection.open "dsn=rd1"
stm = "insert into ownership (ref,tid,landslott,cbslott,user,datum,status)"
stm=stm&"values('"&ref&"','"&tid&"','"&landslott&"','"&cbslott&"','"&user&"','"&datum&"','"&status&"')"
connection.execute(stm)
connection.close
set connection=nothing
id = request.form("id")
set connection = server.createobject("adodb.connection")
connection.open "dsn=rd1"
stm2 = "delete from callback where id= id "
connection.execute(stm2)
connection.close
set connection=nothing
%>
<h2>Thanks for taking care of this customer!</h2>
<a href="cb.asp">Go back.</a>
</body>
</html>
Byt
stm2 = "delete from callback where id= id "
till
stm2 = "delete from callback where id= " & id
Huummm, då får jag följande fel :
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntaxfel (operator saknas) i frågeuttrycket 'id= 427</font'.
/ccr/rd/test2.asp, line 37
line 37 = connection.execute(stm2)
LarsG skrev:
Du får göra det med två operationer. En insert och en delete inom en transaktion.
connect.begintrans on error resume next connect.execute "insert into db2.ogrish (aleb,bleb) values('a',12)" if err then connect.rollbacktrans else connect.execute "delete from db1.oapiey where aleb = 12" end if if err then connect.rollbacktrans else connect.committrans end if on error goto 0
LarsG; är det verkligen så enkelt? Jag har för mig att det är en mer krävande procedur där man är tvungen att instansiera nåt object från MTS:en? Eller är det bara i COM?
Har connection-objektet en transact-funktion? :q
Då ser värdet på id ut att vara korrupt.
Om du lägger till lite utskrifter
stm2 = "delete from callback where id= id "
response.write "debug:ID=" & id & "<br>"
response.write "debug:SQL=" & stm2 & "<br>"
'connection.execute(stm2)
Hur ser det ut?
Or:
Jo, visst om det är distriibuerat så. Vad som är en databas är lite olika. T.ex om man pratar sql server så kan en server innehålla flera databaser och då behövs det inte distribuerade transaktioner.
Det är en Access databas.
Sidan skrev ut följande rad: debug:ID=430debug:SQL=delete from callback where id= id
och den tog bort alla inlägg istället för endast ett .
kan det påverka hur jag skickar till denna sida, den kod jag använder för det är följande :
<form action = "test2.asp" method = "post">
<table border=0>
<table>
<tr>
<td><input type="hidden" name="id" value=<%=RS("id")%></font></td>
...osv
Ja, du har missat i din html-kod.
<td><input type="hidden" name="id" value=[b]"<%=RS("id")%>">[/b]</font></td>
Citationstecken runt värdet, och du hade också glömt avsluta <input>-taggen.
Red: Dessutom ser </font> lite malplacerad ut, du har ju ingen starttagg där i <td>:n. Du bör nog gå igenom html-koden ordentligt, men det har ju inget i det här forumet att göra. ;)
Mvh,
hhhmmm "skäms"
man blir lite blind ibland när man sitter för länge.
ja nu fungerar det :)
Tusen tack
Mvh Jonas