webForumDet fria alternativet

Ta bort/Posta till ny Databas

ASPur ASP

10 svar · 592 visningar · startad av jonas76

jonas76Medlem sedan mars 200278 inlägg
#1

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

LarsGMedlem sedan dec. 200012 464 inlägg
#2

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
jonas76Medlem sedan mars 200278 inlägg
#3

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>

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Byt

 stm2 = "delete from callback where id= id "

till

 stm2 = "delete from callback where id= " & id
jonas76Medlem sedan mars 200278 inlägg
#5

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)

OveRRidEMedlem sedan feb. 200112 078 inlägg
#6

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

LarsGMedlem sedan dec. 200012 464 inlägg
#7

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.

jonas76Medlem sedan mars 200278 inlägg
#8

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 .

jonas76Medlem sedan mars 200278 inlägg
#9

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

@ndersMedlem sedan juni 200032 969 inlägg
#10

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,

jonas76Medlem sedan mars 200278 inlägg
#11

hhhmmm "skäms"

man blir lite blind ibland när man sitter för länge.

ja nu fungerar det :)

Tusen tack
Mvh Jonas

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