31. marts 2005 - 00:36
Der er
6 kommentarer og 1 løsning
indsæt i database ser forkert ud, det ændres fuldstændigt
Når jeg skal indsætte denne linie fra en semikolon separeret .txt fil: 51999;01-02-2004;0;0;0;0;0;0;0;0;0;0;0;0;0;0; kommer datoen (01-02-2004) til at se sådan ud i databasen: 04-07-1894 Hvorfor i alverden gør den det? Jeg har prøvet at lave feltet til både dato og til tekst, men med samme resultat.
Annonceindlæg fra Kingston Technology
31. marts 2005 - 00:39
#1
51999;CDate(01-02-2004);0;0;0;0;0;0;0;0;0;0;0;0;0;0; hvis du kan gøre sådan så virker det.
31. marts 2005 - 00:44
#2
det kan jeg desværre ikke, da .txt filen genereres af et andet program, og skal laves en opdatering hver dag. kan jeg gøre noget ved indsæt i database? Function replace3(VAR) If VAR = "" Then replace3 = "NULL" Else replace3 = VAR End If End Function Set Conn = Server.CreateObject("ADODB.Connection") conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../statistik/statistik.mdb") SQL = "DELETE * FROM dyrestatistik" conn.execute(SQL) Set fso = CreateObject("Scripting.FileSystemObject") MYFILE = Server.Mappath("dyrestatistik.txt") Set CONTENT = fso.OpenTextFile(MYFILE,1) COUNTER = 1 Do While not CONTENT.AtEndOfStream CONTENTLINE = CONTENT.readline CONTENTSPLIT = split(CONTENTLINE,";") SQL = "INSERT INTO dyrestatistik (Kundenummer, Dato, FCGram, FCKcal, RefGram1, RefKcal1, RefGram2, RefKcal2, Gram1, Kcal1, Gram2, Kcal2, AntalHanner, AntalTæver, AntalHvalpe, DyrIalt) VALUES (" & replace3(CONTENTSPLIT(0)) & ", " & replace3(CONTENTSPLIT(1)) & ", " & replace3(CONTENTSPLIT(2)) & ", " & replace3(CONTENTSPLIT(3)) & ", " & replace3(CONTENTSPLIT(4)) & ", " & replace3(CONTENTSPLIT(5)) & ", " & replace3(CONTENTSPLIT(6)) & ", " & replace3(CONTENTSPLIT(7)) & ", " & replace3(CONTENTSPLIT(8)) & ", " & replace3(CONTENTSPLIT(9)) & ", " & replace3(CONTENTSPLIT(10)) & ", " & replace3(CONTENTSPLIT(11)) & ", " & replace3(CONTENTSPLIT(12)) & ", " & replace3(CONTENTSPLIT(13)) & ", " & replace3(CONTENTSPLIT(14)) & ", " & replace3(CONTENTSPLIT(15)) & ")" conn.execute(SQL) COUNTER = COUNTER + 1 Loop CONTENT.Close set fso = Nothing conn.Close Set conn = Nothing
31. marts 2005 - 02:46
#3
Har du hotel hos
www.webdomain.dk ? lige før jeg tror det er deres server som gør det!
31. marts 2005 - 08:21
#4
Du kan godt gøre noget i indsættelsen. Jeg ville starte med at sætte # omkring datoen: SQL = "INSERT INTO dyrestatistik (Kundenummer, Dato, FCGram, FCKcal, RefGram1, RefKcal1, RefGram2, RefKcal2, Gram1, Kcal1, Gram2, Kcal2, AntalHanner, AntalTæver, AntalHvalpe, DyrIalt) VALUES (" & replace3(CONTENTSPLIT(0)) & ", #" & replace3(CONTENTSPLIT(1)) & "#, " & replace3(CONTENTSPLIT(2)) & ", " & replace3(CONTENTSPLIT(3)) & ", " & replace3(CONTENTSPLIT(4)) & ", " & replace3(CONTENTSPLIT(5)) & ", " & replace3(CONTENTSPLIT(6)) & ", " & replace3(CONTENTSPLIT(7)) & ", " & replace3(CONTENTSPLIT(8)) & ", " & replace3(CONTENTSPLIT(9)) & ", " & replace3(CONTENTSPLIT(10)) & ", " & replace3(CONTENTSPLIT(11)) & ", " & replace3(CONTENTSPLIT(12)) & ", " & replace3(CONTENTSPLIT(13)) & ", " & replace3(CONTENTSPLIT(14)) & ", " & replace3(CONTENTSPLIT(15)) & ")" Desuden skal formatet være mm-dd-yyyy og det kan jeg ikke se om det er ud fra den dato du har vist.
31. marts 2005 - 12:24
#5
# se det hjalp jo vildt. Hvornår skal man bruge den? svar lige og 1000 tak for hjælpen
31. marts 2005 - 12:39
#6
Der skal # omkring alle datoer (andre databaser bruger '). Dog ikke om datofunktioner. F.eks. insert into enTabel(dato1, dato2) values(#31-03-2005#,now()) update enTabel set dato1=#31-03-2005# where dato2=#01-01-2005# Husk også at tjekke at datoerne bliver indsat rigtigt. Access bruger jo mm-dd-yyyy formatet så vis din tekstfil er med DK format (dd-mm-yyyy) bytter den om på alle dage og måneder. Hvis en af tallene er over 12 kan den dog godt indsætte i DK format. #12-01-2005# bliver indsat som 1 dec 2005 #13-01-2005# bliver indsat som 13 jan 2005
31. marts 2005 - 12:42
#7
1000 tak for hjælpen
Kurser inden for grundlæggende programmering