Hur ska jag få in detta i en databas på det smidigaste sättet. Dokumentet uppdateras en gång i minuten Du verkar ha hela rutinen klar för urhämtningen i alla fall. För att då fortsätta så behöver du skapa en sql-sats för varje rad du läser igenom som sedan adderas till databasen. Tack för hjälpen Pelle, självklart skall det se ut så. Jag har använt ditt förslag o modifierat det efter det jag känner igen, men jag får upp följande felmeddelande. Troligtvis är det något fel i databasen, men jag kan inte lokalisera det. Någon som är mer haj på det än vad jag är? Du har gjort rätt med datumfälten om det är access, dock måste strängfält inneslutas med enkelfnuttar ' '. Sen tiden, den får inte inneslutas med # # utan måste ha ' ' i så fall. Lysande, allting är fixat. Man ska inte va ifrån det för länge, minnet är kort.Array, kanske!!
<code>
<%
Dim F, T, TextString, LopNr, Kod
Dim Mess, Nr, Dots, Meddelande
Dim Tid, Datum, Larm
Set F = CreateObject("Scripting.FileSystemObject")
Set T = F.OpenTextFile(Server.MapPath("/") & "/cato/textstream.txt")
Do Until T.AtEndOfLine
TextString = T.ReadLine
LopNr = (left(TextString, 3))
Datum = (mid(TextString, 5,2)) & "-" & (mid(TextString, 7,2)) & "-" & (mid(TextString, 9,2))
Tid = (mid(TextString, 12,5))
Larm = (mid(TextString, 18,2))
Kod = (mid(TextString, 20,3))
Mess = (mid(TextString, 24, 14))
Meddelande = (mid(TextString, 42,13))
Nr = (right(TextString, 1))
Loop
T.Close
%>
</code>Sv: Array, kanske!!
<code>
set con = server.createobject("adodb.connection")
con.open "namnet på din dsn"
Do Until T.AtEndOfLine
' -- din kod här för att ta ut alla fältnamn
sql & "'" & Lopnr & "' " & _
"'" & Datum & "' " & _
"'" & Tid & "' " & _
"'" & Larm & "' " & _
"'" & Kod & "' " & _
"'" & Mess & "' " & _
"'" & replace(Meddelande,"'","'') & "' " & _
"'" & Nr & "' "
con.execute "insert into tabell (lopnr, datum, tid, larm, kod, mess, meddelande, nr)
values(" & sql & ")"
Loop
set con = nothing
</code>
Om du vill att denna rutin skall köras av servern på ett visst intervall så döp filen till .vbs och placera den på intervall med ett AT-kommando. Har du sql-server kan du även lägga in en trigger som kör en asp-fil osv. Men det bygger på att du har egen server. Annars bör du placera denna rutin som en include-fil i någon av de filer som mest frekvent besöks på din server.Sv: Array, kanske!!
Microsoft JET Database Engine fel '80040e10'
Det har inte angetts något värde för en eller flera nödvändiga parametrar.
/Cato/update.asp, line 65
<code>
<%
Dim F, T, TextString, Conn
Dim LopNr, Datum, Tid, Larm
Dim Kod, Mess, Meddelande, Nr
Dim SQL
Set F = CreateObject("Scripting.FileSystemObject")
Set T = F.OpenTextFile(Server.MapPath("/") & "/cato/textstream.txt")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open sConnect
Do Until T.AtEndOfLine
TextString = T.ReadLine
LopNr = (left(TextString, 3))
Datum = "20" & (mid(TextString, 5,2)) & "-" & (mid(TextString, 7,2)) & "-" & (mid(TextString, 9,2))
Tid = (mid(TextString, 12,5))
Larm = (mid(TextString, 18,2))
Kod = (mid(TextString, 20,3))
Mess = (mid(TextString, 24, 14))
Meddelande = (mid(TextString, 42,13))
Nr = (right(TextString, 1))
SQL = "Insert into tblLog (" &_
"LopNr, " &_
"Datum, " &_
"Tid, " &_
"Larm, " &_
"Kod, " &_
"Mess, " &_
"Meddelande, " &_
"Nr) " & _
"VALUES ("
SQL = SQL & LopNr & ", "
SQL = SQL & "#" & Datum & "#, "
SQL = SQL & "#" & Tid & "#, "
SQL = SQL & Larm & ", "
SQL = SQL & Kod & ", "
SQL = SQL & Mess & ", "
SQL = SQL & Meddelande & ", "
SQL = SQL & Nr & ")"
'Response.Write(SQL)
'Response.End
Conn.Execute(SQL)
Loop
Set Conn = nothing
Conn.Close
T.Close
%>
</code>
Om jag stannar proceduren o skriver ut SQL-strängen ser det ut som följer.
Insert into tblLog (LopNr, Datum, Tid, Larm, Kod, Mess, Meddelande, Nr) VALUES ( 1, #2003-10-21#, #08:00#, 29, 123, AA , NÖDLARM12345 , 1)
Tackar på förhand... UffeSv: Array, kanske!!
Nu skall jag inte köra pekpinne men hade du följt mitt exempel så hade alla fält inneslutits med '' och det hade troligen fungerat - med undantag för datumet eventuellt. Du kommer tjäna på att använda den tekniken i längden.Sv: Array, kanske!!