webForumDet fria alternativet

Hämta Id

ASPur ASP

0 svar · 313 visningar · startad av devotion

devotionMedlem sedan jan. 20013 582 inlägg
#1

Hej,

Jag hämtar ut information från en textfil i en loop.

Jag kan få ut en prislistas nummer från filen, men jag behöver Id för att kunna göra min INSERT.

Jag vill helst inte göra en massa SQL-anrop i loopen i onödan, då det rör sig en ansenlig mängd poster i textfilen.

Hur skulle man kunna lösa detta?''

SQL-frågan för att hämta Id mha nummer ser ut så här:

...

iPriceListNr = cInt(m(0).submatches(0)) 'grossistkod

SELECT [Id] FROM tblPriceList WHERE [Nr] = '" & iPriceListNr

...

Skulle man kunna hämta ut alla Id:na, och sen göra en funktion där uppslaget görs, eller nått?

:)

Här kommer hela koden:

¨do while not oFile.atendofstream
		
		'Läsa textraden
		sline = oFile.readline
	 
	 	if left(sLine, 1) = "1" then

			r.pattern = "^\d(\d{8})(.{25})(\d{8})"
			set m = r.execute(sLine)
			if m.count > 0 then
				lArtId=GetNextId("tblArticle")
				sArtNr = m(0).submatches(0)
				sArtName = SQLSafe(trim(m(0).submatches(1)))
				dPriceDate = m(0).submatches(2)
				
				sSQL= "INSERT INTO tblArticle ([Id], [Status], [Modified], [Nr], [Name], [Custom1])" _
					& " VALUES (" & lArtId & ", 0, GETDATE(), '"& sArtNr &"', '"& sArtName &"', '" & dPriceDate & "')"
				oConn.Execute sSQL,,128
			Else
				'sErrorArticle = sErrorArticle + sLine
			End If
		 elseif left(sLine, 1) = "2" then

			r.pattern = "^\d(\d{2})(\d{8})([\+\- \?])([^\s]+)"
			set m = r.execute(sLine)
			if m.count > 0 then
			
				lPriceId=GetNextId("tblPrice")
				iPriceListNr = cInt(m(0).submatches(0)) 'grossistkod
				iSupplierPrice = cdbl(m(0).submatches(1)) 'grossistpris
				'sStatus = m(0).submatches(2) 'status
				sDiscountCode = m(0).submatches(3) 'rabattkod
				
				sSQL= "INSERT INTO tblPrice ([Id], [Modified], [PriceListId], [ItemType], [ItemId], [Price], [DiscountCode])" _
					& " VALUES (" & lPriceId & ",GETDATE(), " & iPriceListNr & ", 4, " & lArtId & ", " & iSupplierPrice & ", '" & sDiscountCode & "')"
				oConn.execute sSQL,,128
			Else
				'sErrorPrice = sErrorPrice + sLine
			End If
		 end if
	loop
128 ms totalt · 3 externa anrop · v20260731065814-full.c74b5be1
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)