Nu finns det säkert ett bättre sätt med tanke på prestanda men kan du inte köra en fråga till databasen för varje rad i excelarket, så som man alltid gör?
1 Läs in Excel-arket
2 För varje id
om id inte excisterar i SQL-databasen
spara ny post
5 svar · 762 visningar · startad av Mokos
hej.. jag vill göra en jämförelse mellan två olika databaser, med olika odbc koppling..
för att vara riktigt ärlig så vill jag kunna göra jämförelsen mellan ett lokalt Excel dokument och en SQL server online..
Jag har ett Excel dokument med en massa produkter. varje produkt har ett unikt "modellnr" ett id kan man säga.. jag vill nu göra en jämförelse så att inte modellnummret i mitt excel dokument existerar i motsvarande fält i SQL databasen online.. om id:t existerar så skall det hoppas över.. vilket innebär att dubletter av produkter inte läggs upp!!
så alltså.. en loop med existerande modellnummer online och i den loopen sedan loopa ut alla produkter ur Excel dokumentet där det inte finns några matchande Modellnr..
jag kan nämna att jag redan löst det där med att loopa fram poster ur Excel dokumentet.. det enda jag vill ha en lösning på är jämförelsen mellan databasen och Excel arket!
går detta att göra eller är det helt omöjligt..
tacksam för all Hjälp jag kan få!!
mvh
Christian
Nu finns det säkert ett bättre sätt med tanke på prestanda men kan du inte köra en fråga till databasen för varje rad i excelarket, så som man alltid gör?
1 Läs in Excel-arket
2 För varje id
om id inte excisterar i SQL-databasen
spara ny post
Exakt.. det är precis det jag försöker göra nu.. men jag får fel.. för det verkar inte som om sql:en vill bortse ifrån ifall det är lika ID:n.. jag får fel på "dubletter i primärnycklar"
Kan du inte klistra in lite kod så vi får se vad det är som händer? :)
Har du försökt med någon felsökning själv? Jag brukar skriva ut SQL-satserna precis före de exekveras med en Response.Write för att se vad för frågor som skickas till databasen och för att på ett enkelt sätt se vart det kan gå fel.
// Ändrade lite i min meningsuppbyggnad även om det fortfarande ser skummt ut, aja
Jo.. men jag kan kanske ha löst det..
select case sDo
case "add"
call Add_Artikel 'Lägger till Artikeln i tabellen Prod_Artikel
call Add_Artikelkategori 'Lägger till Artikeln i tabellen Prod_Artikelkategori
response.Redirect("import.asp")
case "edit"
call Edit_Artikel 'Ändrar Artikeln i tabellen Prod_Artikel
response.write("<script>javascript:window.close()</script>")
case "delete"
call Delete_Artikel 'tar bort Artikeln i tabellen Prod_Artikel
response.Redirect("default.asp")
case "import"
while not Rst.eof or Rst.bof
xlID=Rst("MODELLNR")
Set rs = oConn.Execute("SELECT Artikel_ID FROM Prod_Artikel WHERE NOT Artikel_ID="&xlID)
if rs.eof or rs.bof then
call AddtoSQL
end if
Rst.movenext
wend
Rst.close
'response.Redirect("default.asp")
end select
det är unde case import...
jag flyttade upp loopen ifrån sub:en till case...