Compartir a través de


Ejecución de operaciones en tablas y vistas con tipos de datos de gran tamaño mediante el adaptador de SQL

El adaptador de SQL permite a los clientes del adaptador leer y actualizar datos en columnas de tipos de datos grandes, es decir, varchar(max), nvarchar(max) o varbinary(max). Para leer datos de estas columnas, los clientes del adaptador pueden usar la operación Seleccionar. Para insertar o actualizar datos en estas columnas, el adaptador expone una operación Set<column_name> , donde <column_name> es el nombre de la columna de tipo varchar(max), nvarchar(max) o varbinary(max).

Además, en SQL Server 2008, puede hacer que la columna varbinay(max) almacene datos no estructurados, como documentos de texto e imágenes. Estos datos no estructurados se denominan datos FILESTREAM. Los datos FILESTREAM se pueden almacenar como archivos en el sistema de archivos. El adaptador de SQL permite al cliente escribir datos FILESTREAM en columnas de tipo varbinary(max). Para obtener más información sobre el almacenamiento de FILESTREAM, consulte Introducción a FILESTREAM.

En este tema se proporciona información sobre determinadas tareas que debe realizar en el equipo que ejecuta SQL Server y el equipo que ejecuta el cliente del adaptador para poder insertar o actualizar datos FILESTREAM. En este tema también se proporcionan instrucciones sobre cómo realizar operaciones set<column_name> para insertar datos FILESTREAM.

Nota:

Si está realizando operaciones en tablas que tienen columnas de tipos definidos por el usuario, asegúrese de consultar Operaciones en tablas y vistas con User-Defined Tipos mediante el adaptador de SQL antes de empezar a desarrollar la aplicación.

Prerrequisitos

Debe realizar las siguientes tareas en el equipo que ejecuta SQL Server y el equipo que ejecuta el cliente del adaptador.

  • En el equipo que ejecuta SQL Server

  • En el equipo que ejecuta el cliente del adaptador

    • Debe tener instalado el SDK de conectividad de cliente de SQL. Puede instalar el SDK de conectividad de cliente de SQL ejecutando el programa de instalación de SQL Server 2008 y seleccionando el SDK de conectividad de cliente de SQL en la página de Selección de características del asistente. El adaptador utiliza el sqlncli10.dll, que se instala con el SDK de Conectividad del Cliente de SQL, para realizar operaciones de FILESTREAM.

    • Debe configurar MSDTC en el equipo que ejecuta el cliente del adaptador. Para obtener instrucciones sobre cómo configurar MSDTC, consulte Configuración de MSDTC en SQL Server y cliente de adaptador.

    Una vez completadas estas tareas, todos están configurados para insertar o actualizar datos FILESTREAM en tablas de base de datos de SQL Server 2008.

Cómo este tema demuestra las operaciones con grandes tipos de datos

Para demostrar cómo realizar operaciones set<column_name> en tablas con tipos de datos de gran tamaño, tome una tabla, Registros, que tiene columnas Id y Documento. La columna Id es de tipo uniqueidentifier y acepta un GUID. La columna Document es del tipo VARBINARY(MAX). Supongamos que la columna Id ya tiene un GUID "438B7B4C-5491-409F-BCC1-78817C399EC3". Para actualizar la columna Documento, el adaptador expone la operación SetDocument.

Nota:

Para SQL Server 2008, para demostrar las operaciones FILESTREAM, supongamos que la columna Document puede almacenar datos FILESTREAM.

Cómo realizar operaciones en una base de datos de SQL Server

Realizar una operación en una base de datos de SQL Server mediante el adaptador de SQL con BizTalk Server implica tareas de procedimientos descritas en Bloques de creación para desarrollar aplicaciones de BizTalk con el adaptador de SQL. Para realizar operaciones en tablas con tipos de datos de gran tamaño, estas tareas son:

  1. Cree un proyecto de BizTalk y genere el esquema para la operación Establecer<column_name> . Para este tema, genere esquema para la operación SetDocument para la tabla Records .

  2. Cree mensajes en el proyecto de BizTalk para enviar y recibir mensajes de la base de datos de SQL Server.

  3. Cree una orquestación para invocar la operación SetDocument en la tabla Registros.

  4. Compile e implemente el proyecto de BizTalk.

  5. Configure la aplicación de BizTalk mediante la creación de puertos de envío y recepción físicos.

  6. Inicie la aplicación de BizTalk.

    En este tema se proporcionan instrucciones para realizar estas tareas.

Ejemplo basado en este tema

Se proporciona un ejemplo de FILESTREAMOperation basado en este tema con el paquete de adaptadores de BizTalk. Para obtener más información, vea Ejemplos para el adaptador de SQL.

Generar esquema

Para demostrar cómo actualizar valores en columnas de tipos de datos grandes, genere esquema para la operación SetDocument de la tabla Records. Debe crear un proyecto de BizTalk y usar el complemento de Consumo de Servicio de Adaptador para generar el esquema. Consulte Recuperación de metadatos para operaciones de SQL Server en Visual Studio mediante el adaptador de SQL para obtener más información sobre cómo generar el esquema.

