webForumDet fria alternativet

Loopa ut info från en databas och skriva till en annan..

ASP

4 svar · 294 visningar · startad av devotion

Medlem sedan jan. 20013 582 inlägg
Frågan#1

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

Medlem sedan juni 200032 967 inlägg
#2

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. :)

Medlem sedan jan. 20013 582 inlägg
#3

: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

Medlem sedan jan. 20023 327 inlägg
#4

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!"
%>
Medlem sedan jan. 20013 582 inlägg
#5

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

268 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)