Announcement

Collapse
No announcement yet.

Byte-Array (Bild) mittels Stored Procedure in DB schreiben

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Byte-Array (Bild) mittels Stored Procedure in DB schreiben

    Hallo,

    ich hänge grade an einem kniffligen Problem und hoffe, dass ich hier den ein oder anderen Lösungstipp kriege.

    Ich möchte mittels einer Stored Procedure ein Byte-Array (Bild) in die Datenbank schreiben. Ich programmiere in VB.Net auf einem Mobilen Gerät (WM5, VS2008, .Net Compact Framework 3.5). Von der Tabelle habe ich mittels DataSet/TableAdapter ein Objekt erzeugt. Über dieses Objekt wird die Stored Procedure aufgerufen.

    Folgende Exception tritt beim "Übertragen" zum SQL Server auf:
    Der eingehende Tabular Data Stream (TDS) für das RPC-Protokoll (Remote Procedure Call) ist nicht richtig. Parameter 1 ("@inData"): Der 0xA5-Datentyp hat eine ungültige Datenlänge oder Metadatenlänge.

    @inData ist dabei das Byte-Array. Die Spalte in der Tabelle ist vom Typ varbinary(MAX). Die Stored Procedure funktioniert, das habe ich getestet.

    Der Fehler tritt im automatisch generiertem Code auf, bei der ExecuteNonQuery()-Funktion

    Ich kann mit diesem Fehler leider überhaupt nichts anfangen. Verbinde ich mich direkt zur Datenbank (Ohne TableAdapter und Stored Procedure) ist das Schreiben und Lesen problemlos möglich.

    Kann mir jemand bei diesem Problem helfen. Vielen Dank

    Viele Grüße
    Tim

  • #2
    Kann dir da zwar nicht direkt helfen, aber frage mal in der Newsgroup "microsoft.public.de.german.entwickler.dotnet.date nbank" (newsserver: msnews.microsoft.com) nach, da treiben sich immer ein paar Profis herum

    bye,
    Helmut

    PS: ...datenbank... gehört im Forumsnamen natürlich ohne Leerzeichen, das wird aber vom Editor hier anscheinend automatisch eingefügt - ich kann's echt nicht ohne Leerzeichen hinkriegen.

    [edit] hab's gerade gesehen, dass passiert in der Vorschau, wo er dann nachher das Wort trennen muss

    Comment


    • #3
      Hallo,

      also der Fehler kommt auch, wenn ich die Stored Procedure direkt aufrufe (ohne DataSet / TableAdapter)

      Comment


      • #4
        Grundsätzlich ist das zunächst mal keine Meldung vom SQL Server selber, sondern eine von .NET bzw. ich würde mal wegen TDS auf Delphi tippen.

        Da Du schriebst, die SP funktioniert und ist getesten, ist die ja nicht das Problem und somit wird Dir hier erst mal keiner weiter helfen können (falls nicht zufällig hier ein Delphi-Programmierer rumläuft).

        Frag doch mal hier im .NET/Delphi Forum nach. z.B.
        http://entwickler-forum.de/forumdisplay.php?f=9
        Olaf Helper

        <Blog> <Xing>
        * cogito ergo sum * errare humanum est * quote erat demonstrandum *
        Wenn ich denke, ist das ein Fehler und das beweise ich täglich

        Comment


        • #5
          Was mir da mal einfällt, weil "Datentyp" in der Fehlermeldung vorkommt: für sowas wie varchar(MAX) muss unbedingt der NativeClient verwendet werden, die "älteren" Versionen des MDAC kennen diesen Typ nämlich noch nicht.

          bye,
          Helmut

          Comment


          • #6
            Nach einigen Tests konnte ich das Problem nun eingrenzen. Der Fehler tritt nur unter Windows Mobile mit dem Compact Framework auf, unter XP funktioniert es problemlos. Der Code ist ja der gleiche.

            Comment

            Working...
            X