Definición de mensajes y tipos de mensajes

El esquema que generó anteriormente describe los "tipos" necesarios para los mensajes de la orquestación. Normalmente, un mensaje es una variable, el tipo para el que se define mediante el esquema correspondiente. Ahora debe crear mensajes para la orquestación y vincularlos a esquemas generados en el paso anterior.

  1. Agregue una orquestación al proyecto de BizTalk. En el Explorador de soluciones, haga clic con el botón derecho en el nombre del proyecto de BizTalk, seleccione Agregar y, a continuación, haga clic en Nuevo elemento. Escriba un nombre para la orquestación de BizTalk y haga clic en Agregar.

  2. Abra la ventana Vista de orquestación del proyecto de BizTalk, si aún no está abierta. Para ello, haga clic en Ver, seleccione Otras ventanas y, a continuación, haga clic en Vista de orquestación.

  3. En la vista orquestación, haga clic con el botón derecho en Mensajes y, a continuación, haga clic en Nuevo mensaje.

  4. Haga clic con el botón derecho en el mensaje recién creado y, a continuación, seleccione Ventana Propiedades.

  5. En el panel Propiedades del Message_1, haga lo siguiente:

    Usa esto Para
    Identificador Escriba Request
    Tipo de mensaje En la lista desplegable, expanda Esquemas y, a continuación, seleccione SetOperation.TableOperation_dbo_Records.SetDocument, donde SetOperation es el nombre del proyecto de BizTalk. TableOperation_dbo_Records es el esquema generado para la operación SetDocument en la tabla Registros.
  6. Repita el paso 2 para crear un nuevo mensaje. En el panel Propiedades del nuevo mensaje, haga lo siguiente:

    Usa esto Para
    Identificador Escriba Response
    Tipo de mensaje En la lista desplegable, expanda Esquemas y, a continuación, seleccione SetOperation.TableOperation_dbo_Records.SetDocumentResponse.

Configuración de la orquestación

Debe crear una orquestación de BizTalk para usar BizTalk Server para realizar una operación en SQL Server. En esta orquestación, se deja un mensaje de solicitud en una ubicación de recepción definida. El adaptador de SQL consume este mensaje y lo pasa a SQL Server. La respuesta de SQL Server se guarda en otra ubicación. Debe incluir formas enviar y recibir para enviar mensajes a SQL Server y recibir respuestas, respectivamente. Una orquestación de ejemplo para la operación SetDocument es similar a la siguiente:

Orquestación para realizar operaciones FILESTREAM

Agregar formas de mensaje

Asegúrese de especificar las siguientes propiedades para cada una de las formas de mensaje. Los nombres enumerados en la columna Shape son los nombres de las formas de mensaje tal como se muestran en la orquestación recién mencionada.

Forma Tipo de forma Propiedades
RecibirMensaje Recibir - Establecer nombre en ReceiveMessage
- Establecer Activar en True
EnviarMensaje Enviar - Establecer nombre en SendMessage
RecibirRespuesta Recibir - Establecer Name en ReceiveResponse
- Establecer Activar en False
SendResponse Enviar - Establecer nombre en SendResponse

Agregar puertos

Asegúrese de especificar las siguientes propiedades para cada uno de los puertos lógicos. Los nombres enumerados en la columna Puerto son los nombres de los puertos tal como aparecen en la orquestación.

Puerto Propiedades
MessageIn - Establecer identificador en MessageIn
- Configura el tipo en MessageInType
- Establecer el patrón de comunicación en unidireccional
- Establecer la dirección de comunicación para recibir
LOBPort - Establecer identificador en LOBPort
- Establecer el tipo en LOBPortType
- Establecer el patrón de comunicación en Request-Response
- Establecer la dirección de comunicación en enviar y recibir
ResponseOut - Establecer identificador en ResponseOut
- Establecer el tipo en ResponseOutType
- Establecer el patrón de comunicación en unidireccional
- Establecer la dirección de comunicación en Enviar

Especificar mensajes para formas de acción y conectarlos a puertos

En la tabla siguiente se especifican las propiedades y sus valores que se deben establecer para especificar mensajes para las formas de acción y para vincular los mensajes a los puertos. Los nombres enumerados en la columna Shape son los nombres de las formas de mensaje tal como se muestran en la orquestación mencionada anteriormente.

Forma Propiedades
RecibirMensaje - Establecer mensaje en solicitud
- Configurar Operation en MessageIn.FileStream.Request
EnviarMensaje - Establecer mensaje en solicitud
- Fijar Operación en LOBPort.FileStream.Request
RecibirRespuesta - Establecer mensaje en respuesta
- Establecer operación en LOBPort.FileStream.Response
SendResponse - Establecer mensaje en respuesta
- Configurar Operation en ResponseOut.FileStream.Request

Después de especificar estas propiedades, las formas de mensaje y los puertos están conectados y la orquestación se completa.

Ahora debe compilar la solución de BizTalk e implementarla en BizTalk Server. Para obtener más información, vea Compilar y ejecutar orquestaciones.

Configuración de la aplicación de BizTalk

