Hallo
Ich möchte auf einem MS-SQL2005 in base64-codierte Dateien speichern. Dies geht bis zu einer Dateigröße von ca. 200kb (obwohl auch dann schon der Fehler "0" auftritt)
Bei Dateien über ca. 200kb erscheitn der Laufzeitfehler '2498': Sie haben für eines der Argumente einen Ausdruck eingegeben, der nicht den für das Argument erforderlichen Datentyp hat.
Ich habe bereits die Datentypen nvarchar(max), varchar(max), ntext, image ausprobiert, jeweils mit derselben Fehlermeldung. Was mache ich falsch?
Die base64 codierte Datei hat bereits den Datentyp "String" und enthält ja Zahlen, Buchstaben und Zeichen, sodass ein Unicode-Datentyp variabler Länger passen sollte?
Falls nötig hier noch der für die Konvertierung verantwortliche Code:
Function B64EncodeFile(SourcePath As String) As String
Const adTypeBinary = 1
Dim doc As Object: Dim elm As Object: Dim strm As Object
Set strm = CreateObject("ADODB.Stream")
strm.Type = adTypeBinary: strm.Open: strm.LoadFromFile SourcePath
Set doc = CreateObject("MSXML2.DOMDocument")
Set elm = doc.createElement("b64"): elm.DataType = "bin.base64"
elm.nodeTypedValue = strm.Read()
b64encodedfile = elm.text
End Function
Vielen Dank im Voraus
Die Analyse der codierten Zeichen einer knapp 190kb großen pdf-Datei hat ergeben, das sie aus 14300 Zeichen besteht. Leerzeichen gibt es keine.
Da solte ein nvarchar(max) doch drüber lachen ?!