Support for OpenEdge ABL BLOB data type
- Last Updated: March 30, 2020
- 2 minute read
- OpenEdge
- Version 12.2
- Documentation
The DataServer provides support for the OpenEdge ABL BLOB (Binary
Large Object) data type by mapping to equivalent data types in the
MS SQL Server. This support is limited to MS SQL Server 2005 and
later versions. The ability to map to an OpenEdge BLOB data
type enables you to:
- Migrate to an OpenEdge database with
BLOBdata types to an MS SQL Server database asVARBINARY(MAX)and to pull the server types back as aBLOBdate types into the schema holder. For more information on enabling the BLOB data type during a schema migration, see Migrating an OpenEdge database to MS SQL Server. - Pull MS SQL Server
VARBINARY(MAX),IMAGE, orVARBINARY(MAX) FILESTREAMas OpenEdgeBLOBdata type into the schema holder by using the Default to OpenEdge LOB option. - Read and write data to and from an MS SQL Server database that
is
BLOB-enabled by using ABLASSIGNandCOPY-LOBoperations. - Pass a
BLOBas anINPUTor anOUTPUTparameter to the stored procedure. You can use the OpenEdgeMEMPTRandLONGCHARdata types as parameters to RUN STORED-PROCEDURE to mapBLOBandCLOBserver types, respectively. For more information on RDBMS Stored Procedure Details, see Chapter 1, RDBMS Stored Procedure Details on page 1.Note: Do not refer to RUN STORED-PROCEDURE as an RDBMS transaction. It is a part of a transaction but is not in itself inherently a transaction. The ability to passLOBparameters does not give you the ability to run stored procedures.
BLOB and CLOB data types using STARTING
AT, FOR, and OVERLAY AT n [TRIM] operations.
This capability does not extend to the SQL server legacy native
data type, IMAGE.When the Default to OpenEdge LOB for: BLOBs is selected in Pre-Selection Criteria of the schema pull (see Independent OpenEdge MS SQL Server Schema Pull), it breaks the backward compatibility of the MS SQL Server DataServer which previously mapped server LOB types to the OpenEdge CHARACTER data type. Since the Adjust Schema operation also expects CHARACTER type mapping for server LOB types, an Adjust Schema operation fails to "adjust", those server LOBs that are now mapped to BLOBs, back to RAW mappings. Since this schema adjustment will not occur, server BLOBs will now be mapped to OpenEdge BLOBs and will be useable as LOB objects in your OpenEdge DataServer application. LOB objects are manipulated differently from the original RAW data types and the requirements for your BLOB-mapped application may be different from your original database if such server LOBs were originally migrated from RAW data types.
For more information, on using the ASSIGN and COPY-LOB statements,
see OpenEdge Development: ABL Reference.