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