Avatar billede hh_appel Nybegynder
19. juli 2001 - 00:07 Der er 5 kommentarer og
1 løsning

Import fra tekstfil til sql inkl. feltnavne

Hejsa,

Jeg skal lave en importering af nogle data fra en tekstfil til en tabel i en sql database.

filen indeholder en række data, hvor første linie er feltnavnet og de følgende linier er de egentlige data.

Altså i stil med:

felt1;felt2;felt5;felt6
data1;data2;data5;data6
data1b;data2b;data5b;data6

Jeg kan godt finde ud af at lave en direkte import, hvor jeg pre-definerer feltnavnene, men hvordan gør jeg, når feltnavnene skal hentes fra den første linie???

Avatar billede zeth Nybegynder
19. juli 2001 - 22:08 #1
noget lignende af det her kunne måske gå?

<%
set fs = server.createobject(\"Scripting.Filesystemobject\")
set f    = fs.opentextfile(\"dinfil.txt\")

Felter = Split(f.readline,\";\")

For i = 0 To UBound(Data)
    Data = Split(f.readline,\";\")
    Conn.Execute(\"INSERT INTO tabel(felt1,felt2,felt5,felt6) VALUES(\'\"& Data(0) &\"\',\'\"& Data(1) &\"\',\'\"& Data(2) &\"\',\'\"& Data(3) &\"\')\")
Next
%>
Avatar billede zeth Nybegynder
19. juli 2001 - 22:10 #2
ups... det skal lige sige det ikke er testet, men prøv det her

<%
set fs = server.createobject(\"Scripting.Filesystemobject\")
set f    = fs.opentextfile(\"dinfil.txt\")

Felter = Split(f.readline,\";\")

Do While Not f.AtEndOfStream
    Data = Split(f.readline,\";\")
    Conn.Execute(\"INSERT INTO tabel(felt1,felt2,felt5,felt6) VALUES(\'\"& Data(0) &\"\',\'\"& Data(1) &\"\',\'\"& Data(2) &\"\',\'\"& Data(3) &\"\')\")
Loop
%>
Avatar billede zeth Nybegynder
19. juli 2001 - 22:18 #3
Hehe bliver ved med at finde fejl :)

<%
set fs = server.createobject(\"Scripting.Filesystemobject\")
set f    = fs.opentextfile(Server.Mappath(\"dinfil.txt\"),1)

Felter = Split(f.readline,\";\")

For i = 0 To UBound(Data)
    Data = Split(f.readline,\";\")
    Conn.Execute(\"INSERT INTO tabel(felt1,felt2,felt5,felt6) VALUES(\'\"& Data(0) &\"\',\'\"& Data(1) &\"\',\'\"& Data(2) &\"\',\'\"& Data(3) &\"\')\")
Next
%>
Avatar billede zeth Nybegynder
19. juli 2001 - 22:19 #4
FUCK! *GGGGG*

<%
set fs = server.createobject(\"Scripting.Filesystemobject\")
set f    = fs.opentextfile(Server.Mappath(\"dinfil.txt\"),1)

Felter = Split(f.readline,\";\")

Do While Not f.AtEndOfStream
    Data = Split(f.readline,\";\")
    Conn.Execute(\"INSERT INTO tabel(felt1,felt2,felt5,felt6) VALUES(\'\"& Data(0) &\"\',\'\"& Data(1) &\"\',\'\"& Data(2) &\"\',\'\"& Data(3) &\"\')\")
Loop
%>
Avatar billede hh_appel Nybegynder
20. juli 2001 - 01:37 #5
Hej Zeth,

Tak for indsatsen... Jeg havde vist stillet spørgsmålet lidt for vagt, for det det handlede om, var også at antallet af felter var varierende - og scriptet vidste ikke på forhånd, hvilke og hvor mange felter, der skulle opdateres...

Jeg har selv løst problemet nu med et sindrigt script, men du skal få pointene som tak for din indsats... :-)
Avatar billede zeth Nybegynder
20. juli 2001 - 13:10 #6
Oookaaay, jamen mange tak da! :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester