Du gör precis som vanligt.
Öppna databaskoppling till db1 och till db2.
Skapa recordset med källdatat.
Loopa igenom på vanligt vis.
Gör insert mot db2.
Precis som vanligt tror jag att du vill göra det svårare än vad det är. :)
4 svar · 294 visningar · startad av devotion
Hej!
Behöver snabbt lite hjälp...
Hur skriver man från en databastabell till en annan. Vill inte bara kopiera över utan loopa ut infon för att kunna lägga till övrig information innan datat skrivs till den nya tabellen.
SQl-biten kan jag men jag undrar bara hur man gör loopen....
Help me ;)
Mvh
Henrik
Du gör precis som vanligt.
Öppna databaskoppling till db1 och till db2.
Skapa recordset med källdatat.
Loopa igenom på vanligt vis.
Gör insert mot db2.
Precis som vanligt tror jag att du vill göra det svårare än vad det är. :)
:r
Så här fick det bli...
<%
Dim strSQL1, strSQL2, strSQL3, strSQL4, objConn, objRS1, objRS2, objRS3
iStatus = 0
sNote = "Material anpassad för handdatorn"
sCategory = "Vanlig mtrl"
iGroup = 0
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=uppdragNu"
objConn.Open
Set objRS1 = objConn.Execute ("SELECT * FROM tblExPalm")
If not objRS1.EOF then
do until objRS1.EOF
sArtNr = trim(objRS1("ArtNr"))
sName = trim(objRS1("Name"))
sUnit = trim(lCase(objRS1("Unit")))
iPrice = trim(cInt(objRS1("Price")))
Set objRS2 = objConn.Execute ("SELECT nextId FROM tblNextId WHERE table = 'tblArticle'")
iNextId = cLng(objRS2("NextId"))
objRS2.Close
Set objRS2 = Nothing
strSQL3 = "INSERT INTO tblarticle([Id], [Group], [Status], [Modified], ArtNr, [Name], [Category], [Unit], [Price], [Note]) " &_
"VALUES(" & iNextId & ", " & iGroup & ", " & iStatus & ", Now(), '" & sArtNr & "', '" & sName & "', " &_
"'" & sCategory & "', '" & sUnit & "', " & iPrice & ", '" & sNote & "')"
objConn.execute strSQL3,,128
iNextId = iNextId + 1
strSQL4 = "UPDATE tblNextId SET nextId = " & iNextId & " " &_
"WHERE Table = 'tblArticle'"
objConn.Execute strSQL4,, 128
objRS1.Movenext
Loop
Else
Response.write "Fel!"
End if
objRS1.Close
Set objRS1 = Nothing
Response.write "Datat har lagrats!"
%>
Synpunkter mottages tacksamt....
och
tyvärr kan jag inte dementera....
Precis som vanligt tror jag att du vill göra det svårare än vad det är.
:birp
Mvh
Henrik
Jo det ser väl bra ut men du behöver inte ha fyra variabler för din SQL-statments. Tanken med en variabel är ju att värdena ska kunna vara variabla och så länge som variabeln innehåller liknande värden, så ska du utnyttja detta när det är möjligt ;)
Det räcker med en variabel, exempelvis endast strSQL, denna tilldelar du olika värden.
<%
Dim strSQL, objConn, objRS1, objRS2, objRS3
iStatus = 0
sNote = "Material anpassad för handdatorn"
sCategory = "Vanlig mtrl"
iGroup = 0
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=uppdragNu"
objConn.Open
strSQL = "SELECT * FROM tblExPalm"
Set objRS1 = objConn.Execute strSQL,, 128
If not objRS1.EOF then
do until objRS1.EOF
sArtNr = trim(objRS1("ArtNr"))
sName = trim(objRS1("Name"))
sUnit = trim(lCase(objRS1("Unit")))
iPrice = trim(cInt(objRS1("Price")))
strSQL = "SELECT nextId FROM tblNextId WHERE table = 'tblArticle'"
Set objRS2 = objConn.Execute strSQL,, 128
iNextId = cLng(objRS2("NextId"))
objRS2.Close
Set objRS2 = Nothing
strSQL = "INSERT INTO tblarticle([Id], [Group], [Status], [Modified], ArtNr, [Name], [Category], [Unit], [Price], [Note]) " &_
"VALUES(" & iNextId & ", " & iGroup & ", " & iStatus & ", Now(), '" & sArtNr & "', '" & sName & "', " &_
"'" & sCategory & "', '" & sUnit & "', " & iPrice & ", '" & sNote & "')"
objConn.execute strSQL,,128
iNextId = iNextId + 1
strSQL = "UPDATE tblNextId SET nextId = " & iNextId & " " &_
"WHERE Table = 'tblArticle'"
objConn.Execute strSQL,, 128
objRS1.Movenext
Loop
Else
Response.write "Fel!"
End if
objRS1.Close
Set objRS1 = Nothing
Response.write "Datat har lagrats!"
%>
Hmmm... :)
Jag brukar faktiskt inte ha flera strSQL, men i det här fallet gick det av bara farten när jag namngav objRS1, objRS2 osv.... men det är som du säger, det räcker ju med strSQL!
Tack för tipset!
Mvh
henrik