Announcement

Collapse
No announcement yet.

BDE und ODBC - max. Blobgröße?

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

  • BDE und ODBC - max. Blobgröße?

    Hallo zusammen,

    wenn ich via BDE (5.2.0.2) und ODBC auf MSSQL 2000 zugreife kann ich keine Blobfelder (Datentyp Text) speichern, die größer als 32K sind. Via Access funktioniert's. Ich habe in der BDE-Verwaltung bereits den Parameter Blob Size auf 128 gesetzt, aber das blieb leider ohne Wirkung. Gibt es diesbezüglich bei der BDE irgendwelche Beschränkungen?

    Danke
    Gerhard

  • #2
    Hallo,

    &gt;...via BDE (5.2.0.2) und ODBC auf MSSQL 2000 zugreife ...<br>
    &gt;..Ich habe in der BDE-Verwaltung bereits den Parameter Blob Size..

    da passt irgend etwas nicht zusammen. Der Eintrag <i>BLOB SIZE</i> steht nur beim nativen SQLLink-Treiber <i>MSSQL</i> zur Verfügung (kein ODBC), aber der ODBC-Treiber (siehe BDE-Verwaltung | Konfiguration | Treiber | ODBC | SQL Server) kennt nur die Eigenschaft <i>BLOBS TO CACHE</i>. Welche exakte Fehlermeldung (Fehlernummer) wird ausgelöst?

    &gt;Gibt es diesbezüglich bei der BDE irgendwelche Beschränkungen?

    Wenn der Zugriff über den SQLLinks-Treiber <i>MSSQL</i> erfolgt, wird von Borland offiziell nur der MS SQL Server 6.5 unterstützt. Ab dem MS SQL Server 7 sieht Borland den Zugriff über ADO (ADO Express alias dbGo) vor. Beim <i>Stream</i>-Objekt von ADO gibt es keine Größenbeschränkungen zum Zugriff auf BLOb-Daten

    Comment


    • #3
      Beim Zugriff über ODBC ist die Blob-Größe auf maximal 1 MB begrenzt
      (http://community.borland.com/article/0,1410,19271,00.html).

      Probier ebenfalls mal den Parameter Blobsize auf 32000 zu setzen

      Comment


      • #4
        Hallo Herr Kosch,

        ich verwende nicht den SQL-Link Treiber für MSSQL, sondern ich habe einfach eine ODBC-Datenquelle mit dem ODBC Treiber 'SQL-Server' im ODBC-Administrator eingerichtet. Diese ODBC-Datenquelle sehe ich ja dann im BDE-Administrator (Typ 'SQL-Server') und hier wird dann auch die Option Blob Size angeboten.

        Für das Speichern der Daten verwende ich eine parametrisierte TQuery und beim Setzen der Parameters 'Wert' via

        TQuery(aDataset).ParamByName('Wert').AsString := aValue;

        erhalte ich ab einer bestimmten Größe von aValue (aValue ist vom Typ AnsiString) folgende Fehlermeldung:

        'Allgemeiner SQL-Fehler [Microsoft][ODBC SQL Server Driver]. Die Zeichenfolgendaten wurden rechts abgeschnitten.'

        Ich erhalte den Fehler also bereits beim Zuweisen des Parameterwerts und nicht erst beim Speichern in die Datenbank.

        Ich habe auch versucht den Parameterwert mit AsBlob zuzuweisen

        TQuery(aDataset).ParamByName('Wert').AsBlob := aValue;

        Dann gibt es zwar keinen Fehler beim zuweisen des Parameterwertes aber leider wird nichts in der Datenbank gespeichert.

        Sollte ich statt 'text' einen anderen Datentyp nehmen oder warum fkt. die ganze Sache nicht???

        Nochmals Danke für die Hilfe

        Gerhar

        Comment


        • #5
          Danke für die Antwort.
          Die Begrenzung auf 1MB wäre kein Problem. Die Blob Size zu erhöhen hat einfach keine Wirkung.

          Gerhar

          Comment


          • #6
            Probier mal über eine Datei zu gehen:

            TQuery(aDataset).ParamByName('Wert').LoadFromFile( FileName, ftBlob)

            Comment


            • #7
              Hallo

              ich habe die Lösung des Problems gefunden:

              statt den Parameter mit AsString oder AsBlob zuzuweisen muss man AsMemo verwenden.

              Danke nochmal für die Hilfe

              Gruß

              Gerhar

              Comment

              Working...
              X