Vad får du för fel? Det är alltid intressant att veta i dessa sammanhang.
mySQL = "INSERT INTO tblImagies (uImage)"
mySQL = mySQL & " VALUES ('" & theField.Data & "')"
MyConn.Execute MySql,,128
kanske fungerar bättre.
11 svar · 294 visningar · startad av Nson
Nån som har fått ABCUpload att funka med MySQL. Alltså att spara som blob's.
Har testat det medföljande exemplet men får ett fel på raden som skall skriva in data i databasen.
Vore kul om nån visste hur jag skall få det att funka.
{form.asp}
<html>
<body>
<form method="post" action="writeSql.asp" enctype="multipart/form-data">
<input type="file" name="filefield"><br>
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>
{writeSQL.asp}
<%
Server.ScriptTimeout = 300 ' five minutes
Set theForm = Server.CreateObject("ABCUpload4.XForm")
Set theField = theForm("filefield")(1)
' Create new database connection
Set MyConn = Server.CreateObject("ADODB.Connection")
MyConn.Open "Driver={mySQL};" & \_
"Server=localhost;" & \_
"Database=Users;"
mySQL = "INSERT INTO tblImagies (uImage)"
mySQL = mySQL & " VALUES (" & theField.Data & ");"
set myRS = MyConn.Execute(MySql)
' ->
%>
Vad får du för fel? Det är alltid intressant att veta i dessa sammanhang.
mySQL = "INSERT INTO tblImagies (uImage)"
mySQL = mySQL & " VALUES ('" & theField.Data & "')"
MyConn.Execute MySql,,128
kanske fungerar bättre.
Får följande fel:
Error Type:
Microsoft VBScript runtime (0x800A000D)
Type mismatch
/test/writeSql.asp, line 14
Alltså inte från sql utan det ser mer ut som nåt annat ?
/Nson
vilken är rad 14 då?
Fick just följande meddelande från dem som gjort komponenten. Förstår inte så där hejdundrans mycket mer hur jag skall få det o o funka men någaon kanske kan tipsa mig:
"I'm not sure what to suggest here. We're not experts with mySQL. However
remember the field data is an array of raw bytes so you're likely to need to
encode it in some way before you can insert it into a SQL string."
Det måste vara thefield.data som inte passar in i sammanhanget. Jag vet inget om ABCUpload så jag har ingen aning egentligen, men du kan ju testa
mySQL = mySQL & " VALUES ('" & cstr(theField.Data) & "')"
Du kan nog bortse från mitt förra inlägg. Skrev det innan jag såg array of raw bytes.
Om det är en vanlig array så borde detta gå
mySQL = mySQL & " VALUES ('" & join(theField.Data) & "')"
Då åkte jag på
Error Type:
Microsoft VBScript runtime (0x800A01CA)
Variable uses an Automation type not supported in VBScript
Tyvärr så kan jag inte hjälpa något mer i denna fråga.
Du måste använda Recordset för att skicka in datan i databasen. Har för mig att Connection-objectet både har en begränsning för mängden data man kan skicka samt att den inte stödjer binär INSERT. Jag har iaf aldrig lyckats få in ett jota.
Tillägg: Kika gärna på Stream-objektet!