strDiscount = Replace(Trim(Mid(strLine, 101, 5)), "'", "''")
if strDiscount = "" then strDiscount = 0
Mvh :)
3 svar · 213 visningar · startad av devotion
:)
Hej!
Har följande kod för att läsa in en textfil i en databas.
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>addSolar</title>
</head>
<body>
<%
Response.write("<div id=""myMess"">Vänta, skriver till databasen...</div>")
Response.write("<div id=""progress""></div>")
Response.Flush()
dim objConn, objRS, strLine, strArticleCategory, strArticleCategoryName, strDiscount, strSQL, intCounter, strPath
strPath = Trim(Replace(Request.Form("textFile"), "'", "''"))
Response.Write(strPath)
intCounter = 0
set objFSO = Server.CreateObject("Scripting.Filesystemobject")
set objFile = objFSO.OpenTextFile (strPath)
Set objConn = Server.CreateObject("ADODB.Connection")
Set objRS = Server.CreateObject("ADODB.Recordset")
ObjConn.Open = "DSN=IntranetSydostel"
while not objFile.atendofstream
intCounter = intCounter +1
if intCounter mod 100 = 0 then
Response.write ("<script>document.getElementById(""progress"").innerHTML=""" & intCounter & """;</script>")
Response.flush
end if
strLine = objFile.ReadLine
strArticleCategory = Replace(Trim(Mid(strLine, 1, 4)), "'", "''")
strArticleCategoryName = Replace(Trim(Mid(strLine, 24, 30)), "'", "''")
strDiscount = Replace(Trim(Mid(strLine, 101, 5)), "'", "''")
strSQL = "INSERT INTO tblDiscount (articleCategory, articleCategoryName, articleDiscount) VALUES ('" & strArticleCategory & "', '" & strArticleCategoryName & "', " & strDiscount & ")"
objConn.Execute strSQL,,128
wend
objFile.close
set objFile = nothing
set objFSO = nothing
objConn.Close
Set objConn = Nothing
Response.write("<script>document.getElementById(""myMess"").innerHTML=""Rabattavtalet har lagrats i databasen! "";</script>")
%>
</body>
</html>
Fungerar utmärkt i nästan alla fall. Får dock ett problem om en varugrupp saknar rabattsats. Dvs det står inget där jag har definierat att det ska stå något. Jag vill ju att det ska skrivas "0" om det är "tomt" Det går ju att manuellt ändra i textfilen men finns det inget sätt att automatisera??
Felet blir:
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i INSERT INTO-uttryck.
/articles/administration/addSolarDiscount.asp, rad 51
mvh
strDiscount = Replace(Trim(Mid(strLine, 101, 5)), "'", "''")
if strDiscount = "" then strDiscount = 0
Mvh :)
Eller skulle man kunna göra så här:
strDiscount = Replace(Trim(Mid(strLine, 101, 5)), "'", "''")
if not isnumeric(strDiscount) then strDiscount = 0
:) :) :)
Som vanligt var det ju ingen svår lösning...
TACK!
Mvh
Hmm såg precis att det fanns två svar...
Fungerar med @nders lösning, men........
Väntar med att klarmarkera....