Después de implementar el proyecto de BizTalk, la orquestación que creó anteriormente aparece en el panel Orquestaciones de la consola de administración de BizTalk Server. Debe usar la consola de administración de BizTalk Server para configurar la aplicación. Para ver un tutorial, consulte Tutorial: Implementación de una aplicación básica de BizTalk.

La configuración de una aplicación implica:

  • Selección de un host para la aplicación.

  • Asignación de los puertos que creó en la orquestación a puertos físicos en la consola de administración de BizTalk Server. Para esta orquestación, debes:

    • Defina una ubicación en el disco duro y un puerto de archivo correspondiente donde dejará un mensaje de solicitud. La orquestación de BizTalk consumirá el mensaje de solicitud y lo enviará a la base de datos de SQL Server.

    • Defina una ubicación en el disco duro y un puerto de archivo correspondiente donde la orquestación de BizTalk depositará el mensaje de respuesta que contiene la respuesta de la base de datos SQL Server.

    • Defina una WCF-Custom física o WCF-SQL puerto de envío para enviar mensajes a la base de datos de SQL Server. También debe especificar la acción en el puerto de envío. Para obtener información sobre cómo crear puertos, consulte Configuración manual de un enlace de puerto físico al adaptador de SQL.

      Importante

      La operación para escribir datos FILESTREAM debe realizarse dentro de una transacción. Por lo tanto, asegúrese de que la propiedad de enlace UseAmbientTransaction esté establecida en True en el puerto de envío WCF-Custom o WCF-SQL. Para obtener más información sobre la propiedad de enlace, vea Leer sobre el adaptador de BizTalk para las propiedades de enlace del adaptador de SQL Server.

      Importante

      Para realizar una operación para insertar datos FILESTREAM, siempre debe usar la autenticación de Windows para conectarse a SQL Server en el WCF-Custom o WCF-SQL puerto de envío. Por lo tanto, en la pestaña Credenciales del cuadro de diálogo propiedades del puerto, seleccione la opción No usar inicio de sesión único y deje en blanco el nombre de usuario y la contraseña.

      Nota:

      La generación del esquema mediante el complemento "Consume Adapter Service BizTalk Project" también crea un archivo de vinculación que contiene información sobre los puertos y las acciones a configurar para esos puertos. Puede importar este archivo de enlace desde la consola de administración de BizTalk Server para crear puertos de envío (para llamadas salientes) o puertos de recepción (para llamadas entrantes). Para obtener más información, consulte Configuración de un enlace de puerto físico mediante un archivo de enlace de puertos para usar el adaptador de SQL.

Iniciar la aplicación

Debe iniciar la aplicación de BizTalk para realizar la operación SetDocument en la tabla Registros . Para obtener instrucciones sobre cómo iniciar una aplicación de BizTalk, vea Cómo iniciar una orquestación.

En esta fase, asegúrese de:

  • El puerto de recepción FILE para recibir mensajes de solicitud para la orquestación está en funcionamiento.

  • El puerto de envío "FILE" para recibir los mensajes de respuesta de la orquestación está en funcionamiento.

  • El puerto de envío WCF-Custom o WCF-SQL para enviar mensajes a la base de datos SQL Server está en funcionamiento.

  • La orquestación de BizTalk para la operación se está ejecutando.

Ejecución de la operación

Después de ejecutar la aplicación, debe dejar caer un mensaje de solicitud en la ubicación de recepción de archivos FILE. El esquema del mensaje de solicitud debe ajustarse al esquema de la operación SetDocument que generó anteriormente. Por ejemplo, el mensaje de solicitud para actualizar la columna Documento es:

<SetDocument xmlns="http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/Records">
  <Filter>WHERE Id='438B7B4C-5491-409F-BCC1-78817C399EC3'</Filter>
  <Data>UwBlAHQAdgBfAHYAYQByAGIAaQBuAGEAcgB5AE0AQQBYAA==</Data>
</SetDocument>

Importante

El Filter elemento debe contener la cláusula WHERE en función de la cual el adaptador actualiza los registros. El Data elemento debe contener un valor codificado en base64 que desee insertar en la columna Documento.

Este mensaje de solicitud actualiza la columna Documento con el valor especificado. La orquestación consume el mensaje y lo envía a la base de datos de SQL Server. La respuesta de la base de datos de SQL Server se guarda en la otra ubicación FILE definida como parte de la orquestación. Por ejemplo, la respuesta de la base de datos de SQL Server para el mensaje de solicitud anterior es:

<?xml version="1.0" encoding="utf-8" ?>
<SetDocumentResponse xmlns="http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/Records" />

El adaptador envía una respuesta vacía para la operación Set<column_name> .

Procedimientos recomendados

Después de implementar y configurar el proyecto de BizTalk, puede exportar los valores de configuración a un archivo XML denominado archivo de enlace. Una vez que genere un archivo de enlace, puede importar los valores de configuración del archivo, de modo que no sea necesario crear elementos como los puertos de envío y recibir puertos para la misma orquestación. Para obtener más información sobre la vinculación de archivos, consulte Reutilización de vínculos de adaptador.

Véase también

Desarrollo de aplicaciones de BizTalk mediante el adaptador de SQL