webForumDet fria alternativet

Fel i INSERT INTO

ASP

3 svar · 213 visningar · startad av devotion

Medlem sedan jan. 20013 582 inlägg
Frågan#1

:)
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

Medlem sedan juni 200032 967 inlägg
#2
	strDiscount = Replace(Trim(Mid(strLine, 101, 5)), "'", "''")
	if strDiscount = "" then strDiscount = 0

Mvh :)

Medlem sedan nov. 20017 144 inlägg
#3

Eller skulle man kunna göra så här:

strDiscount = Replace(Trim(Mid(strLine, 101, 5)), "'", "''")
if not isnumeric(strDiscount) then strDiscount = 0
Medlem sedan jan. 20013 582 inlägg
#4

:) :) :)
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....

255 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)