Importer txt-fil til Access-database
Jeg er igang med et script, der skal importere en txt-fil over i en Access-database, men hænger fast. Med jævne mellemrum sendes en txt-fil til en server, som så skal importeres over i databasen via et ASP script(VB vil måske også kunne gøre det)?Txt-filen kunne fx. se sådan ud:
UPDATE;34567212;4;Autodele;10
UPDATE;34567212;4;Betonvarer;1005
DELETE;34567212;4;Gulve;1003
Hver linie har kommandoen: UPDATE eller DELETE. Hvis en branche/ rubrik findes, opdaterer kommandoen UPDATE med nye værdier i databasen, ellers skal linien tilføjes i en ny række. Tilsvarende sletter DELETE en række, hvis den findes, ellers skal den ignorere kommandoen. Det sidste felt er primærnøglen (10 for fx. Autoruder).
Der er 2 andre txt-filer i opgaven, dog med den forskel, at der er et par ekstra felter i databasen, som ikke er i txt-filerne. Det må dog være muligt, at funktionen efter et vist antal semikolon'er (enheder) springer ned til næste linie og fortsætter opdateringen. Alternativt går videre til næste linie, når den møder UPDATE eller DELETE?
Jeg forestiller mig, at opgaven kan løses på følgende måde:
1) Txt-filen indlæses via FSO;
2) Der laves et Array med felterne;
3) Felterne indsættes i databasen.
Det script jeg benytter til at læse txt-filen, ser sådan ud:
<%
const ForReading = 1
ImportFile = "Rubrik.txt"
strFile = Server.Mappath("/Import/"& ImportFile)
dim objFS
Set objFS = Server.CreateObject("Scripting.FileSystemObject")
Set objTextStream = objFS.OpenTextFile(strFile, 1)
do while objTextStream.AtEndOfStream = false
'strImportInfo = replace((objTextStream.ReadALL), "UPDATE", "<br>")
strImportInfo = (objTextStream.ReadALL)
loop
ImportInfo = Null
objTextStream.Close
Set objTextStream=Nothing
Set objFS=Nothing
Dim MyVar
strStreng = strImportInfo
MyVar = Split(strStreng, ";")
For i = 0 To UBound(Myvar)
Response.Write(MyVar(i) & "<br>")
Next
%>
Men så er jeg gået i stå med Array'et...
