Er der nogen der har koden til at tilføje binære (binary) data til MySQL
database:
Jeg betaler gerne, hvis der er en der kan komme med en løsning!
Dette kan bruges til Access (mdb) database, men det virker altså ikke til
MySQL:
<%
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å udskrevet 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
%>
Håber der er nogen, der kan hjælpe mig.
|