freshnet 0 Geschrieben 18. März 2013 Melden Teilen Geschrieben 18. März 2013 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 ?! Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.