webForumDet fria alternativet
Logga in / Bli medlem

Läsa textfiler

ASP

3 svar · 293 visningar · startad av Masa

Medlem sedan jan. 200152 inlägg
Trådstart#1

Hej
Hur gör man för att läsa in en textfil som är avdelat med semikolon och sen skicka in det som finns mellan semikolonen i en databas?
Tex: Tomas;Andersson;tomas@email.se
Olle;Olson;olle@email.se
Sven;Svensson;sven@email.se

info om en member finns på en rad, så nåt med readline vore ju bra..

Tomas

Medlem sedan dec. 200012 464 inlägg
#2
Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
Set InStream = FileObject.OpenTextFile (Server.Mappath ("textfil.txt"),ForReading, False)
set connect = server.createobject("adodb.connection")
connect.open "dsn"

do while not instream.atEndOfStream
row = instream.readline
items = split(row,";")
sql = "insert into members(fname,lname,email) values ('" & items(0) & "','" & items(1) & "','" & items(2) & "')"
connect.execute sql,,128
loop
instream.close
connect.close

ungefär så. (Dvs det är otestat)
Är okej prestandamässigt för små filer.

I och för sig verkar en sådan övning lite onödig då det flesta dbms brukar ha någon utility för att ladda in data från sekventiella filer.

Medlem sedan jan. 200152 inlägg
#3

Ok tack ska du ha...hänger med på allt utom "sql,,128" vad gör det för nåt?

Det är meningen att members ska kunna ladda upp sina email listor och läsa in dom i databasen..kan det göras med det utilites du paratar om? vilket är det? kör med MS sql(rätt grön)..

Tomas

Medlem sedan dec. 200012 464 inlägg
#4

BCP = bulk copy. Ett verktyg för att ladda data från vanliga filer.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/acdata/ac_8_mta_01_2ii8.asp

128 = adExecuteNoRecords

det betyder att ado inte skapar något recordset alls.

381 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
129 ms — deklarationer (db)
123 ms — hämta statistik (db)
128 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)