Tilføje binære (binary) data til MySQL database
Er der nogen der har koden til at tilføje binære (binary) data til MySQL database, nedenstående kan bruges til Access (mdb) database, men det virker altså ikke til MySQL:Jeg betaler gerne, hvis der er en der kan komme med en løsning!
<%
Const adTypeBinary = 1
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary
objStream.LoadFromFile Server.Mappath("fil.gif")
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "binarydb", strConn, 2, 2
rs.AddNew
rs("writer") = session("navn")
rs("filedata").AppendChunk objStream.Read
rs.Update
rs.Close
Set rs = Nothing
objStream.Close
Set objStream = Nothing
%>
Jeg har prøvet med nedenstående og det bliver også tilføjet til min MySQL database, men jeg kan ikke få udskrivet det rigtigt fra databasen:
<%
SQLserveradr = "localhost"
SQLdatabase = "test"
SQLlogin = "admin"
SQLpassword = "admin"
strConn = "driver={MySql};server="& SQLserveradr &";database="& SQLdatabase & ";uid="& SQLlogin &";pwd="& SQLpassword & ";OPTION=16386"
'String to byte string conversion
Function getByteString(StringStr)
For i = 1 to Len(StringStr)
char = Mid(StringStr,i,1)
getByteString = getByteString & chrB(AscB(char))
Next
End Function
'Byte string to string conversion
Function getString(StringBin)
getString =""
For intCount = 1 to LenB(StringBin)
getString = getString & chr(AscB(MidB(StringBin,intCount,1)))
Next
End Function
Function StringToBinary(S)
Dim i, ByteArray
For i=1 To Len(S)
ByteArray = ByteArray & ChrB(Asc(Mid(S,i,1)))
Next
StringToBinary = ByteArray
End Function
Const adTypeBinary = 1
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary
objStream.LoadFromFile Server.Mappath("fil.gif")
Function Validate(String)
if String = "" then
Validate = " "
else
Validate = Replace(Replace(String,"'","''"),Chr(0),"")
end if
End Function
Function ValidateNumber(String)
if not IsNumeric(String) or String = "" then
ValidateNumber = 0
else
ValidateNumber = String
end if
End Function
SQL = "INSERT INTO binarydb (" &_
"filedata" &_
") VALUES (" &_
"'" & Validate(getString(objStream.Read)) & "'" &_
")"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strConn
Conn.Execute SQL
Conn.Close
Set Conn = Nothing
objStream.Close
Set objStream = Nothing
%>
Jeg bruger følgende til at udskrive fra databasen, men det bliver som sagt ikke udskrevet rigtigt:
<%
Set objRS = Server.CreateObject("ADODB.Recordset")
strQ = "SELECT * FROM binarydb order by id desc"
objRS.Open strQ, strConn, 2, 3, &H0001
if not objRS.EOF then
response.binaryWrite getByteString(getString(objRS("filedata")))
else
response.redirect "1x1.gif"
end if
objRS.Close
Set objRS = Nothing
%>
