Informix Vbnet Drivers 9

IBM 򔻐򗗠򙳰 Versión 9.5 Data Server Provider for .NET para Informix Dynamic Server SC11-3674-00 IBM 򔻐򗗠򙳰 Versión 9.5

Views 472 Downloads 8 File size 8MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

IBM

򔻐򗗠򙳰

Versión 9.5

Data Server Provider for .NET para Informix Dynamic Server

SC11-3674-00

IBM

򔻐򗗠򙳰

Versión 9.5

Data Server Provider for .NET para Informix Dynamic Server

SC11-3674-00

Nota: Antes de utilizar esta información y el producto al que da soporte, lea la información contenida en el apartado “Avisos” en la página B-1.

Esta publicación es la traducción del original inglés IBM Data Server Provider for .NET for Informix Dynamic Server Version 9.5, (SC23-7688-00). Este documento contiene información sobre productos patentados de IBM. Se proporciona según un acuerdo de licencia y está protegido por la ley de la propiedad intelectual. La información contenida en esta publicación no incluye ninguna garantía de producto, por lo que ninguna declaración proporcionada en esta publicación deberá interpretarse como tal. Al enviar información a IBM, le otorga a IBM un derecho no exclusivo a utilizar o distribuir dicha información en la forma en que IBM considere adecuada, sin contraer por ello ninguna obligación con el remitente. © Copyright International Business Machines Corporation 2003, 2007. Reservados todos los derechos.

Contenido Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii En esta introducción . . . . . . . . . . . . Acerca de este manual . . . . . . . . . . . Convenios de la documentación . . . . . . . . Convenios tipográficos . . . . . . . . . . Señalización para funciones, productos y plataformas Convenios para código de ejemplo . . . . . . Documentación adicional . . . . . . . . . . . Cumplimiento de los estándares industriales . . . . IBM agradece sus comentarios . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

vii vii vii vii . . . . . . . . . . . . . . . . . . . . viii . . . . . . . . . . . . . . . . . . . . viii . . . . . . . . . . . . . . . . . . . . ix . . . . . . . . . . . . . . . . . . . . ix . . . . . . . . . . . . . . . . . . . . ix

Capítulo 1. Visión general del IBM Data Server Provider for .NET para Informix Dynamic Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1 ¿Qué es el IBM Data Server Provider for.NET? . . . . . . . . . . Entornos de programación soportados . . . . . . . . . . . . . Soporte al acceso a datos con Visual Studio . . . . . . . . . . . Soporte para IPv6 . . . . . . . . . . . . . . . . . . . . Preparación del servidor de la base de datos . . . . . . . . . . . Visión general de la biblioteca de clases IBM Data Server Provider for .NET Seguridad de las hebras de los tipos de proveedor . . . . . . . . . Requisitos de los espacios de nombres . . . . . . . . . . . . . Conexión a una base de datos . . . . . . . . . . . . . . . . Modalidades de base de datos con .NET . . . . . . . . . . . . Reconciliación de los cambios de DataSet con la base de datos . . . . . La agrupación de conexiones . . . . . . . . . . . . . . . . Establecimiento del permiso FullTrust . . . . . . . . . . . . . Utilización de marcadores de parámetro ? . . . . . . . . . . . . Matrices de parámetros . . . . . . . . . . . . . . . . . . Llamada de los procedimientos almacenados . . . . . . . . . . . Uso de las transacciones distribuidas . . . . . . . . . . . . . Codificación genérica con ADO.NET Common Base Classes . . . . . . Migración desde IBM Informix .NET Provider . . . . . . . . . . Mensajes de error . . . . . . . . . . . . . . . . . . . . Rastreo . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

1-1 1-1 1-2 1-2 1-2 1-2 1-3 1-3 1-4 1-5 1-5 1-6 1-6 1-6 1-7 1-7 1-7 1-7 1-8 1-8 1-8

Capítulo 2. Correlación de tipos de datos . . . . . . . . . . . . . . . . . . . . 2-1 En este capítulo . . . . . . . . . . . . . . . . . . Recuperación de datos . . . . . . . . . . . . . . . Establecimiento de los tipos de datos de los parámetros . . . . Formato de visualización de los tipos de datos FLOAT, DECIMAL o

. . . . . . . . . MONEY

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

2-1 2-1 2-2 2-3

Capítulo 3. IBM Data Server Provider for .NET . . . . . . . . . . . . . . . . . . 3-1 Espacio de nombres IBM.Data.Informix . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 Clase IfxBulkCopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5 Clase IfxBulkCopyColumnMapping. . . . . . . . . . . . . . . . . . . . . . . . . . 3-28 Clase IfxBulkCopyColumnMappingCollection . . . . . . . . . . . . . . . . . . . . . . 3-46 Enumeración IfxBulkCopyOptions . . . . . . . . . . . . . . . . . . . . . . . . . . 3-67 Clase IfxCommandBuilder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-68 Clase IfxCommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-98 Clase IfxConnection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-156 Clase IfxConnectionStringBuilder . . . . . . . . . . . . . . . . . . . . . . . . . . 3-219 Enumeración IfxCursorType . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-254 Clase IfxDataAdapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-255 Clase IfxDataReader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-291 Clase IfxDataSourceEnumerator . . . . . . . . . . . . . . . . . . . . . . . . . . 3-363 © Copyright IBM Corp. 2003, 2007

iii

Clase IfxError. . . . . . . . . . . Clase IfxErrorCollection . . . . . . . Clase IfxException . . . . . . . . . Clase IfxFactory . . . . . . . . . . Clase IfxInfoMessageEventArgs. . . . . Clase IfxParameter . . . . . . . . . Clase IfxParameterCollection . . . . . Clase IfxPermissionAttribute. . . . . . Clase IfxPermission . . . . . . . . . Clase IfxRecord . . . . . . . . . . Clase IfxResultSet . . . . . . . . . Enumeración IfxResultSetOptions . . . . Clase IfxRowUpdatedEventArgs . . . . Delegado de IfxRowUpdatedEventHandler . Clase IfxRowUpdatingEventArgs . . . . Delegado de IfxRowUpdatingEventHandler Clase IfxRowsCopiedEventArgs . . . . Delegado de IfxRowsCopiedEventHandler . Clase IfxTransaction . . . . . . . . Enumeración IfxType . . . . . . . . Clase IfxUpdatableRecord . . . . . . Espacio de nombres IBM.Data.IfxTypes . . . Estructura IfxBinary . . . . . . . . Clase IfxClob . . . . . . . . . . . Estructura IfxDate . . . . . . . . . Estructura IfxDecimal . . . . . . . . Estructura IfxDouble . . . . . . . . Estructura IfxInt16 . . . . . . . . . Estructura IfxInt32 . . . . . . . . . Estructura IfxInt64 . . . . . . . . . Clase IfxNullValueException . . . . . . Clase IfxFormatException . . . . . . . Estructura IfxReal370 . . . . . . . . Estructura IfxReal . . . . . . . . . Estructura IfxRowId . . . . . . . . Estructura IfxString . . . . . . . . . Estructura IfxTime . . . . . . . . . Estructura IfxTimeStamp . . . . . . . Clase IfxTruncateException . . . . . . Clase IfxTypeException . . . . . . .

Capítulo 4. Programas de ejemplo

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3-371 3-384 3-392 3-402 3-415 3-418 3-453 3-495 3-501 3-509 3-563 3-683 3-684 3-690 3-691 3-696 3-697 3-700 3-701 3-714 3-717 3-802 3-803 3-811 3-820 3-830 3-845 3-856 3-866 3-876 3-887 3-889 3-891 3-902 3-913 3-919 3-927 3-939 3-950 3-953

. . . . . . . . . . . . . . . . . . . . . . . 4-1

Programas de demostración. . . . . . . . . . . . . . . . Ejemplos . . . . . . . . . . . . . . . . . . . . . . Recuperación de un único valor . . . . . . . . . . . . . Recuperación de múltiples columnas. . . . . . . . . . . . Ejecución de SQL, que no devuelve datos, y uso de una transacción . Recuperación de datos en un archivo . . . . . . . . . . . Utilización del objeto IfxCommandBuilder para reconciliar los cambios Llamada de un procedimiento almacenado . . . . . . . . . Uso de las transacciones distribuidas . . . . . . . . . . . Grabar CLOBs en archivos . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . con la base . . . . . . . . . . . .

. . . . . . de . . .

. . . . . . . . . . . . datos . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

4-1 4-1 4-1 4-2 4-3 4-3 4-4 4-5 4-6 4-7

Apéndice. Accesibilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-1 Funciones de accesibilidad de IBM Informix Funciones de accesibilidad . . . . . Navegación mediante el teclado . . . Información afín sobre accesibilidad . . IBM y accesibilidad . . . . . . .

iv

Dynamic Server . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

IBM Data Server Provider for .NET para Informix Dynamic Server

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

A-1 A-1 A-1 A-1 A-1

Avisos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-1 Marcas registradas .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

. B-3

Índice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X-1

Contenido

v

vi

IBM Data Server Provider for .NET para Informix Dynamic Server

Introducción En esta introducción . . . . . . . . . . . . Acerca de este manual . . . . . . . . . . . Convenios de la documentación . . . . . . . . Convenios tipográficos . . . . . . . . . . Señalización para funciones, productos y plataformas Convenios para código de ejemplo . . . . . . Documentación adicional . . . . . . . . . . . Cumplimiento de los estándares industriales . . . . IBM agradece sus comentarios . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

vii vii vii vii . . . . . . . . . . . . . . . . . . . . viii . . . . . . . . . . . . . . . . . . . . viii . . . . . . . . . . . . . . . . . . . . ix . . . . . . . . . . . . . . . . . . . . ix . . . . . . . . . . . . . . . . . . . . ix

En esta introducción En esta introducción encontrará un resumen sobre la información contenida en esta publicación y se describen los convenios que se utilizan.

Acerca de este manual Esta publicación contiene la información que necesita para utilizar IBM Data Server Provider for .NET para acceder y manipular datos en bases de datos IBM Informix. Esta publicación asume que está familiarizado con la especificación Microsoft .NET, los principios de programación orientada a objetos, y con el uso de servidores y bases de datos IBM Informix. Microsoft proporciona información sobre la programación con .NET en este sitio Web. Para obtener más información sobre cómo trabajar con IBM Informix Dynamic Server, consulte la publicación Guía de iniciación en el conjunto de documentación del servidor. Windows y .NET son marcas registradas o marcas de Microsoft Corporation en Estados Unidos o en otros países.

Convenios de la documentación Esta sección describe los convenios siguientes, los cuales se utilizan en la documentación de producto de IBM Informix Dynamic Server: v Convenios tipográficos v Convenios para componentes, productos y plataformas v Diagramas de sintaxis v Convenios de la línea de mandatos v Convenios para código de ejemplo

Convenios tipográficos Esta publicación utiliza los convenios siguientes para presentar términos nuevos, mostrar capturas de pantalla, describir la sintaxis de mandatos, etc. Convenio

Significado

PALABRA CLAVE

Las palabras clave de SQL, SPL y algunos otros lenguajes de programación aparecen escritos en mayúsculas, con un font con remate.

© Copyright IBM Corp. 2003, 2007

vii

Convenio

Significado

cursiva

En el texto, aparecen en cursiva términos nuevos y palabras que se destacan. En la sintaxis y ejemplos de código, aparecen en cursiva valores de variable que debe especificar el usuario.

negrita

Aparecen en negrita los nombres de entidades de programas (tales como clases, sucesos y tablas), las variables de entorno, los nombres de archivos, las vías de acceso y los elementos de la interfaz (tales como iconos, opciones de menú y botones).

monoespaciado

La información que visualiza el producto y la información que especifica el usuario aparecen con el tipo de letra de monoespaciado.

PULSACIÓN

Las teclas que debe pulsar aparecen en letras mayúsculas escritas con un font sin remate (sans serif).

>

Este símbolo indica un elemento de menú. Por ejemplo, “Elija Herramientas > Opciones” significa que tiene que elegir el elemento Opciones en el menú Herramientas.

Señalización para funciones, productos y plataformas La señalización para componentes, productos y plataformas identifica párrafos que contienen información específica de un componente, producto o plataforma. A continuación, se muestran algunos ejemplos de esta señalización: Dynamic Server Identifica información que es específica de IBM Informix Dynamic Server Fin de Dynamic Server Windows solamente Identifica información que es específica del sistema operativo Windows Fin de Windows solamente Esta señalización puede aplicarse a uno o más párrafos de un apartado. Cuando un apartado completo es aplicable a un producto o plataforma determinados, esto se indica en el texto de cabecera; por ejemplo: Ordenación de tablas (Windows)

Convenios para código de ejemplo Esta publicación contiene ejemplos de código de SQL a lo largo de toda ella. Excepto cuando se indique, el código no es específico de ninguna herramienta individual de desarrollo de aplicaciones de IBM Informix. Si el ejemplo solamente contiene sentencias de SQL, las sentencias no están delimitadas por signos de punto y coma. A continuación sigue un código de ejemplo: CONNECT TO stores_demo ... DELETE FROM customer WHERE customer_num = 121

viii

IBM Data Server Provider for .NET para Informix Dynamic Server

... COMMIT WORK DISCONNECT CURRENT

Para utilizar este código de SQL para un producto específico, debe aplicar las reglas de sintaxis de ese producto. Por ejemplo, si está utilizando DB–Access, debe delimitar varias sentencias con signos de punto y coma. Si está utilizando una API de SQL, debe utilizar EXEC SQL al principio de cada sentencia y un signo de punto y coma (u otro delimitador apropiado) al final de la sentencia. Consejo: Los puntos suspensivos en un ejemplo de código indican que se añadiría más código en una aplicación completa, pero no es necesario mostrarlo para describir el concepto que se explica. Para obtener instrucciones detalladas sobre la utilización de sentencias de SQL para una herramienta determinada de desarrollo de aplicaciones o para una API de SQL, consulte la documentación correspondiente al producto.

Documentación adicional Puede ver, buscar e imprimir toda la documentación del producto desde el Centro de información de IBM Informix Dynamic Server, situado en esta dirección de la Web: http://publib.boulder.ibm.com/infocenter/idshelp/v111/index.jsp. Para obtener documentación adicional sobre IBM Informix Dynamic Server y productos asociados, tales como notas de release, notas de máquina y notas de documentación, consulte la página de la biblioteca de productos en línea, situada en http://www.ibm.com/software/data/informix/pubs/library/. Como alternativa, puede consultar o instalar la documentación del producto a partir del CD de Iniciación rápida que se proporciona con el producto.

Cumplimiento de los estándares industriales Las instituciones American National Standards Institute (ANSI) e International Organization of Standardization (ISO) han establecido conjuntamente un conjunto de normas de la industria para el Lenguaje de consulta estructurado (SQL). Los productos basados en SQL de IBM Informix se ajustan totalmente a la norma SQL-92 Entry Level (publicada como ANSI X3.135-1992), que es idéntica a ISO 9075:1992. Además, muchas funciones de los servidores de bases de datos IBM Informix cumplen las normas SQL-92 Intermediate y Full Level y X/Open SQL de Common Applications Environment (CAE).

IBM agradece sus comentarios Deseamos conocer cualquier corrección o clarificación que considere que pueda ser útil en nuestros manuales, lo cual nos ayudará a mejorar las ediciones futuras. Incluya la información siguiente: v Nombre y versión de la publicación que está utilizando v Apartado y número de página v Sus sugerencias sobre la publicación Envíenos sus comentarios a la siguiente dirección de correo electrónico: [email protected]

Introducción

ix

Esta dirección de correo electrónico está reservada para notificar errores y omisiones de nuestra documentación. Para obtener ayuda inmediata para un problema técnico, póngase en contacto con el Centro de soporte técnico de IBM. Para obtener instrucciones, visite el sitio Web de Soporte técnico de IBM Informix que se encuentra en http://www.ibm.com/planetwide/. Valoramos en gran medida sus sugerencias.

x

IBM Data Server Provider for .NET para Informix Dynamic Server

Capítulo 1. Visión general del IBM Data Server Provider for .NET para Informix Dynamic Server ¿Qué es el IBM Data Server Provider for.NET? . . . . . . . . . . Entornos de programación soportados . . . . . . . . . . . . . Soporte al acceso a datos con Visual Studio . . . . . . . . . . . Soporte para IPv6 . . . . . . . . . . . . . . . . . . . . Preparación del servidor de la base de datos . . . . . . . . . . . Visión general de la biblioteca de clases IBM Data Server Provider for .NET Seguridad de las hebras de los tipos de proveedor . . . . . . . . . Requisitos de los espacios de nombres . . . . . . . . . . . . . Conexión a una base de datos . . . . . . . . . . . . . . . . Modalidades de base de datos con .NET . . . . . . . . . . . . Reconciliación de los cambios de DataSet con la base de datos . . . . . La agrupación de conexiones . . . . . . . . . . . . . . . . Establecimiento del permiso FullTrust . . . . . . . . . . . . . Utilización de marcadores de parámetro ? . . . . . . . . . . . . Matrices de parámetros . . . . . . . . . . . . . . . . . . Llamada de los procedimientos almacenados . . . . . . . . . . . Uso de las transacciones distribuidas . . . . . . . . . . . . . Codificación genérica con ADO.NET Common Base Classes . . . . . . Migración desde IBM Informix .NET Provider . . . . . . . . . . Mensajes de error . . . . . . . . . . . . . . . . . . . . Rastreo . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

1-1 1-1 1-2 1-2 1-2 1-2 1-3 1-3 1-4 1-5 1-5 1-6 1-6 1-6 1-7 1-7 1-7 1-7 1-8 1-8 1-8

¿Qué es el IBM Data Server Provider for.NET? El IBM Data Server Provider for .NET es un conjunto .NET que permite a las aplicaciones .NET acceder y manipular datos en servidores de datos IBM. Lo hace implementando diferentes interfaces en el Microsoft .NET Framework que se utilizan para acceder a los datos desde una base de datos. Utilizar IBM Data Server Provider for .NET es más eficaz que acceder a una base de datos IBM Informix mediante uno de los dos siguientes métodos: v Utilización de Microsoft .NET Framework Data Provider for ODBC junto con IBM Informix ODBC Driver v Utilización de Microsoft .NET Framework Data Provider for OLE DB junto con IBM Informix OLE DB Provider

Entornos de programación soportados El IBM Data Server Provider for .NET puede ser utilizado por cualquier aplicación que pueda ejecutar el Microsoft .NET Framework. La siguiente lista incluye algunos ejemplos de lenguajes de programación que crean aplicaciones que cumplen estos criterios: v Visual BASIC .NET v Visual C# .NET v Visual J# .NET v ASP.NET El IBM Data Server Provider for .NET se ejecuta en todas las plataformas Microsoft Windows que proporcionan soporte total a .NET. Si quiere utilizar el IBM Data © Copyright IBM Corp. 2003, 2007

1-1

Server Provider for .NET que implementa interfaces ADO.NET 2.0, deberá tener instalado en su sistema Microsoft .NET Framework Versión 2.0 o superior.

Soporte al acceso a datos con Visual Studio Si utiliza Microsoft Visual Studio, se instalará un módulo adicional de IBM Data Server Provider for .NET de forma automática al instalar el Client SDK. Los módulos adicionales de Visual Studio 2005 sólo están disponibles con CSDK. El proveedor de IConnect no incluye estos módulos adicionales. Consulte en la pestaña Datos de la caja de herramientas las herramientas que le permitan configurar estos tipos de IBM Data Server Provider for .NET de forma visual: v IfxConnection v IfxCommand v IfxDataAdapter

Soporte para IPv6 El IBM Data Server Provider for .NET puede utilizar direcciones Internet Protocol Version 6 (IPv6), así como direcciones Internet Protocol Version 4 (IPv4). Si su sistema utiliza IPv6 recomendamos que utilice nombres de sistema principal en sus series de conexión en vez de utilizar direcciones IP con el formato IPv6. A parte de esto, no deberá realizar ninguna otra acción.

Preparación del servidor de la base de datos Antes de utilizar el IBM Data Server Provider for .NET para acceder a las bases de datos de un servidor de base de datos determinado, deberá ejecutar el script, cdotnet.sql, en función de la base de datos sysmaster en dicho servidor como usuario informix.

Visión general de la biblioteca de clases IBM Data Server Provider for .NET El IBM Data Server for .NET da soporte a todas las clases públicas y base .NET necesarias para acceder a la base de datos IBM Informix. Consulte la documentación de Microsoft .NET Framework SDK para obtener más información. En el .NET Framework, el acceso a una fuente de datos y sus datos está gestionado por las clases ADO.NET (ADO.NET significa ActiveX Data Objects -Objetos de datos de ActiveX- en la plataforma .NET). El .NET Framework es un conjunto de servicios y programas que proporcionan el entorno de tiempo de ejecución para las aplicaciones .NET. ADO.NET contiene dos componentes primarios: las clases de archivo y las clases de .NET Provider. El objeto DataSet representa una fuente de datos en memoria (en estado desconectado). Las aplicaciones .NET utilizan DataSet para manipular datos. Las interfaces DataTable y DataColumn representan la tabla fuente y sus columnas. La interfaz DataRelation representa las relaciones entre tablas, como la del tipo padre-hijo. Al recuperar datos de la base de datos, todo el conjunto de resultados se toma del servidor y se convierte en XML antes de colocarlo en un DataSet. Todo el conjunto de resultados se almacena en un cliente. Por ello, se recomienda mantener los

1-2

IBM Data Server Provider for .NET para Informix Dynamic Server

archivos lo más pequeños posible. No olvide utilizar el parámetro MAX ROWS en sus sentencias SELECT si no tiene que devolver todos los datos. Las principales clases de IBM Data Server Provider for .NET que proporcionan acceso a los datos son: v IfxConnection—para conectarse a una base de datos y gestionar las transacciones. v IfxCommand—para emitir mandatos SQL. v IfxDataReader—para leer una corriente de sólo reenvío de registros de datos. v IfxTransaction—para controlar las transacciones. v IfxDataAdapter—para meter los datos en un archivo y reconciliar los cambios de un archivo con la base de datos. Las siguientes clases de .NET Provider le permiten desarrollar un código independiente del proveedor al utilizar .NET Provider para el entorno 2.0: v DbProviderFactory v DbConnectionStringBuilder v DbCommand El objeto IfxDataReader proporciona una recuperación rápida de los datos de la base de datos. Sin embargo, los datos son de sólo lectura y sólo puede avanzar, un registro cada vez, por el conjunto de resultados. A diferencia de los objetos DataSet, los objetos IfxDataReader no crean tablas temporales para que contengan los datos, por lo que utilizan menos memoria. Si se modifican los datos en el cliente, es posible que el usuario quiera aplicar dichos cambios en la base de datos. Para ello necesitará la clave primaria de su tabla de la base de datos para asegurarse de que está actualizando la fila correcta de la tabla. Para las actualizaciones de tablas únicas puede utilizar la clase IfxCommandBuilder para facilitar la reconciliación automática de los cambios en el archivo con la base de datos (consulte “Reconciliación de los cambios de DataSet con la base de datos” en la página 1-5).

Seguridad de las hebras de los tipos de proveedor Únicamente los miembros estáticos de un tipo de IBM Data Server Provider for .NET son de enhebramiento seguro. No se garantiza que todos los tipos sean seguros al llamarlos desde distintas hebras al mismo tiempo.

Requisitos de los espacios de nombres El espacio de nombres para el IBM Data Server Provider for .NET para Informix Dynamic Server es: IBM.Data.Informix. Esto significa que el nombre completo de todos los objetos en IBM Data Server Provider for .NET para Informix Dynamix Server Provider empieza por IBM.Data.Informix. Por ejemplo, el nombre completo de IfxConnection es IBM.Data.Informix.IfxConnection. Para evitar tener que introducir todo el espacio de nombres de cada uno de los objetos, puede importar el espacio de nombres. La manera exacta de hacerlo depende de su lenguaje de programación. El lenguaje C# utiliza la palabra clave using. Si está programando en C# puede referenciar el espacio de nombres incluyendo esta línea al principio de su módulo: using IBM.Data.Informix;

Capítulo 1. Visión general del IBM Data Server Provider for .NET para Informix Dynamic Server

1-3

Conexión a una base de datos Para conectarse a una base de datos deberá utilizar el método Open de un objeto IfxConnection. Puede definir información sobre cómo conectarse a una base de datos (como la máquina y el servidor donde está la base de datos) pasando una serie de conexión al objeto IfxConnection. La serie de conexión tiene la siguiente forma: atributo=valor[;atributo=valor]... Los corchetes ([]) y la elipsis (...) no forman parte de la serie. Sólo indican que los pares atributo/valor después del primero son opcionales y que puede incluirse cualquier número de los pares atributo/valor. Los pares atributo/valor se separan entre sí con un punto y coma. Si utiliza Microsoft Visual Studio podrá crear una conexión visualmente: 1. Arrastre un IfxConnection de la pestaña Datos de la barra de herramientas hasta uno de sus formularios. 2. Pulse en la propiedad ConnectionString del nuevo objeto IfxConnection. 3. Pulse en el botón de la elipsis (...) que aparece en el cuadro de texto ConnectionString. Se abrirá un recuadro de diálogo. 4. Llene los elementos del diálogo para darle información a la conexión. Pulse en el botón de ayuda del recuadro de diálogo para obtener detalles sobre cómo utilizar el diálogo. El siguiente fragmento muestra una conexión simple a una base de datos denominada testdb en un servidor IBM Informix denominado testserver ubicado en una máquina denominada berry: IfxConnection conn=new IfxConnection("Host=berry; Service=9401; Server=testserver;User ID=informix; password=ifxtest; Database=testdb"); conn.Open();

Además de la propiedad ConnectionString, un objeto IfxConnection también puede determinar las propiedades de conexión del programa de utilidad Setnet y del entorno o el registro (por ejemplo, los valores de DELIMIDENT y OPTOFC se pueden determinar de esta manera). Si las propiedades se establecen en la serie de conexión, el objeto IfxConnection utilizará dichos valores. Si, en cambio, no se establecen ahí, utilizará los valores del entorno. Para las propiedades que no se establezcan, el objeto IfxConnection tomará los valores del programa de utilidad SetNet. Nota: De acuerdo con los estándares de la industria, el IBM Data Server Provider for .NET actúa como si DELIMIDENT se hubiera establecido en Y a menos que el usuario lo establezca expresamente en N. Cuando su aplicación haya acabado de utilizar la base de datos, cierre la conexión como en el siguiente fragmento: conn.Close();

Nota: Los nombres de atributo de las series de conexión no son sensibles a mayúsculas y minúsculas, pero a menudo sus valores lo son.

1-4

IBM Data Server Provider for .NET para Informix Dynamic Server

Modalidades de base de datos con .NET La modalidad de base de datos se detecta automáticamente. Utilice la semántica de base de datos ANSI tanto para las bases de datos registradas como las ANSI. En las aplicaciones CLI, el atributo SQL_ATTR_AUTOCOMMIT a nivel de conexión puede ser SQL_AUTOCOMMIT_ON o SQL_AUTOCOMMIT_OFF. v SQL_AUTOCOMMIT_ON para bases de datos MODE ANSI da como resultado una confirmación después de cada sentencia y el servidor inicia una transacción automáticamente. v SQL_AUTOCOMMIT_OFF significa que la aplicación tiene la responsabilidad de emitir confirmaciones utilizando SQLEndTran con SQL_COMMIT.

Reconciliación de los cambios de DataSet con la base de datos Si recupera datos de la base de datos utilizando un objeto IfxDataAdapter y realiza cambios en los datos del archivo, la clase IfxCommandBuilder le permite generar mandatos INSERT, DELETE y UPDATE automáticos para reconciliar dichos cambios con la base de datos. “Recuperación de datos en un archivo” en la página 4-3 incluye un ejemplo que demuestra cómo utilizar los objetos IfxDataAdapter. “Utilización del objeto IfxCommandBuilder para reconciliar los cambios con la base de datos” en la página 4-4 incluye un ejemplo que demuestra cómo utilizar los objetos IfxCommandBuilder. La generación automática de sentencias SQL para la reconciliación de datos se inicia al establecer la propiedad SelectCommand de un objeto IfxDataAdapter con la sentencia SELECT que quiere ejecutar. A continuación, al crear un objeto IfxCommandBuilder, genera de forma automática sentencias SQL para actualizaciones de tablas únicas para reconciliar los cambios en el archivo con la base de datos. Un objeto IfxCommandBuilder siempre está asociado con un objeto IfxDataAdapter (en una relación de uno a uno). La sentencia SELECT que ejecuta al utilizar la propiedad SelectCommand debe devolver al menos una clave primaria o una columna exclusiva. Si no dispone de ninguno, se devolverá una excepción InvalidOperation y no se generarán los mandatos de reconciliación. El objeto IfxCommandBuilder también utiliza las propiedades IfxCommand Connection, CommandTimeout y Transaction para la sentencia SELECT que está ejecutando (establecida por la propiedad SelectCommand). Si se modifica alguna de estas propiedades o si se sustituye la sentencia SELECT, debería llamar el método IfxCommandBuilder.RefreshSchema. De no ser así, las propiedades InsertCommand, UpdateCommand y DeleteCommand conservarán sus valores originales. El método IfxCommandBuilder.Dispose disocia el objeto IfxCommandBuilder del objeto IfxDataAdapter y ya no se utilizan más los mandatos generados. Es posible que un objeto IfxCommandBuilder no genere sentencias SQL eficientes. Puede visualizar los mandatos que genera utilizando los métodos GetDeleteCommand, GetInsertCommand y GetUpdateCommand. Las siguientes limitaciones se aplican al uso de los objetos IfxCommandBuilder: v La sentencia SELECT debe recuperar al menos una clave primaria o una columna unívoca como parte de la consulta.

Capítulo 1. Visión general del IBM Data Server Provider for .NET para Informix Dynamic Server

1-5

v La sentencia SELECT debe hacer referencia a una sola tabla; no puede tener procedimientos o vistas almacenadas que contengan operadores JOIN. v La sentencia SELECT debe hacer referencia a columnas que admitan operaciones de lectura-grabación. v El objeto IfxCommandBuilder no intenta ni proporciona ningún mecanismo para buscar y cargar argumentos de salida de la sentencia SELECT. v Con las propiedades CommandText, Connection, CommandTimeout o Transaction para el cambio de consulta deberá ejecutar el método IfxCommandBuilder.RefreshSchema. v Los mandatos UPDATE y DELETE generados por un objeto IfxCommandBuilder no cambiarán ninguna columna modificada en la base de datos después de que SELECT haya leído los datos. v El objeto IfxCommandBuilder se ha diseñado para trabajar con tablas individuales no relacionadas. No puede utilizar objetos IfxCommandBuilder para actualizar tablas con relaciones de clave primaria/clave externa. v Si las columnas de su mandato SELECT contienen caracteres especiales como espacios, puntos, comillas o caracteres no alfanuméricos, no podrá utilizar los objetos IfxCommandBuilder a menos que utilice las propiedades QuotePrefix y QuoteSuffix para especificar el delimitador para los nombres de tabla y columna en las consultas que genera.

La agrupación de conexiones La agrupación de conexiones permite que las aplicaciones del cliente reutilicen las conexiones en vez de tener que crear una nueva cada vez que IBM Data Server Provider for .NET deba conectarse a una base de datos. Para que una conexión esté disponible en la agrupación, deberá cerrarlo después de que su aplicación haya acabado de utilizar dicha conexión. Para reutilizar una conexión, ésta deberá estar en desuso y deberá seguir estando conectada al servidor. Los atributos de la serie de conexión Pooling, Max Pool Size, Connection Life Time y Min Pool Size se utilizan para controlar la agrupación de conexiones.

Establecimiento del permiso FullTrust Para utilizar IBM Data Server Provider for .NET, las aplicaciones de llamada deben tener establecido el permiso de FullTrust.

Utilización de marcadores de parámetro ? Puede utilizar el símbolo de pregunta (?) para marcar la posición de un parámetro en una sentencia SQL o en un procedimiento almacenado. Puesto que IBM Data Server Provider for .NET no tiene acceso a los nombres de estos parámetros, deberá traspasarlos en el orden adecuado. El orden en que añada los objetos IfxParameter a un objeto IfxParameterCollection deberá corresponder directamente a la posición del símbolo ? de la retención de posición de ese parámetro. Deberá utilizar el método ParameterCollection.Add para agregar un parámetro a la colección.

1-6

IBM Data Server Provider for .NET para Informix Dynamic Server

Matrices de parámetros El IBM Data Server Provider for .NET da soporte a las matrices de los parámetros de entrada para las sentencias UPDATE y INSERT. Esto permite que una aplicación utilice un único mandato para especificar una fila de valores de parámetro y dichos valores pueden enviarse de una sola vez al servidor.

Llamada de los procedimientos almacenados Para utilizar procedimientos almacenados en sus aplicaciones, establezca las siguientes propiedades del objeto IfxCommand tal como se muestra a continuación: v CommandText - establecida en el nombre del procedimiento almacenado v CommandType - establecida en StoredProcedure Puede utilizar el método IfxCommandBuilder.DeriveParameters para recuperar información sobre los parámetros para los procedimientos almacenados. Si un procedimiento almacenado devuelve un valor, su aplicación deberá añadir un parámetro para dicho valor en la colección de parámetros utilizada por el objeto IfxCommand. La sección “Llamada de un procedimiento almacenado” en la página 4-5 incluye un ejemplo que muestra cómo ejecutar un procedimiento almacenado y leer los resultados que devuelva.

Uso de las transacciones distribuidas Su aplicación puede conseguir una conexión para las transacciones distribuidas estableciendo el atributo de la serie de conexión Enlist en true, yes o 1. Se recomienda establecer el atributo de la serie de conexión Pooling en true, yes o 1 mientras trabaje con transacciones distribuidas. “Uso de las transacciones distribuidas” en la página 4-6 incluye un ejemplo sobre cómo utilizar las transacciones distribuidas con su aplicación. Nota: Las transacciones distribuidas están soportadas por Microsoft Distributed Transaction Coordinator (MS DTC). Los componentes MS DTC son necesarios para llamar algunos códigos no gestionados que pueden afectar al nivel de seguridad disponible y al rendimiento.

Codificación genérica con ADO.NET Common Base Classes .NET Framework versión 2.0 contiene un espacio para nombres denominado System.Data.Common que incluye un conjunto de clases base que pueden compartirse entre todos los proveedores de datos .NET. Esto facilita un enfoque genérico al desarrollo de la aplicación de bases de datos ADO.NET generando una interfaz de programación constante. Las clases principales de IBM Data Server Provider for .NET se heredan de las clases base System.Data.Common. Como resultado, las aplicaciones ADO.NET genéricas trabajarán con bases de datos Dynamic Server mediante el IBM Data Server Provider for .NET. El siguiente código C# muestra un enfoque genérico para establecer una conexión a una base de datos.

Capítulo 1. Visión general del IBM Data Server Provider for .NET para Informix Dynamic Server

1-7

DbProviderFactory factory = DbProviderFactories.GetFactory("IBM.Data.Informix"); DbConnection conn = factory.CreateConnection(); DbConnectionStringBuilder sb = factory.CreateConnectionStringBuilder(); if( sb.ContainsKey( "Database" ) ) { sb.Remove( "database" ); sb.Add( "database", "SAMPLE" ); } conn.ConnectionString = sb.ConnectionString; conn.Open();

El objeto DbProviderFactory es el punto en que empieza cualquier aplicación ADO.NET genérica. Este objeto crea instancias genéricas de objetos del proveedor de datos .NET como conexiones, adaptadores de datos y lectores de datos que trabajan con un producto de bases de datos específico. En el caso del ejemplo anterior, la serie "IBM.Data.Informix" traspasada al método GetFactory sólo identifica de forma unívoca el IBM Data Server Provider for .NET for Informix Dynamic Server y da como resultado la inicialización de una instancia DbProviderFactory que crea instancias del objeto del proveedor de bases de datos específico de IBM Data Server Provider for .NET para Informix Dynamic Server. El objeto DbConnection puede conectarse a bases de datos Dynamic Server como un objeto IfxConnection, que se hereda de DbConnection. Al utilizar la clase DbConnectionStringBuilder, puede determinar las palabras clave de la serie de conexión para un proveedor de datos y generar una serie de conexión del cliente. El código del ejemplo anterior comprueba si existe una palabra clave denominada "database" en IBM Data Server Provider for .NET para Informix Dynamic Server y, de ser así, genera una serie de conexión para conectarse a la base de datos SAMPLE.

Migración desde IBM Informix .NET Provider El soporte anterior para las aplicaciones .NET ha utilizado SQLI para conectarse a una base de datos, en tanto que IBM Data Server Provider for .NET utiliza DRDA para conectarse a una base de datos. En consecuencia, debe utilizar un nivel de Dynamic Server que da soporte a DRDA, el cual es Dynamic Server, Versión 11.1 o superior. Asimismo, ya no se da soporte a las siguientes clases y sus estructuras. v IfxBlob v IfxTimeSpan

Mensajes de error Los mensajes de error del servidor IBM Informix se representan como excepciones de IBM Data Server Provider for .NET.

Rastreo Una aplicación puede habilitar el rastreo estableciendo la variable de entorno IFXDOTNETTRACE.

1-8

Valor

Significado

0

Sin rastreo

1

Rastreo de la entrada API y salida con código de retorno

IBM Data Server Provider for .NET para Informix Dynamic Server

Valor

Significado

2

Rastreo de la entrada API y salida con código de retorno más rastreo de los parámetros del API

v 0—Sin rastreo v 1—Rastreo de la entrada API y salida con código de retorno v 2—Rastreo de la entrada API y salida con código de retorno más rastreo de los parámetros del API La información de rastreo se graba en el archivo que establece el usuario con la variable de entorno IFXDOTNETTRACEFILE.

Capítulo 1. Visión general del IBM Data Server Provider for .NET para Informix Dynamic Server

1-9

1-10

IBM Data Server Provider for .NET para Informix Dynamic Server

Capítulo 2. Correlación de tipos de datos En este capítulo . . . . . . . . . . . . . . . . . . Recuperación de datos . . . . . . . . . . . . . . . Establecimiento de los tipos de datos de los parámetros . . . . Formato de visualización de los tipos de datos FLOAT, DECIMAL o

. . . . . . . . . MONEY

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

2-1 2-1 2-2 2-3

En este capítulo En este capítulo se describe cómo se correlacionan los tipos de datos entre las bases de datos IBM Informix y .NET Framework. Esto incluye: v Cómo se correlacionan los tipos de datos cuando se recuperan datos de la base de datos utilizando los objetos IfxDataReader y IfxDataAdapter v Cómo se correlaciona un tipo de datos de los parámetros (al utilizar los objetos IfxParameter)

Recuperación de datos La Tabla 2-1 muestra cada tipo de datos Informix, el tipo recomendado para almacenar dicho tipo de datos y el tipo de datos .NET Framework que mejor se adapte. El tipo recomendado debería utilizarse al acceder a los datos mediante IfxDataReader. El tipo de .NET más adecuado es el tipo que utilizará un objeto IfxDataAdapter cuando llene un objeto DataSet. Puede utilizar tipos distintos a los que se muestran, por ejemplo, puede utilizar el método IfxDataReader.GetString para obtener cualquier tipo de datos que pueda almacenarse en la base de datos IBM Informix. Los tipos recomendados son los más eficientes y es menos probable que cambien el valor. Tabla 2-1. Los mejores tipos para recuperar tipos de datos de IBM Informix Tipo de datos de Informix

Tipo recomendado

Mejor tipo de datos .NET nativo

BLOB

IfxBlob

Byte[]

BOOLEAN

Boolean

Boolean

BYTE

Byte[]

Byte[]

CHAR

String

String

CHAR(1)

String

String

CLOB

IfxClob

Byte[]

DATE

IfxDateTime

DateTime

DATETIME

IfxDateTime

DateTime

Escala fija DECIMAL(p Añadir referencia. Si está compilando un programa desde la línea de mandatos para Framework 2.0 o 3.0, los mandatos csc o vbc deben incluir la opción siguiente: /r:"%IfxPATH%"\bin\netf20\IBM.Data.Informix.dll

Si está compilando un programa desde la línea de mandatos para Framework 1.1, los mandatos csc o vbc deben incluir la opción siguiente: /r:"%IfxPATH%"\bin\netf11\IBM.Data.Informix.dll

Para establecer una conexión con uno de los servidores de datos soportados, deberá construir un objeto IfxConnection y proporcionarle una serie de caracteres de conexión Informix .NET válida. Consulte la propiedadIfxConnection.ConnectionString para obtener información sobre las palabras clave soportadas. Para obtener información detallada sobre cómo utilizar mejor el espacio de nombres IBM.Data.DB2, consulte la documentación sobre las siguientes clases de IBM Data Server Provider for .NET: v IfxDataAdapter

3-2

IBM Data Server Provider for .NET para Informix Dynamic Server

v IfxCommand v IfxConnection v IfxDataReader

Clases Clase

Descripción Facilita la copia de filas de una fuente de datos a otra. IfxBulkCopy IfxBulkCopyColumnMapping

Representa una correlación de columnas de la tabla fuente de datos con la tabla de destino.

Representa una colección de correlaciones de columnas de la tabla IfxBulkCopyColumnMappingCollection fuente con la tabla de destino. IfxCommand IfxCommandBuilder

Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar en función de una fuente de datos. Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. Representa una conexión abierta con una base de datos.

IfxConnection IfxConnectionStringBuilder

Proporciona enfoques genéricos y específicos de IBM Data Server Provider for .NET para la generación de series de caracteres de conexión válidas.

IfxDataAdapter

Representa un conjunto de mandatos de datos y una conexión con una base de datos que se utilizan para rellenar el DataSet y actualizar la base de datos.

IfxDataReader

Proporciona una manera de leer filas de corrientes de datos de sólo avance de una base de datos.

IfxDataSourceEnumerator

Proporciona una forma de descubrir las fuentes de datos visibles de la familia Informix.

IfxError

Recopila información relevante para un aviso o error devuelto por la base de datos. Recopila todos los errores generados por el IfxDataAdapter.

IfxErrorCollection IfxException IfxFactory

La excepción que se genera cuando un servidor de datos Informix devuelve un error. Representa un conjunto de métodos para la creación de instancias de las clases de fuente de datos System.Data.Common para el proveedor de datos. Proporciona datos para el suceso InfoMessage.

IfxInfoMessageEventArgs IfxParameter

Representa un parámetro de un IfxCommand y, opcionalmente, su correlación con una DataColumn.

IfxParameterCollection

Representa una colección de parámetros relevantes para un IfxCommand así como las correlaciones respectivas de los mismos con columnas de un DataSet.

IfxPermission

Habilita IBM Data Server Provider for .NET para garantizar que un usuario tenga el nivel de seguridad adecuado para acceder a una base de datosInformix.

Capítulo 3. IBM Data Server Provider for .NET

3-3

Clase

Descripción Asocia una acción de seguridad con un atributo de seguridad personalizado.

IfxPermissionAttribute

Representa un registro de sólo lectura. IfxRecord Proporciona desplazamiento multidireccional en una corriente vinculable de filas de datos de una base de datos. Además, las instancias de IfxResultSet también pueden actualizar, suprimir e insertar filas.

IfxResultSet

Proporciona datos para el suceso IfxRowsCopied. IfxRowsCopiedEventArgs Proporciona datos para el suceso RowUpdated. IfxRowUpdatedEventArgs Proporciona datos para el suceso RowUpdating. IfxRowUpdatingEventArgs IfxTransaction

Representa una transacción de SQL que se debe realizar en una base de datos.

IfxUpdatableRecord

Representa una fila nueva que se creará en una instancia de IfxResultSet.

Delegados Delegado

Descripción

IfxInfoMessageEventHandler

Representa el método que manejará el suceso InfoMessage de un objeto IfxConnection.

IfxRowsCopiedEventHandler

Representa el método que manejará el suceso IfxRowsCopied de un objeto IfxBulkCopy.

IfxRowUpdatedEventHandler

Representa el método que manejará el suceso RowUpdated de un objeto IfxDataAdapter.

IfxRowUpdatingEventHandler

Representa el método que manejará el suceso RowUpdating de un objeto IfxDataAdapter.

Enumeraciones Enumeración

Descripción

IfxBulkCopyOptions

Especifique las opciones a utilizar con IfxBulkCopy. Estas opciones son distintivos de bits que le permiten combinarlos en máscaras de bits.

IfxCursorType

IfxResultSetOptions IfxType

Especifique las opciones de cursor a utilizar con IfxResultSet. Estas opciones son distintivos de bits que le permiten combinarlos en máscaras de bits. Especifique las opciones de conjunto de resultados a utilizar con IfxResultSet. Estas opciones son distintivos de bits que le permiten combinarlos en máscaras de bits. Especifica el tipo de datos de un campo, una propiedad o un IfxParameter.

Consulta

3-4

IBM Data Server Provider for .NET para Informix Dynamic Server

“Espacio de nombres IBM.Data.IfxTypes” en la página 3-802 El espacio de nombres IBM.Data.IfxTypes proporciona clases y estructuras que representan tipos de datos Informix para .NET Framework Data Provider. Capítulo 3, “IBM Data Server Provider for .NET”, en la página 3-1 IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece un acceso seguro y de alto rendimiento a los servidores de datos IBM.

Clase IfxBulkCopy Facilita la copia de filas de una fuente de datos a una tabla de una base de datos. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll)

Jerarquía de herencia System.Object System.MarshalByRefObject IBM.Data.Informix.IfxBulkCopy

Sintaxis Visual Basic] NotInheritable Public Class IfxBulkCopy [C#] public sealed class IfxBulkCopy [C++] public ref class IfxBulkCopy sealed [JScript] public final class IfxBulkCopy

Comentarios La fuente de los datos puede ser un objeto DataRow, DataTable o DataReader, lo que significa que los datos que se deben copiar pueden proceder de cualquier fuente que la aplicación pueda leer. El destino es una tabla de una base de datos. Para permitir la copia de datos de columnas que tengan nombres distintos al de la tabla de destino, IfxBulkCopy utiliza objetos IfxCopyColumnMapping y IfxCopyColumnMappingCollection.

Ejemplo [C#] El ejemplo siguiente muestra una copia masiva de datos de una fuente DataTable en la tabla SALES. [C#] public static void copyIntoSales(IfxConnection conn, DataTable source) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); salesCopy.DestinationTableName = "SALES"; try { salesCopy.WriteToServer(source); salesCopy.Close(); } catch (Exception ex)

Capítulo 3. IBM Data Server Provider for .NET

3-5

{ MessageBox.Show(ex.ToString(), "Exception"); } }

Seguridad de hebra Cualquier miembro estático público (Shared en Visual Basic) de este tipo es seguro para operaciones multihebra. No se garantiza que cualquier miembro de instancia sea seguro para hebras.

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Miembros de IfxBulkCopy” Facilita la copia de filas de una fuente de datos a otra. Las tablas siguientes listan los miembros expuestos por la clase IfxBulkCopy. “Enumeración IfxBulkCopyOptions” en la página 3-67 Especifique las opciones a utilizar con IfxBulkCopy. Estas opciones son distintivos de bits que le permiten combinarlos en máscaras de bits. “Clase IfxBulkCopyColumnMapping” en la página 3-28 Representa una correlación de columnas de la tabla fuente de datos con la tabla de destino. “Clase IfxBulkCopyColumnMappingCollection” en la página 3-46 Representa una colección de correlaciones de columnas de la tabla fuente con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento.

Miembros de IfxBulkCopy Facilita la copia de filas de una fuente de datos a otra. Las tablas siguientes listan los miembros expuestos por la clase IfxBulkCopy.

Constructores públicos Nombre IfxBulkCopy

Descripción Sobrecargado. Inicializa una instancia nueva de la clase IfxBulkCopy.

Propiedades públicas Nombre BulkCopyTimeout

ColumnMappings

3-6

Descripción Número de segundos durante los cuales se debe ejecutar la operación de copia masiva antes de que se produzca un tiempo de espera excedido. Correlaciones de las columnas de la tabla de la fuente de datos con las columnas de la tabla de destino.

IBM Data Server Provider for .NET para Informix Dynamic Server

Nombre

Descripción Nombre de la tabla de destino residente en el servidor.

DestinationTableName Errores producidos en la operación de copia masiva. Errors NotifyAfter

Número de filas que se deben copiar antes de generar un suceso IfxRowsCopied.

Métodos públicos Nombre

Descripción Cierra la instancia de IfxBulkCopy.

Close Cierra la instancia de IfxBulkCopy. Dispose WriteToServer

Sobrecargado. Copia todas las filas de una fuente de datos en la tabla de destino especificada por la propiedad DestinationTableName.

Sucesos públicos Nombre IfxRowsCopied

Descripción Se produce cada vez que el número de filas copiadas alcanza el valor definido en la propiedad NotifyAfter.

Consulta “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento.

Constructores de IfxBulkCopy Inicializa una instancia nueva de la clase IfxBulkCopy.

Lista de sobrecargas Inicializa una nueva instancia de la clase IfxBulkCopy con un objeto IfxConnection. IfxBulkCopy(IBM.Data.DB2.IfxConnection)

IfxBulkCopy(IBM.Data.DB2.IfxConnection, IBM.Data.DB2.IfxBulkCopyOptions) IfxBulkCopy(string)

Inicializa una nueva instancia de la clase IfxBulkCopy con un objeto IfxConnection y valores de enumeración de IfxBulkCopyOptions. Inicializa una nueva instancia de la clase IfxBulkCopy con una serie de caracteres de conexión de base de datos.

Capítulo 3. IBM Data Server Provider for .NET

3-7

IfxBulkCopy(string, IBM.Data.DB2.IfxBulkCopyOptions)

Inicializa una nueva instancia de la clase IfxBulkCopy con una serie de caracteres de conexión de base de datos y valores de enumeración de IfxBulkCopyOptions.

Consulta “Miembros de IfxBulkCopy” en la página 3-6 Facilita la copia de filas de una fuente de datos a otra. Las tablas siguientes listan los miembros expuestos por la clase IfxBulkCopy. “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Constructor de IfxBulkCopy.IfxBulkCopy(IBM.Data.DB2.IfxConnection): Inicializa una nueva instancia de la clase IfxBulkCopy con un objeto IfxConnection. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub New(connection As IfxConnection) [C#] public IfxBulkCopy(IfxConnection connection); [C++] public: IfxBulkCopy(IfxConnection* connection); [JScript] public function IfxBulkCopy(connection : IfxConnection);

Parámetros connection Objeto IfxConnection que representa una conexión con una base de datos. Excepciones Tipo de excepción

Condición

InvalidOperationException

Este constructor de IfxBulkCopy requiere el acceso a una conexión de base de datos abierta.

Comentarios Los datos se copiarán a una tabla del servidor de datos identificado en el parámetro de conexión.

3-8

IBM Data Server Provider for .NET para Informix Dynamic Server

Ejemplo [C#] El ejemplo siguiente muestra una copia masiva de datos de una fuente DataTable en la tabla SALES. [C#] public static void copyIntoSales(IfxConnection conn, DataTable source) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); salesCopy.DestinationTableName = "SALES"; try { salesCopy.WriteToServer(source); salesCopy.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Constructor de IfxBulkCopy.IfxBulkCopy(IBM.Data.DB2.IfxConnection, IBM.Data.DB2.IfxBulkCopyOptions): Inicializa una nueva instancia de la clase IfxBulkCopy con un objeto IfxConnection y valores de enumeración de IfxBulkCopyOptions. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub New( _ connection As IfxConnection, _ options As IfxBulkCopyOptions _ ) [C#] public IfxBulkCopy( IfxConnection connection, IfxBulkCopyOptions options, ); [C++] public: IfxBulkCopy( IfxConnection* connection, IfxBulkCopyOptions options, Capítulo 3. IBM Data Server Provider for .NET

3-9

); [JScript] public function IfxBulkCopy( connection : IfxConnection, options : IfxBulkCopyOptions );

Parámetros connection Objeto IfxConnection que representa una conexión con una base de datos. options Opciones que se deben utilizar durante la operación de copia masiva. Se pueden especificar como una enumeración IfxBulkCopyOptions individual o un valor de máscara de bits que indique las opciones deseadas de la enumeración IfxBulkCopyOptions. Comentarios Los datos se copiarán a una tabla del servidor de datos identificado en el parámetro de conexión. Ejemplo [C#] El ejemplo siguiente muestra una copia masiva de datos de una fuente DataTable en la tabla SALES utilizando los valores TableLock y Truncate de la enumeración IfxBulkCopyOptions. Todos los valores de la tabla de destino se borrarán antes de que empiece la operación de copia masiva y la tabla se bloqueará durante la operación de copia masiva. [C#] public static void copyIntoSales(IfxConnection conn, DataTable source) { IfxBulkCopy salesCopy = new IfxBulkCopy(connString, (IfxBulkCopyOptions)IfxBulkCopyOptions.TableLock | IfxBulkCopyOptions.Truncate); salesCopy.DestinationTableName = "SALES"; try { salesCopy.WriteToServer(source); salesCopy.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider

3-10

IBM Data Server Provider for .NET para Informix Dynamic Server

para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Constructor de IfxBulkCopy.IfxBulkCopy(string): Inicializa una nueva instancia de la clase IfxBulkCopy con una serie de caracteres de conexión de base de datos. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub New(connectionString As String) [C#] public IfxBulkCopy(string connectionString); [C++] public: IfxBulkCopy(String* connectionString); [JScript] public function IfxBulkCopy(connectionString : String);

Parámetros connectionString Serie de conexión para la conexión de base de datos. Comentarios Un objeto IfxConnection se inicializará utilizando la información de la serie de caracteres de la conexión. La IfxConnection se abrirá y los datos se copiarán en la tabla. La IfxConnection se cerrará de forma automática tras la operación de copia masiva. Ejemplo [C#] El ejemplo siguiente muestra una copia masiva de datos de una fuente DataTable en la tabla SALES. [C#] public static void copyIntoSales(String connString, DataTable source) { IfxBulkCopy salesCopy = new IfxBulkCopy(connString); salesCopy.DestinationTableName = "SALES"; try { salesCopy.WriteToServer(source); salesCopy.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Capítulo 3. IBM Data Server Provider for .NET

3-11

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Constructor de IfxBulkCopy.IfxBulkCopy(string, IBM.Data.DB2.IfxBulkCopyOptions): Inicializa una nueva instancia de la clase IfxBulkCopy con una serie de caracteres de conexión de base de datos y valores de enumeración de IfxBulkCopyOptions. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub New( _ connectionString As String, _ options As IfxBulkCopyOptions _ ) [C#] public IfxBulkCopy( string connectionString, IfxBulkCopyOptions options, ); [C++] public: IfxBulkCopy( String* connectionString, IfxBulkCopyOptions options, ); [JScript] public function IfxBulkCopy( connectionString : String, options : IfxBulkCopyOptions );

Parámetros connectionString Serie de conexión para la conexión de base de datos. options Opciones que se deben utilizar durante la operación de copia masiva. Se pueden especificar como una enumeración IfxBulkCopyOptions individual o un valor de máscara de bits que indique las opciones deseadas de la enumeración IfxBulkCopyOptions.

3-12

IBM Data Server Provider for .NET para Informix Dynamic Server

Comentarios Un objeto IfxConnection se inicializará utilizando la información de la serie de caracteres de la conexión. La IfxConnection se abrirá y los datos se copiarán en la tabla. La IfxConnection se cerrará de forma automática tras la operación de copia masiva. Ejemplo [C#] El ejemplo siguiente muestra una copia masiva de datos de una fuente DataTable en la tabla SALES utilizando los valores TableLock y Truncate de la enumeración IfxBulkCopyOptions. Todos los valores de la tabla de destino se borrarán antes de que empiece la operación de copia masiva y la tabla se bloqueará durante la operación de copia masiva. [C#] public static void copyIntoSales(IfxConnection connString, DataTable source) { IfxBulkCopy salesCopy = new IfxBulkCopy(connString, (IfxBulkCopyOptions)IfxBulkCopyOptions.TableLock | IfxBulkCopyOptions.Truncate); salesCopy.DestinationTableName = "SALES"; try { salesCopy.WriteToServer(source); salesCopy.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento.

Métodos de IfxBulkCopy Los métodos de la clase IfxBulkCopy se listan a continuación.

Métodos públicos Nombre

Descripción Cierra la instancia de IfxBulkCopy.

Close Cierra la instancia de IfxBulkCopy. Dispose

Capítulo 3. IBM Data Server Provider for .NET

3-13

Nombre WriteToServer

Descripción Sobrecargado. Copia todas las filas de una fuente de datos en la tabla de destino especificada por la propiedad DestinationTableName.

Consulta “Miembros de IfxBulkCopy” en la página 3-6 Facilita la copia de filas de una fuente de datos a otra. Las tablas siguientes listan los miembros expuestos por la clase IfxBulkCopy. “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxBulkCopy.Close: Cierra la instancia de IfxBulkCopy. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub Close [C#] public void Close () [C++] public: void Close () [JScript] public function Close ()

Comentarios Después de llamar a Close en una instancia de IfxBulkCopy, ninguna otra operación resultará satisfactoria. Cualquier acción realizada con miembros de una instancia de IfxBulkCopy después de ejecutar Close hará que el proveedor de datos emita una InvalidOperationException. Ejemplo [C#] El ejemplo siguiente muestra una copia masiva de datos de una fuente DataTable en la tabla SALES. [C#] public static void copyIntoSales(IfxConnection conn, DataTable source) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); salesCopy.DestinationTableName = "SALES"; try { salesCopy.WriteToServer(source);

3-14

IBM Data Server Provider for .NET para Informix Dynamic Server

salesCopy.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxBulkCopy.Dispose: Cierra la instancia de IfxBulkCopy. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub Dispose [C#] public void Dispose () [C++] public: void Dispose () [JScript] public function Dispose ()

Comentarios Después de llamar a Dispose en una instancia de IfxBulkCopy, ninguna otra operación resultará satisfactoria. Cualquier acción realizada con miembros de una instancia de IfxBulkCopy después de una operación Dispose provocará que la aplicación emita una excepción InvalidOperationException. Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos.

Capítulo 3. IBM Data Server Provider for .NET

3-15

“Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxBulkCopy.WriteToServer: Copia todas las filas de una fuente de datos en la tabla de destino especificada mediante la propiedad DestinationTableName. Lista de sobrecargas Nombre

Descripción

WriteToServer(System.Data.DataRow[ ])

Copia todas las filas de la matriz DataRow en la tabla de destino especificada mediante la propiedad DestinationTableName.

WriteToServer(System.Data.DataTable)

Copia todas las filas de la DataTable en la tabla de destino especificada mediante la propiedad DestinationTableName.

WriteToServer(System.Data.DataTable, System.Data.DataRowState)

Copia solamente las filas que están en el estado especificado (indicado en DataRowState) de la DataTable en la tabla de destino especificada mediante la propiedad DestinationTableName.

WriteToServer(System.Data.IDataReader)

Copia todas las filas del DataReader en la tabla de destino especificada mediante la propiedad DestinationTableName.

Consulta “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxBulkCopy.WriteToServer(System.Data.DataRow[ ]): Copia todas las filas de la matriz DataRow en una tabla de destino especificada por la propiedad DestinationTableName. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub WriteToServer ( dataRows As DataRow() ) [C#] public void WriteToServer ( DataRow[] dataRows ) [C++] public:

3-16

IBM Data Server Provider for .NET para Informix Dynamic Server

void WriteToServer ( array* dataRows ) [JScript] public function WriteToServer ( dataRows : DataRow[] )

Parámetros dataRows Matriz de objetos DataRow que se debe copiar en la tabla de destino. Ejemplo [C#] El ejemplo siguiente muestra una copia masiva de datos de una matriz de objetos DataRow en la tabla SALES. [C#] public static void copyIntoSales(IfxConnection conn, DataRow [] source) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); salesCopy.DestinationTableName = "SALES"; try { salesCopy.WriteToServer(source); salesCopy.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxBulkCopy.WriteToServer(System.Data.DataTable): Copia todas las filas de la DataTable en la tabla de destino especificada por la propiedad DestinationTableName. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub WriteToServer ( dataTable As DataTable ) [C#] public void WriteToServer ( DataTable dataTable ) [C++] public: Capítulo 3. IBM Data Server Provider for .NET

3-17

void WriteToServer ( DataTable* dataTable ) [JScript] public function WriteToServer ( dataTable : DataTable )

Parámetros dataTable Objeto DataTable cuyas filas se copiarán en la tabla de destino. Ejemplo [C#] El ejemplo siguiente muestra una copia masiva de datos de una fuente DataTable en la tabla SALES. [C#] public static void copyIntoSales(IfxConnection conn, DataTable source) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); salesCopy.DestinationTableName = "SALES"; try { salesCopy.WriteToServer(source); salesCopy.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxBulkCopy.WriteToServer(System.Data.DataTable, System.Data.DataRowState): Copia solamente las filas que están en el estado especificado (indicado en DataRowState) de la DataTable en la tabla de destino especificada mediante la propiedad DestinationTableName. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub WriteToServer ( _ dataTable As DataTable, _ rowState As DataRowState _

3-18

IBM Data Server Provider for .NET para Informix Dynamic Server

) [C#] public void WriteToServer ( DataTable dataTable, DataRowState rowState ) [C++] public: void WriteToServer ( DataTable* dataTable, DataRowState rowState ) [JScript] public function WriteToServer ( dataTable : DataTable, rowState : DataRowState )

Parámetros dataTable Objeto DataTable cuyas filas se copiarán en la tabla de destino. rowState Valor de la enumeración DataRowState que especifica el estado de las filas que se deben copiar en la tabla de destino. Comentarios Los estados permitidos que DataRowState puede especificar son Added, Changed y Unmodified. Ejemplo [C#] El ejemplo siguiente muestra una copia masiva de datos de una fuente DataTable en la tabla SALES. [C#] public static void copyIntoSales(IfxConnection conn, DataTable source) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); salesCopy.DestinationTableName = "SALES"; try { salesCopy.WriteToServer(source, DataRowState.Unchanged); salesCopy.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos.

Capítulo 3. IBM Data Server Provider for .NET

3-19

“Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. MétodoIfxBulkCopy.WriteToServer(System.Data.IDataReader): Copia todas las filas de DataReader en una tabla de destino especificada por la propiedad DestinationTableName. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub WriteToServer ( dataReader As IDataReader ) [C#] public void WriteToServer ( IDataReader dataReader ) [C++] public: void WriteToServer ( IDataReader* dataReader ) [JScript] public function WriteToServer ( dataReader : IDataReader )

Parámetros dataReader Objeto IDataReader cuyas filas se copiarán en la tabla de destino. Comentarios Para evitar una InvalidOperationException, la instancia de IfxBulkCopy necesita una instancia de IfxConnection que sea distinta a la instancia que IfxDataReader utiliza. Ejemplo [C#] El ejemplo siguiente demuestra una copia masiva de datos de un IfxDataReader en la tabla SALES. [C#] public static void copyIntoSales(IfxConnection conn, IfxDataReader reader) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); salesCopy.DestinationTableName = "SALES"; try { salesCopy.WriteToServer(reader); salesCopy.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

3-20

IBM Data Server Provider for .NET para Informix Dynamic Server

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento.

Propiedades de IfxBulkCopy Las propiedades de la clase IfxBulkCopy se listan a continuación.

Propiedades públicas Nombre BulkCopyTimeout

ColumnMappings

Descripción Número de segundos durante los cuales se debe ejecutar la operación de copia masiva antes de que se produzca un tiempo de espera excedido. Correlaciones de las columnas de la tabla de la fuente de datos con las columnas de la tabla de destino. Nombre de la tabla de destino residente en el servidor.

DestinationTableName Errores producidos en la operación de copia masiva. Errors NotifyAfter

Número de filas que se deben copiar antes de generar un suceso IfxRowsCopied.

Consulta “Miembros de IfxBulkCopy” en la página 3-6 Facilita la copia de filas de una fuente de datos a otra. Las tablas siguientes listan los miembros expuestos por la clase IfxBulkCopy. “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Propiedad IfxBulkCopy.BulkCopyTimeout: Número de segundos durante los cuales se debe ejecutar la operación de copia masiva antes de que se produzca un tiempo de espera excedido. Espacio de nombres: IBM.Data.Informix

Capítulo 3. IBM Data Server Provider for .NET

3-21

Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Property IfxBulkCopyTimeout As Integer [C#] public int IfxBulkCopyTimeout {get; set;} [C++] public: property int BulkCopyTimeout { int get(); void set (int value); } [JScript] public function get IfxBulkCopyTimeout () : int; public function set IfxBulkCopyTimeout (value : int);

Valor de la propiedad Valor entero de la propiedad IfxBulkCopyTimeout. El valor por omisión es cero, que significa que no hay tiempo de espera. Comentarios Si se proporciona una valor de IfxBulkCopyTimeout, éste alterará temporalmente el tiempo de espera de la consulta. De lo contrario, se aplicará el tiempo de espera de la consulta. Ejemplo [C#] El ejemplo siguiente muestra una copia masiva de datos de una fuente DataTable en la tabla SALES utilizando un tiempo de espera de 30 segundos. [C#] public static void copyIntoSales(IfxConnection conn, DataTable source) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); salesCopy.DestinationTableName = "SALES"; salesCopy.BulkCopyTimeout = 30; try { salesCopy.WriteToServer(source); salesCopy.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider

3-22

IBM Data Server Provider for .NET para Informix Dynamic Server

para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Propiedad IfxBulkCopy.ColumnMappings: Correlaciones de las columnas de la tabla de la fuente de datos con las columnas de la tabla de destino. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Property ColumnMappings As IfxBulkCopyColumnMappingCollection [C#] public IfxBulkCopyColumnMappingCollection ColumnMappings {get; set;} [C++] public: __property IfxBulkCopyColumnMappingCollection* get_ColumnMappings(); public: __property void set_ColumnMappings(IfxBulkCopyColumnMappingCollection*); [JScript] public function get ColumnMappings() : IfxBulkCopyColumnMappingCollection; public function set ColumnMappings(IfxBulkCopyColumnMappingCollection);

Valor de la propiedad Colección de correlaciones de columnas. Por omisión, es una colección vacía. Comentarios Las correlaciones definidas en la instancia de IfxBulkCopyColumnMappingCollection se validan en la llamada a WriteToServer(). Ejemplo [C#] El ejemplo siguiente demuestra una copia masiva de datos de un IfxDataReader en la tabla DEPARTMENT. Las correlaciones de columnas entre las tablas de origen y de destino se definen en una instancia de IfxBulkCopyColumnMappingCollection. [C#] public static void copyIntoSales(IfxConnection conn, IfxDataReader reader) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); salesCopy.DestinationTableName = "DEPARTMENT"; IfxBulkCopyColumnMappingCollection colMapCollection; colMapCollection = new IfxBulkCopyColumnMappingCollection(); salesCopy.ColumnMappings = colMapCollection; colMapCollection.Add("DEPTNUMB", "DEPTNO"); colMapCollection.Add("DEPTNAME", "DEPTNAME"); colMapCollection.Add("MANAGER", "ADMRDEPT"); colMapCollection.Add("LOCATION", "LOCATION"); try { Capítulo 3. IBM Data Server Provider for .NET

3-23

salesCopy.WriteToServer(reader); salesCopy.Close(); } catch (IfxException ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Propiedad IfxBulkCopy.DestinationTableName: Nombre de la tabla de destino del servidor donde se copiarán las filas de la fuente de datos. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Property DestinationTableName As String [C#] public string DestinationTableName {get; set;} [C++] public: __property String* get_DestinationTableName(); public: __property void set_DestinationTableName(String*); [JScript] public function get DestinationTableName() : String; public function set DestinationTableName(String);

Valor de la propiedad Valor de la serie de caracteres del nombre de la tabla de destino. Comentarios Para que la operación WriteToServer resulte satisfactoria, se debe especificar un valor de DestinationTableName. Si es necesario conservar la sensibilidad a mayúsculas y minúsculas para el nombre de la tabla de destino, debe escribir el nombre de la tabla de destino entre un par adicional de comillas dobles. Por ejemplo: salesCopy.DestinationTable = "\"CanadaSales\"";

3-24

IBM Data Server Provider for .NET para Informix Dynamic Server

El valor que proporcione para DestinationTableName puede incluir, opcionalmente, el nombre de base de datos y el nombre de esquema, además del nombre de tabla, que es obligatorio. Por ejemplo: SAMPLE.USER.SALES. Ejemplo [C#] El ejemplo siguiente muestra una copia masiva de datos de una fuente DataTable en la tabla SALES. [C#] public static void copyIntoSales(IfxConnection conn, DataTable source) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); salesCopy.DestinationTableName = "SALES"; try { salesCopy.WriteToServer(source); salesCopy.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Propiedad IfxBulkCopy.Errors: Errores producidos en la operación de copia masiva. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Property Errors As IfxErrorCollection [C#] public IfxErrorCollection Errors {get;} [C++] public: __property IfxErrorCollection* get_Errors(); [JScript] public function get Errors() : IfxErrorCollection;

Capítulo 3. IBM Data Server Provider for .NET

3-25

Valor de la propiedad Instancia de IfxErrorCollection que representa una colección de errores que se han producido durante la operación de copia masiva. Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Propiedad IfxBulkCopy.NotifyAfter: Número de filas que se deben copiar antes de generar un suceso IfxRowsCopied. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Property NotifyAfter As Integer [C#] public int NotifyAfter {get; set;} [C++] public: __property int get_NotifyAfter(); public: __property void set_NotifyAfter(int); [JScript] public function get NotifyAfter() : int; public function set NotifyAfter(int);

Valor de la propiedad Valor entero de la propiedad NotifyAfter que indica el número de filas que se deben copiar en la tabla de destino antes de generar un suceso IfxRowsCopied. La propiedad NotifyAfter puede establecerse a partir del manejador de sucesos de IfxRowsCopied. Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider

3-26

IBM Data Server Provider for .NET para Informix Dynamic Server

para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento.

Sucesos de IfxBulkCopy Los sucesos de la clase IfxBulkCopy se listan a continuación.

Sucesos públicos Nombre IfxRowsCopied

Descripción Se produce cada vez que el número de filas copiadas alcanza el valor definido en la propiedad NotifyAfter.

Consulta “Miembros de IfxBulkCopy” en la página 3-6 Facilita la copia de filas de una fuente de datos a otra. Las tablas siguientes listan los miembros expuestos por la clase IfxBulkCopy. “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Suceso de IfxBulkCopy.IfxRowsCopied: Se produce cada vez que el número de filas copiadas alcanza el valor definido en la propiedad NotifyAfter. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Event IfxRowsCopied As IfxRowsCopiedEventHandler [C#] public event IfxRowsCopiedEventHandler IfxRowsCopied; [C++] public: event IfxRowsCopiedEventHandler* IfxRowsCopied{ void add (IfxRowsCopiedEventHandler* value); void remove (IfxRowsCopiedEventHandler* value); }

[JScript] En JScript(R), podrá manejar los sucesos definidos por una clase, pero no podrá declarar nuevos sucesos. Comentarios La aplicación puede terminar anormalmente la operación en el manejador de sucesos estableciendo la propiedad Abort de IfxRowsCopiedEventArgs en true.

Capítulo 3. IBM Data Server Provider for .NET

3-27

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos. “Propiedad IfxBulkCopy.NotifyAfter” en la página 3-26 Número de filas que se deben copiar antes de generar un suceso IfxRowsCopied. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento.

Clase IfxBulkCopyColumnMapping Representa una correlación de columnas de la tabla fuente de datos con la tabla de destino. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll)

Jerarquía de herencia System.Object System.MarshalByRefObject IBM.Data.Informix.IfxBulkCopyColumnMapping

Sintaxis Visual Basic] NotInheritable Public Class IfxBulkCopyColumnMapping [C#] public sealed class IfxBulkCopyColumnMapping [C++] public __gc __sealed class IfxBulkCopyColumnMapping [JScript] public final class IfxBulkCopyColumnMapping

Comentarios Si no hay correlaciones de columnas definidas, las columnas se correlacionarán según sus posiciones ordinales en su respectivo esquema de tabla. Si las columnas fuente y de destino no son compatibles, se emitirá una excepción InvalidOperationException.

Ejemplo [C#] El ejemplo siguiente demuestra una copia masiva de datos de un IfxDataReader en la tabla DEPARTMENT. Las correlaciones de columnas entre las tablas de origen y de destino se definen mediante instancias de IfxBulkCopyColumnMapping. [C#] public static void copyIntoSales(IfxConnection conn, IfxDataReader reader) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn);

3-28

IBM Data Server Provider for .NET para Informix Dynamic Server

salesCopy.DestinationTableName = "DEPARTMENT"; IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping

colMapDeptNum colMapDeptNme colMapDeptMgr colMapDeptLoc

= = = =

new new new new

IfxBulkCopyColumnMapping("DEPTNUMB", "DEPTNO"); IfxBulkCopyColumnMapping("DEPTNAME", "DEPTNAME"); IfxBulkCopyColumnMapping("MANAGER", "ADMRDEPT"); IfxBulkCopyColumnMapping("LOCATION", "LOCATION");

salesCopy.ColumnMappings.Add(colMapDeptNum); salesCopy.ColumnMappings.Add(colMapDeptNme); salesCopy.ColumnMappings.Add(colMapDeptMgr); salesCopy.ColumnMappings.Add(colMapDeptLoc); try { salesCopy.WriteToServer(reader); salesCopy.Close(); } catch (IfxException ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Seguridad de hebra Cualquier miembro estático público (Shared en Visual Basic) de este tipo es seguro para operaciones multihebra. No se garantiza que cualquier miembro de instancia sea seguro para hebras.

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Miembros de IfxBulkCopyColumnMapping” Representa una correlación de columnas de la tabla fuente de datos con la tabla de destino. Las tablas siguientes listan los miembros expuestos por la clase IfxBulkCopyColumnMapping. “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos. “Clase IfxBulkCopyColumnMappingCollection” en la página 3-46 Representa una colección de correlaciones de columnas de la tabla fuente con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento.

Miembros de IfxBulkCopyColumnMapping Representa una correlación de columnas de la tabla fuente de datos con la tabla de destino. Las tablas siguientes listan los miembros expuestos por la clase IfxBulkCopyColumnMapping.

Constructores públicos Nombre

Descripción Sobrecargado. Inicializa un objeto IfxBulkCopyColumnMapping nuevo.

IfxBulkCopyColumnMapping

Capítulo 3. IBM Data Server Provider for .NET

3-29

Propiedades públicas Nombre

Descripción

DestinationColumn

Nombre de la columna con la que se establece correlación en la tabla de destino.

DestinationOrdinal

Valor ordinal de la columna con la que se establece correlación en la tabla de destino. Nombre de la columna que se copia de la fuente de datos.

SourceColumn SourceOrdinal

Valor ordinal de la columna que se está copiando de la fuente de datos.

Métodos públicos Nombre

Descripción

Equals (heredado de Object.) GetHashCode (heredado de Object.)

Determina si dos instancias de IfxBulkCopyColumnMapping son iguales. Funciona como una función de hash para un tipo determinado, apto para la utilización en algoritmos de hash y en estructuras de datos como una tabla hash. Obtiene el texto completo de la correlación de columnas.

ToString (heredado de Object.)

Consulta “Clase IfxBulkCopyColumnMapping” en la página 3-28 Representa una correlación de columnas de la tabla fuente de datos con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento.

Constructores de IfxBulkCopyColumnMapping Inicializa una instancia nueva de la clase IfxBulkCopyColumnMapping.

Lista de sobrecargas Nombre IfxBulkCopyColumnMapping()

Descripción Constructor por omisión que inicializa un nuevo objeto IfxBulkCopyColumnMapping. Inicializa un nuevo objeto IfxBulkCopyColumnMapping utilizando ordinales de columna para las columnas de la fuente de datos y de destino.

IfxBulkCopyColumnMapping(int, int)

3-30

IBM Data Server Provider for .NET para Informix Dynamic Server

Nombre

Descripción

IfxBulkCopyColumnMapping(int, string)

IfxBulkCopyColumnMapping(string, int)

Inicializa un nuevo objeto IfxBulkCopyColumnMapping utilizando un ordinal de columna para la columna de la fuente de datos y un nombre de columna para la columna de destino. Inicializa un nuevo objeto IfxBulkCopyColumnMapping utilizando un nombre de columna para la columna de la fuente de datos y un ordinal de columna para la columna de destino. Inicializa un nuevo objeto IfxBulkCopyColumnMapping utilizando nombres de columna para las columnas de la fuente de datos y de destino.

IfxBulkCopyColumnMapping(string, string)

Consulta “Miembros de IfxBulkCopyColumnMapping” en la página 3-29 Representa una correlación de columnas de la tabla fuente de datos con la tabla de destino. Las tablas siguientes listan los miembros expuestos por la clase IfxBulkCopyColumnMapping. “Clase IfxBulkCopyColumnMapping” en la página 3-28 Representa una correlación de columnas de la tabla fuente de datos con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Constructor de IfxBulkCopyColumnMapping.IfxBulkCopyColumnMapping(): Constructor por omisión que inicializa un nuevo objeto IfxBulkCopyColumnMapping. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub New [C#] public IfxBulkCopyColumnMapping(); [C++] public: IfxBulkCopyColumnMapping(); [JScript] public function IfxBulkCopyColumnMapping();

Comentarios Si utiliza este constructor para crear una instancia de IfxBulkCopyColumnMapping necesitará asignar las columnas de origen y de destino. Las columnas de origen pueden definirse mediante las propiedades SourceColumn y SourceOrdinal. Las columnas de destino pueden definirse mediante las propiedades DestinationColumn y DestinationOrdinal. Capítulo 3. IBM Data Server Provider for .NET

3-31

Ejemplo [C#] El ejemplo siguiente demuestra una copia masiva de datos de un IfxDataReader en la tabla DEPARTMENT. Las correlaciones de columnas entre las tablas de origen y de destino se definen en las instancias de IfxBulkCopyColumnMapping mediante las propiedades SourceColumn y DestinationColumn. [C#] public static void copyIntoSales(IfxConnection conn, IfxDataReader reader) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); salesCopy.DestinationTableName = "DEPARTMENT"; IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping

colMapDeptNum colMapDeptNme colMapDeptMgr colMapDeptLoc

colMapDeptNum.DestinationColumn colMapDeptNme.DestinationColumn colMapDeptMgr.DestinationColumn colMapDeptLoc.DestinationColumn colMapDeptNum.SourceColumn colMapDeptNme.SourceColumn colMapDeptMgr.SourceColumn colMapDeptLoc.SourceColumn

= = = =

= = = =

= = = =

new new new new

IfxBulkCopyColumnMapping(); IfxBulkCopyColumnMapping(); IfxBulkCopyColumnMapping(); IfxBulkCopyColumnMapping();

"DEPTNO"; "DEPTNAME"; "ADMRDEPT"; "LOCATION";

"DEPTNUMB"; "DEPTNAME"; "MANAGER"; "LOCATION";

salesCopy.ColumnMappings.Add(colMapDeptNum); salesCopy.ColumnMappings.Add(colMapDeptNme); salesCopy.ColumnMappings.Add(colMapDeptMgr); salesCopy.ColumnMappings.Add(colMapDeptLoc); try { salesCopy.WriteToServer(reader); salesCopy.Close(); } catch (IfxException ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopyColumnMapping” en la página 3-28 Representa una correlación de columnas de la tabla fuente de datos con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Constructor deIfxBulkCopyColumnMapping.IfxBulkCopyColumnMapping(int, int):

3-32

IBM Data Server Provider for .NET para Informix Dynamic Server

Inicializa un nuevo objeto IfxBulkCopyColumnMapping utilizando ordinales de columna para las columnas de la fuente de datos y de destino. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub New( _ source As Integer, _ destination As Integer _ ) [C#] public IfxBulkCopyColumnMapping( int source int destination ); [C++] public: IfxBulkCopyColumnMapping( int source int destination ); [JScript] public function IfxBulkCopyColumnMapping( source : int, destination : int )

Parámetros source Valor ordinal de la columna que se está copiando de la fuente de datos. destination Valor ordinal de la columna con la que se establece correlación en la tabla de destino. Ejemplo [C#] El ejemplo siguiente demuestra una copia masiva de datos de un IfxDataReader en la tabla DEPARTMENT. Las correlaciones de columnas entre las tablas de origen y de destino se definen mediante instancias de IfxBulkCopyColumnMapping. [C#] public static void copyIntoSales(IfxConnection conn, IfxDataReader reader) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); salesCopy.DestinationTableName = "DEPARTMENT"; IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping

colMapDeptNum colMapDeptNme colMapDeptMgr colMapDeptLoc

= = = =

new new new new

IfxBulkCopyColumnMapping(0,0); IfxBulkCopyColumnMapping(1,1); IfxBulkCopyColumnMapping(2,3); IfxBulkCopyColumnMapping(4,4);

salesCopy.ColumnMappings.Add(colMapDeptNum); salesCopy.ColumnMappings.Add(colMapDeptNme); salesCopy.ColumnMappings.Add(colMapDeptMgr); salesCopy.ColumnMappings.Add(colMapDeptLoc); try { salesCopy.WriteToServer(reader); Capítulo 3. IBM Data Server Provider for .NET

3-33

salesCopy.Close(); } catch (IfxException ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopyColumnMapping” en la página 3-28 Representa una correlación de columnas de la tabla fuente de datos con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Constructor de IfxBulkCopyColumnMapping.IfxBulkCopyColumnMapping(int, string): Inicializa un nuevo objeto IfxBulkCopyColumnMapping utilizando un ordinal de columna para la columna de la fuente de datos y un nombre de columna para la columna de destino. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub New( _ source As Integer, _ destination As String _ ) [C#] public IfxBulkCopyColumnMapping( int source string destination ); [C++] public: IfxBulkCopyColumnMapping( int source String* destination ); [JScript] public function IfxBulkCopyColumnMapping( source : int, destination : String )

Parámetros source Valor ordinal de la columna que se está copiando de la fuente de datos.

3-34

IBM Data Server Provider for .NET para Informix Dynamic Server

destination Nombre de la columna con la que se establece correlación en la tabla de destino. Comentarios Para mantener la sensibilidad a mayúsculas y minúsculas, el nombre de la columna debe aparecer entre un par adicional de comillas dobles. Por ejemplo, la columna de destino puede definirse de la forma siguiente: IfxBulkCopyColumnMapping colMapDeptNum = new IfxBulkCopyColumnMapping(0, "\"LoCaTion\"");

Ejemplo [C#] El ejemplo siguiente demuestra una copia masiva de datos de un IfxDataReader en la tabla DEPARTMENT. Las correlaciones de columnas entre las tablas de origen y de destino se definen mediante instancias de IfxBulkCopyColumnMapping. [C#] public static void copyIntoSales(IfxConnection conn, IfxDataReader reader) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); salesCopy.DestinationTableName = "DEPARTMENT"; IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping

colMapDeptNum colMapDeptNme colMapDeptMgr colMapDeptLoc

= = = =

new new new new

IfxBulkCopyColumnMapping(0, IfxBulkCopyColumnMapping(1, IfxBulkCopyColumnMapping(2, IfxBulkCopyColumnMapping(4,

"\"DEPTNO\""); "\"DEPTNAME\""); "\"ADMRDEPT\""); "\"LOCATION\"");

salesCopy.ColumnMappings.Add(colMapDeptNum); salesCopy.ColumnMappings.Add(colMapDeptNme); salesCopy.ColumnMappings.Add(colMapDeptMgr); salesCopy.ColumnMappings.Add(colMapDeptLoc); try { salesCopy.WriteToServer(reader); salesCopy.Close(); } catch (IfxException ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopyColumnMapping” en la página 3-28 Representa una correlación de columnas de la tabla fuente de datos con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento.

Capítulo 3. IBM Data Server Provider for .NET

3-35

Constructor de IfxBulkCopyColumnMapping.IfxBulkCopyColumnMapping(string, int): Inicializa un nuevo objeto IfxBulkCopyColumnMapping utilizando un nombre de columna para la columna de la fuente de datos y un ordinal de columna para la columna de destino. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub New( _ source As String, _ destination As Integer _ ) [C#] public IfxBulkCopyColumnMapping( string source int destination ); [C++] public: IfxBulkCopyColumnMapping( String* source int destination ); [JScript] public function IfxBulkCopyColumnMapping( source : String, destination : int )

Parámetros source Nombre de la columna que se copia de la fuente de datos. destination Valor ordinal de la columna con la que se establece correlación en la tabla de destino. Comentarios Para mantener la sensibilidad a mayúsculas y minúsculas, el nombre de la columna debe aparecer entre un par adicional de comillas dobles. Por ejemplo, la columna de origen puede definirse de la forma siguiente: IfxBulkCopyColumnMapping colMapDeptNum = new IfxBulkCopyColumnMapping("\"LoCaTion\"", 0);

Ejemplo [C#] El ejemplo siguiente demuestra una copia masiva de datos de un IfxDataReader en la tabla DEPARTMENT. Las correlaciones de columnas entre las tablas de origen y de destino se definen mediante instancias de IfxBulkCopyColumnMapping. [C#] public static void copyIntoSales(IfxConnection conn, IfxDataReader reader) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn);

3-36

IBM Data Server Provider for .NET para Informix Dynamic Server

salesCopy.DestinationTableName = "DEPARTMENT"; IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping

colMapDeptNum colMapDeptNme colMapDeptMgr colMapDeptLoc

= = = =

new new new new

IfxBulkCopyColumnMapping("\"DEPTNUMB\"", 0); IfxBulkCopyColumnMapping("\"DEPTNAME\"", 1); IfxBulkCopyColumnMapping("\"MANAGER\"", 3); IfxBulkCopyColumnMapping("\"LOCATION\"", 4);

salesCopy.ColumnMappings.Add(colMapDeptNum); salesCopy.ColumnMappings.Add(colMapDeptNme); salesCopy.ColumnMappings.Add(colMapDeptMgr); salesCopy.ColumnMappings.Add(colMapDeptLoc); try { salesCopy.WriteToServer(reader); salesCopy.Close(); } catch (IfxException ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopyColumnMapping” en la página 3-28 Representa una correlación de columnas de la tabla fuente de datos con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Constructor de IfxBulkCopyColumnMapping.IfxBulkCopyColumnMapping(string, string): Inicializa un nuevo objeto IfxBulkCopyColumnMapping utilizando nombres de columna para las columnas de la fuente de datos y de destino. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub New( _ source As String, _ destination As String _ ) [C#] public IfxBulkCopyColumnMapping( string source string destination ); [C++] public: IfxBulkCopyColumnMapping( Capítulo 3. IBM Data Server Provider for .NET

3-37

String* source String* destination ); [JScript] public function IfxBulkCopyColumnMapping( source : String, destination : String )

Parámetros source Nombre de la columna que se copia de la fuente de datos. destination Nombre de la columna con la que se establece correlación en la tabla de destino. Comentarios Para mantener la sensibilidad a mayúsculas y minúsculas, el nombre de la columna debe aparecer entre un par adicional de comillas dobles. Por ejemplo, las columnas de origen y de destino pueden definirse de la forma siguiente: IfxBulkCopyColumnMapping colMapDeptNum = new IfxBulkCopyColumnMapping("\"LoCaTion1\"", "\"LoCaTion2\"");

Ejemplo [C#] El ejemplo siguiente demuestra una copia masiva de datos de un IfxDataReader en la tabla DEPARTMENT. Las correlaciones de columnas entre las tablas de origen y de destino se definen mediante instancias de IfxBulkCopyColumnMapping. [C#] public static void copyIntoSales(IfxConnection conn, IfxDataReader reader) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); salesCopy.DestinationTableName = "DEPARTMENT"; IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping

colMapDeptNum colMapDeptNme colMapDeptMgr colMapDeptLoc

= = = =

new new new new

IfxBulkCopyColumnMapping("\"DEPTNUMB\"", "\"DEPTNO\""); IfxBulkCopyColumnMapping("\"DEPTNAME\"", "\"DEPTNAME\""); IfxBulkCopyColumnMapping("\"MANAGER\"", "\"ADMRDEPT\""); IfxBulkCopyColumnMapping("\"LOCATION\"", "\"LOCATION\"");

salesCopy.ColumnMappings.Add(colMapDeptNum); salesCopy.ColumnMappings.Add(colMapDeptNme); salesCopy.ColumnMappings.Add(colMapDeptMgr); salesCopy.ColumnMappings.Add(colMapDeptLoc); try { salesCopy.WriteToServer(reader); salesCopy.Close(); } catch (IfxException ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopyColumnMapping” en la página 3-28 Representa una correlación de columnas de la tabla fuente de datos con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider

3-38

IBM Data Server Provider for .NET para Informix Dynamic Server

para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento.

Métodos de IfxBulkCopyColumnMapping Los métodos de la clase IfxBulkCopyColumnMapping se listan a continuación.

Métodos públicos Nombre Equals (heredado de Object.) GetHashCode (heredado de Object.)

Descripción Determina si dos instancias de IfxBulkCopyColumnMapping son iguales. Funciona como una función de hash para un tipo determinado, apto para la utilización en algoritmos de hash y en estructuras de datos como una tabla hash. Obtiene el texto completo de la correlación de columnas.

ToString (heredado de Object.)

Consulta “Miembros de IfxBulkCopyColumnMapping” en la página 3-29 Representa una correlación de columnas de la tabla fuente de datos con la tabla de destino. Las tablas siguientes listan los miembros expuestos por la clase IfxBulkCopyColumnMapping. “Clase IfxBulkCopyColumnMapping” en la página 3-28 Representa una correlación de columnas de la tabla fuente de datos con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento.

Propiedades de IfxBulkCopyColumnMapping Las propiedades de la clase IfxBulkCopyColumnMapping se listan a continuación.

Propiedades públicas Nombre

Descripción

DestinationColumn

Nombre de la columna con la que se establece correlación en la tabla de destino.

DestinationOrdinal

Valor ordinal de la columna con la que se establece correlación en la tabla de destino. Nombre de la columna que se copia de la fuente de datos.

SourceColumn SourceOrdinal

Valor ordinal de la columna que se está copiando de la fuente de datos.

Consulta

Capítulo 3. IBM Data Server Provider for .NET

3-39

“Miembros de IfxBulkCopyColumnMapping” en la página 3-29 Representa una correlación de columnas de la tabla fuente de datos con la tabla de destino. Las tablas siguientes listan los miembros expuestos por la clase IfxBulkCopyColumnMapping. “Clase IfxBulkCopyColumnMapping” en la página 3-28 Representa una correlación de columnas de la tabla fuente de datos con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Propiedad IfxBulkCopyColumnMapping.DestinationColumn: Nombre de la columna con la que se establece correlación en la tabla de destino. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Property DestinationColumn As String [C#] public string DestinationColumn {get; set;} [C++] public: __property String* get_DestinationColumn(); public: __property void set_DestinationColumn(String*); [JScript] public function get DestinationColumn() : String; public function set DestinationColumn(String);

Valor de la propiedad Valor de la serie de caracteres del nombre de la columna de destino. Comentarios En caso de que un valor de la columna de destino esté definido varias veces (si los valores se añaden varias veces a las propiedades DestinationColumn o DestinationOrdinal o si un valor se ha asignado por lo menos una vez en cada una de estas dos propiedades), en el método Add se utiliza el valor que se haya definido el último. Para mantener la sensibilidad a mayúsculas y minúsculas, el nombre de la columna debe aparecer entre un par adicional de comillas dobles. Por ejemplo, la columna de destino puede definirse de la forma siguiente: salesCopy.ColumnMappings.DestinationColumn= "\"LoCaTion\"";

Ejemplo [C#] El ejemplo siguiente demuestra una copia masiva de datos de un IfxDataReader en la tabla DEPARTMENT. Las correlaciones de columnas entre las

3-40

IBM Data Server Provider for .NET para Informix Dynamic Server

tablas de origen y de destino se definen en las instancias de IfxBulkCopyColumnMapping mediante las propiedades SourceColumn y DestinationColumn. [C#] public static void copyIntoSales(IfxConnection conn, IfxDataReader reader) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); salesCopy.DestinationTableName = "DEPARTMENT"; IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping

colMapDeptNum colMapDeptNme colMapDeptMgr colMapDeptLoc

colMapDeptNum.DestinationColumn colMapDeptNme.DestinationColumn colMapDeptMgr.DestinationColumn colMapDeptLoc.DestinationColumn colMapDeptNum.SourceColumn colMapDeptNme.SourceColumn colMapDeptMgr.SourceColumn colMapDeptLoc.SourceColumn

= = = =

= = = =

= = = =

new new new new

IfxBulkCopyColumnMapping(); IfxBulkCopyColumnMapping(); IfxBulkCopyColumnMapping(); IfxBulkCopyColumnMapping();

"DEPTNO"; "DEPTNAME"; "ADMRDEPT"; "LOCATION";

"DEPTNUMB"; "DEPTNAME"; "MANAGER"; "LOCATION";

salesCopy.ColumnMappings.Add(colMapDeptNum); salesCopy.ColumnMappings.Add(colMapDeptNme); salesCopy.ColumnMappings.Add(colMapDeptMgr); salesCopy.ColumnMappings.Add(colMapDeptLoc); try { salesCopy.WriteToServer(reader); salesCopy.Close(); } catch (IfxException ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopyColumnMapping” en la página 3-28 Representa una correlación de columnas de la tabla fuente de datos con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Propiedad IfxBulkCopyColumnMapping.DestinationOrdinal: Valor ordinal de la columna con la que se establece correlación en la tabla de destino. Espacio de nombres: IBM.Data.Informix

Capítulo 3. IBM Data Server Provider for .NET

3-41

Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Property DestinationOrdinal As Integer [C#] public int DestinationOrdinal {get; set;} [C++] public: __property int get_DestinationOrdinal(); public: __property void set_DestinationOrdinal(int); [JScript] public function get DestinationOrdinal() : int; public function set DestinationOrdinal(int);

Valor de la propiedad Valor entero del ordinal que representa la columna de destino. Comentarios En caso de que un valor de la columna de destino esté definido varias veces (si los valores se añaden varias veces a las propiedades DestinationColumn o DestinationOrdinal o si un valor se ha asignado por lo menos una vez en cada una de estas dos propiedades), en el método Add se utiliza el valor que se haya definido el último. Ejemplo [C#] El ejemplo siguiente demuestra una copia masiva de datos de un IfxDataReader en la tabla DEPARTMENT. Las correlaciones de columnas entre las tablas de origen y de destino se definen en las instancias de IfxBulkCopyColumnMapping mediante las propiedades SourceOrdinal y DestinationOrdinal. [C#] public static void copyIntoSales(IfxConnection conn, IfxDataReader reader) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); salesCopy.DestinationTableName = "DEPARTMENT"; IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping

colMapDeptNum colMapDeptNme colMapDeptMgr colMapDeptLoc

colMapDeptNum.DestinationOrdinal colMapDeptNme.DestinationOrdinal colMapDeptMgr.DestinationOrdinal colMapDeptLoc.DestinationOrdinal colMapDeptNum.SourceOrdinal colMapDeptNme.SourceOrdinal colMapDeptMgr.SourceOrdinal colMapDeptLoc.SourceOrdinal

= = = =

= = = =

= = = =

new new new new

0; 1; 3; 4;

0; 1; 2; 4;

salesCopy.ColumnMappings.Add(colMapDeptNum); salesCopy.ColumnMappings.Add(colMapDeptNme); salesCopy.ColumnMappings.Add(colMapDeptMgr); salesCopy.ColumnMappings.Add(colMapDeptLoc); try

3-42

IBM Data Server Provider for .NET para Informix Dynamic Server

IfxBulkCopyColumnMapping(); IfxBulkCopyColumnMapping(); IfxBulkCopyColumnMapping(); IfxBulkCopyColumnMapping();

{ salesCopy.WriteToServer(reader); salesCopy.Close(); } catch (IfxException ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopyColumnMapping” en la página 3-28 Representa una correlación de columnas de la tabla fuente de datos con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Propiedad IfxBulkCopyColumnMapping.SourceColumn: Nombre de la columna que se copia de la fuente de datos. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Property SourceColumn As String [C#] public string SourceColumn {get; set;} [C++] public: __property String* get_SourceColumn(); public: __property void set_SourceColumn(String*); [JScript] public function get SourceColumn() : String; public function set SourceColumn(String);

Valor de la propiedad Valor de la serie de caracteres del nombre de la columna de origen. Comentarios En caso de que un valor de la columna de origen esté definido varias veces (si los valores se añaden varias veces a las propiedades SourceColumn o SourceOrdinal o si un valor se ha asignado por lo menos una vez en cada una de estas dos propiedades), en el método Add se utiliza el valor que se haya definido el último. Para mantener la sensibilidad a mayúsculas y minúsculas, el nombre de la columna debe aparecer entre un par adicional de comillas dobles. Por ejemplo, la columna de origen puede definirse de la forma siguiente: Capítulo 3. IBM Data Server Provider for .NET

3-43

salesCopy.ColumnMappings.SourceColumn= "\"LoCaTion\"";

Ejemplo [C#] El ejemplo siguiente demuestra una copia masiva de datos de un IfxDataReader en la tabla DEPARTMENT. Las correlaciones de columnas entre las tablas de origen y de destino se definen en las instancias de IfxBulkCopyColumnMapping mediante las propiedades SourceColumn y DestinationColumn. [C#] public static void copyIntoSales(IfxConnection conn, IfxDataReader reader) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); salesCopy.DestinationTableName = "DEPARTMENT"; IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping

colMapDeptNum colMapDeptNme colMapDeptMgr colMapDeptLoc

colMapDeptNum.DestinationColumn colMapDeptNme.DestinationColumn colMapDeptMgr.DestinationColumn colMapDeptLoc.DestinationColumn colMapDeptNum.SourceColumn colMapDeptNme.SourceColumn colMapDeptMgr.SourceColumn colMapDeptLoc.SourceColumn

= = = =

= = = =

= = = =

new new new new

IfxBulkCopyColumnMapping(); IfxBulkCopyColumnMapping(); IfxBulkCopyColumnMapping(); IfxBulkCopyColumnMapping();

"DEPTNO"; "DEPTNAME"; "ADMRDEPT"; "LOCATION";

"DEPTNUMB"; "DEPTNAME"; "MANAGER"; "LOCATION";

salesCopy.ColumnMappings.Add(colMapDeptNum); salesCopy.ColumnMappings.Add(colMapDeptNme); salesCopy.ColumnMappings.Add(colMapDeptMgr); salesCopy.ColumnMappings.Add(colMapDeptLoc); try { salesCopy.WriteToServer(reader); salesCopy.Close(); } catch (IfxException ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopyColumnMapping” en la página 3-28 Representa una correlación de columnas de la tabla fuente de datos con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Propiedad IfxBulkCopyColumnMapping.SourceOrdinal:

3-44

IBM Data Server Provider for .NET para Informix Dynamic Server

Valor ordinal de la columna que se está copiando de la fuente de datos. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Property SourceOrdinal As Integer [C#] public int SourceOrdinal {get; set;} [C++] public: __property int get_SourceOrdinal(); public: __property void set_SourceOrdinal(int); [JScript] public function get SourceOrdinal() : int; public function set SourceOrdinal(int);

Valor de la propiedad Valor entero del ordinal que representa la columna de origen. Comentarios En caso de que un valor de la columna de origen esté definido varias veces (si los valores se añaden varias veces a las propiedades SourceColumn o SourceOrdinal o si un valor se ha asignado por lo menos una vez en cada una de estas dos propiedades), en el método Add se utiliza el valor que se haya definido el último. Ejemplo [C#] El ejemplo siguiente demuestra una copia masiva de datos de un IfxDataReader en la tabla DEPARTMENT. Las correlaciones de columnas entre las tablas de origen y de destino se definen en las instancias de IfxBulkCopyColumnMapping mediante las propiedades SourceOrdinal y DestinationOrdinal. [C#] public static void copyIntoSales(IfxConnection conn, IfxDataReader reader) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); salesCopy.DestinationTableName = "DEPARTMENT"; IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping

colMapDeptNum colMapDeptNme colMapDeptMgr colMapDeptLoc

colMapDeptNum.DestinationOrdinal colMapDeptNme.DestinationOrdinal colMapDeptMgr.DestinationOrdinal colMapDeptLoc.DestinationOrdinal colMapDeptNum.SourceOrdinal colMapDeptNme.SourceOrdinal colMapDeptMgr.SourceOrdinal colMapDeptLoc.SourceOrdinal

= = = =

= = = =

= = = =

new new new new

IfxBulkCopyColumnMapping(); IfxBulkCopyColumnMapping(); IfxBulkCopyColumnMapping(); IfxBulkCopyColumnMapping();

0; 1; 3; 4;

0; 1; 2; 4;

salesCopy.ColumnMappings.Add(colMapDeptNum); salesCopy.ColumnMappings.Add(colMapDeptNme); Capítulo 3. IBM Data Server Provider for .NET

3-45

salesCopy.ColumnMappings.Add(colMapDeptMgr); salesCopy.ColumnMappings.Add(colMapDeptLoc); try { salesCopy.WriteToServer(reader); salesCopy.Close(); } catch (IfxException ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopyColumnMapping” en la página 3-28 Representa una correlación de columnas de la tabla fuente de datos con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento.

Clase IfxBulkCopyColumnMappingCollection Representa una colección de correlaciones de columnas de la tabla fuente con la tabla de destino. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll)

Jerarquía de herencia System.Object System.Collections.CollectionBase IBM.Data.Informix.IfxBulkCopyColumnMappingCollection

Sintaxis Visual Basic] NotInheritable Public Class IfxBulkCopyColumnMappingCollection _ Inherits System.Collections.CollectionBase [C#] public sealed class IfxBulkCopyColumnMappingCollection : System.Collections.CollectionBase [C++] public ref class IfxBulkCopyColumnMappingCollection sealed : public System.Collections.CollectionBase [JScript] public final class IfxBulkCopyColumnMappingCollection extends System.Collections.CollectionBase

Comentarios Si no hay correlaciones de columnas definidas, las columnas se correlacionarán según sus posiciones ordinales en su respectivo esquema de tabla. Si las columnas fuente y de destino no son compatibles, se emitirá una excepción InvalidOperationException.

3-46

IBM Data Server Provider for .NET para Informix Dynamic Server

Ejemplo [C#] El ejemplo siguiente demuestra una copia masiva de datos de un IfxDataReader en la tabla DEPARTMENT. Las correlaciones de columnas entre las tablas de origen y de destino se definen en una instancia de IfxBulkCopyColumnMappingCollection. [C#] public static void copyIntoSales(IfxConnection conn, IfxDataReader reader) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); salesCopy.DestinationTableName = "DEPARTMENT"; IfxBulkCopyColumnMappingCollection colMapCollection; colMapCollection = new IfxBulkCopyColumnMappingCollection(); salesCopy.ColumnMappings = colMapCollection; colMapCollection.Add("DEPTNUMB", "DEPTNO"); colMapCollection.Add("DEPTNAME", "DEPTNAME"); colMapCollection.Add("MANAGER", "ADMRDEPT"); colMapCollection.Add("LOCATION", "LOCATION"); try { salesCopy.WriteToServer(reader); salesCopy.Close(); } catch (IfxException ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Seguridad de hebra Cualquier miembro estático público (Shared en Visual Basic) de este tipo es seguro para operaciones multihebra. No se garantiza que cualquier miembro de instancia sea seguro para hebras.

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Miembros de IfxBulkCopyColumnMappingCollection” en la página 3-48 Representa una colección de correlaciones de columnas de la tabla fuente con la tabla de destino. Las tablas siguientes listan los miembros expuestos por la clase IfxBulkCopyColumnMappingCollection. “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos. “Clase IfxBulkCopyColumnMapping” en la página 3-28 Representa una correlación de columnas de la tabla fuente de datos con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Capítulo 3. IBM Data Server Provider for .NET

3-47

Miembros de IfxBulkCopyColumnMappingCollection Representa una colección de correlaciones de columnas de la tabla fuente con la tabla de destino. Las tablas siguientes listan los miembros expuestos por la clase IfxBulkCopyColumnMappingCollection.

Constructores públicos Nombre

Descripción

IfxBulkCopyColumnMappingCollection

Inicializa un nuevo objeto IfxBulkCopyColumnMappingCollection.

Métodos públicos Nombre Add

Clear

Descripción Sobrecargado. Crea una IfxBulkCopyColumnMapping utilizando nombres de columna para las columnas de la fuente de datos y las columnas de destino, y lo añade a IfxBulkCopyColumnMappingCollection. Borra la colección actual de los objetos IfxBulkCopyColumnMapping.

Contains

Devuelve un valor que indica si el objeto IfxBulkCopyColumnMapping especificado está en IfxBulkCopyColumnMappingCollection.

CopyTo

Copia los objetos IfxBulkCopyColumnMapping de IfxBulkCopyColumnMappingCollection en una matriz de objetos IfxBulkCopyColumnMapping, comenzando en un índice especificado de la matriz.

IndexOf

Devuelve un valor que indica la posición de la IfxBulkCopyColumnMappingCollection donde está ubicado el objeto IfxBulkCopyColumnMapping especificado.

Insert

Inserte la IfxBulkCopyColumnMapping especificada en la IfxBulkCopyColumnMappingCollection en la posición de índice especificada.

Remove RemoveAt

ToString (heredado de Object.)

Elimina la IfxBulkCopyColumnMapping especificada de IfxBulkCopyColumnMappingCollection. Elimina la IfxBulkCopyColumnMapping en la posición de índice especificada de la IfxBulkCopyColumnMappingCollection. Obtiene el texto completo de las correlaciones de columnas de IfxBulkCopyColumnMappingCollection.

Métodos protegidos Nombre

Descripción

OnInsert (heredado de CollectionBase.)

Realiza procesos personalizados adicionales antes de insertar una nueva correlación en la instancia de IfxBulkCopyColumnMappingCollection.

Consulta

3-48

IBM Data Server Provider for .NET para Informix Dynamic Server

“Clase IfxBulkCopyColumnMappingCollection” en la página 3-46 Representa una colección de correlaciones de columnas de la tabla fuente con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento.

Constructor de IfxBulkCopyColumnMappingCollection Inicializa un nuevo objeto IfxBulkCopyColumnMappingCollection. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll)

Sintaxis Visual Basic] Public Sub New [C#] public IfxBulkCopyColumnMappingCollection(); [C++] public: IfxBulkCopyColumnMappingCollection(); [JScript] public function IfxBulkCopyColumnMappingCollection();

Comentarios Si utiliza este constructor para crear una instancia de IfxBulkCopyColumnMappingCollection, necesitará añadir correlaciones de columnas. Se pueden añadir correlaciones de columnas utilizando los métodos Add o Insert.

Ejemplo [C#] El ejemplo siguiente demuestra una copia masiva de datos de un IfxDataReader en la tabla DEPARTMENT. Las correlaciones de columnas entre las tablas de origen y de destino se definen en una instancia de IfxBulkCopyColumnMappingCollection. [C#] public static void copyIntoSales(IfxConnection conn, IfxDataReader reader) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); salesCopy.DestinationTableName = "DEPARTMENT"; IfxBulkCopyColumnMappingCollection colMapCollection; colMapCollection = new IfxBulkCopyColumnMappingCollection(); salesCopy.ColumnMappings = colMapCollection; colMapCollection.Add("DEPTNUMB", "DEPTNO"); colMapCollection.Add("DEPTNAME", "DEPTNAME"); colMapCollection.Add("MANAGER", "ADMRDEPT"); colMapCollection.Add("LOCATION", "LOCATION"); try { salesCopy.WriteToServer(reader); salesCopy.Close(); Capítulo 3. IBM Data Server Provider for .NET

3-49

} catch (IfxException ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopyColumnMappingCollection” en la página 3-46 Representa una colección de correlaciones de columnas de la tabla fuente con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento.

Métodos de IfxBulkCopyColumnMappingCollection Los métodos de la clase IfxBulkCopyColumnMappingCollection se listan a continuación.

Métodos públicos Nombre Add

Clear

Sobrecargado. Crea una IfxBulkCopyColumnMapping utilizando nombres de columna para las columnas de la fuente de datos y las columnas de destino, y lo añade a IfxBulkCopyColumnMappingCollection. Borra la colección actual de los objetos IfxBulkCopyColumnMapping.

Contains

Devuelve un valor que indica si el objeto IfxBulkCopyColumnMapping especificado está en IfxBulkCopyColumnMappingCollection.

CopyTo

Copia los objetos IfxBulkCopyColumnMapping de IfxBulkCopyColumnMappingCollection en una matriz de objetos IfxBulkCopyColumnMapping, comenzando en un índice especificado de la matriz.

IndexOf

Devuelve un valor que indica la posición de la IfxBulkCopyColumnMappingCollection donde está ubicado el objeto IfxBulkCopyColumnMapping especificado.

Insert

Inserte la IfxBulkCopyColumnMapping especificada en la IfxBulkCopyColumnMappingCollection en la posición de índice especificada.

Remove RemoveAt

ToString (heredado de Object.)

3-50

Descripción

Elimina la IfxBulkCopyColumnMapping especificada de IfxBulkCopyColumnMappingCollection. Elimina la IfxBulkCopyColumnMapping en la posición de índice especificada de la IfxBulkCopyColumnMappingCollection. Obtiene el texto completo de las correlaciones de columnas de IfxBulkCopyColumnMappingCollection.

IBM Data Server Provider for .NET para Informix Dynamic Server

Métodos protegidos Nombre

Descripción

OnInsert (heredado de CollectionBase.)

Realiza procesos personalizados adicionales antes de insertar una nueva correlación en la instancia de IfxBulkCopyColumnMappingCollection.

Consulta “Miembros de IfxBulkCopyColumnMappingCollection” en la página 3-48 Representa una colección de correlaciones de columnas de la tabla fuente con la tabla de destino. Las tablas siguientes listan los miembros expuestos por la clase IfxBulkCopyColumnMappingCollection. “Clase IfxBulkCopyColumnMappingCollection” en la página 3-46 Representa una colección de correlaciones de columnas de la tabla fuente con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxBulkCopyColumnMappingCollection.Add: Crea una IfxBulkCopyColumnMapping utilizando nombres de columna para las columnas de la fuente de datos y las columnas de destino, y lo añade a IfxBulkCopyColumnMappingCollection. Lista de sobrecargas Add(IBM.Data.Informix.IfxBulkCopyColumnMapping)

Añade la IfxBulkCopyColumnMapping especificada a IfxBulkCopyColumnMappingCollection.

Add(int, int)

Crea una IfxBulkCopyColumnMapping utilizando ordinales de columna para las columnas de la fuente de datos y las columnas de destino, y la añade a IfxBulkCopyColumnMappingCollection.

Add(int, string)

Crea una IfxBulkCopyColumnMapping utilizando un ordinal de columna para la columna de la fuente de datos y un nombre de columna para la columna de destino, y la añade a IfxBulkCopyColumnMappingCollection.

Add(string, int)

Crea una IfxBulkCopyColumnMapping utilizando un nombre de columna para la columna de la fuente de datos y un ordinal de columna para la columna de destino, y la añade a IfxBulkCopyColumnMappingCollection.

Add(string, string)

Crea una IfxBulkCopyColumnMapping utilizando nombres de columna para las columnas de la fuente de datos y las columnas de destino, y lo añade a IfxBulkCopyColumnMappingCollection.

Consulta

Capítulo 3. IBM Data Server Provider for .NET

3-51

“Clase IfxBulkCopyColumnMappingCollection” en la página 3-46 Representa una colección de correlaciones de columnas de la tabla fuente con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxBulkCopyColumnMappingCollection.Add (IBM.Data.Informix.IfxBulkCopyColumnMapping): Añade la IfxBulkCopyColumnMapping especificada a IfxBulkCopyColumnMappingCollection. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Function Add ( _ bulkCopyColumnMapping As IfxBulkCopyColumnMapping _ ) As IfxBulkCopyColumnMapping [C#] public IfxBulkCopyColumnMapping Add(IfxBulkCopyColumnMapping bulkCopyColumnMapping) [C++] public: IfxBulkCopyColumnMapping* Add (IfxBulkCopyColumnMapping* bulkCopyColumnMapping) [JScript] public function Add( bulkCopyColumnMapping : IfxBulkCopyColumnMapping ) : IfxBulkCopyColumnMapping

Parámetros bulkCopyColumnMapping Correlación de columnas que se añadirá a IfxBulkCopyColumnMappingCollection. Valor de retorno Correlación de columnas añadida a IfxBulkCopyColumnMappingCollection. Ejemplo [C#] El ejemplo siguiente demuestra una copia masiva de datos de un IfxDataReader en la tabla DEPARTMENT. Las correlaciones de columnas entre las tablas de origen y de destino se definen en una instancia de IfxBulkCopyColumnMappingCollection. [C#] public static void copyIntoSales(IfxConnection conn, IfxDataReader reader) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); salesCopy.DestinationTableName = "DEPARTMENT"; IfxBulkCopyColumnMappingCollection colMapCollection; colMapCollection = new IfxBulkCopyColumnMappingCollection();

3-52

IBM Data Server Provider for .NET para Informix Dynamic Server

salesCopy.ColumnMappings = colMapCollection; IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping IfxBulkCopyColumnMapping

colMapDeptNum colMapDeptNme colMapDeptMgr colMapDeptLoc

= = = =

new new new new

IfxBulkCopyColumnMapping("DEPTNUMB", "DEPTNO"); IfxBulkCopyColumnMapping("DEPTNAME", "DEPTNAME"); IfxBulkCopyColumnMapping("MANAGER", "ADMRDEPT"); IfxBulkCopyColumnMapping("LOCATION", "LOCATION");

colMapCollection.Add(colMapDeptNum); colMapCollection.Add(colMapDeptNme); colMapCollection.Add(colMapDeptMgr); colMapCollection.Add(colMapDeptLoc); try { salesCopy.WriteToServer(reader); salesCopy.Close(); } catch (IfxException ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopyColumnMappingCollection” en la página 3-46 Representa una colección de correlaciones de columnas de la tabla fuente con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxBulkCopyColumnMappingCollection.Add(int, int): Crea una IfxBulkCopyColumnMapping utilizando ordinales de columna para las columnas de la fuente de datos y las columnas de destino, y la añade a IfxBulkCopyColumnMappingCollection. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Function Add ( _ src As Integer, _ dest As Integer _ ) As IfxBulkCopyColumnMapping [C#] public IfxBulkCopyColumnMapping Add( int src, int dest ) [C++] Capítulo 3. IBM Data Server Provider for .NET

3-53

public: DB2BulkCopyColumnMapping* Add ( int src, int dest ) [JScript] public function Add( src : int, dest : int ) : IfxBulkCopyColumnMapping

Parámetros src

Valor ordinal de la columna que se está copiando de la fuente de datos.

dest

Valor ordinal de la columna con la que se establece correlación en la tabla de destino.

Valor de retorno Correlación de columnas añadida a IfxBulkCopyColumnMappingCollection. Ejemplo [C#] El ejemplo siguiente demuestra una copia masiva de datos de un IfxDataReader en la tabla DEPARTMENT. Las correlaciones de columnas entre las tablas de origen y de destino se definen en una instancia de IfxBulkCopyColumnMappingCollection. [C#] public static void copyIntoSales(IfxConnection conn, IfxDataReader reader) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); salesCopy.DestinationTableName = "DEPARTMENT"; IfxBulkCopyColumnMappingCollection colMapCollection; colMapCollection = new IfxBulkCopyColumnMappingCollection(); salesCopy.ColumnMappings = colMapCollection; colMapCollection.Add(0, colMapCollection.Add(1, colMapCollection.Add(2, colMapCollection.Add(4,

0); 1); 3); 4);

try { salesCopy.WriteToServer(reader); salesCopy.Close(); } catch (IfxException ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopyColumnMappingCollection” en la página 3-46 Representa una colección de correlaciones de columnas de la tabla fuente con la tabla de destino.

3-54

IBM Data Server Provider for .NET para Informix Dynamic Server

“Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxBulkCopyColumnMappingCollection.Add(int, string): Crea una IfxBulkCopyColumnMapping utilizando un ordinal de columna para la columna de la fuente de datos y un nombre de columna para la columna de destino, y la añade a IfxBulkCopyColumnMappingCollection. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Function Add ( _ src As Integer, _ dest As String _ ) As IfxBulkCopyColumnMapping [C#] public IfxBulkCopyColumnMapping Add( int src, string dest ) [C++] public: DB2BulkCopyColumnMapping* Add ( int src, String* dest ) [JScript] public function Add( src : int, dest : String ) : IfxBulkCopyColumnMapping

Parámetros src

Valor ordinal de la columna que se está copiando de la fuente de datos.

dest

Nombre de la columna con la que se establece correlación en la tabla de destino.

Valor de retorno Correlación de columnas añadida a IfxBulkCopyColumnMappingCollection. Ejemplo [C#] El ejemplo siguiente demuestra una copia masiva de datos de un IfxDataReader en la tabla DEPARTMENT. Las correlaciones de columnas entre las tablas de origen y de destino se definen en una instancia de IfxBulkCopyColumnMappingCollection. [C#] public static void copyIntoSales(IfxConnection conn, IfxDataReader reader) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); Capítulo 3. IBM Data Server Provider for .NET

3-55

salesCopy.DestinationTableName = "DEPARTMENT"; IfxBulkCopyColumnMappingCollection colMapCollection; colMapCollection = new IfxBulkCopyColumnMappingCollection(); salesCopy.ColumnMappings = colMapCollection; colMapCollection.Add(0, colMapCollection.Add(1, colMapCollection.Add(2, colMapCollection.Add(4,

"DEPTNO"); "DEPTNAME"); "ADMRDEPT"); "LOCATION");

try { salesCopy.WriteToServer(reader); salesCopy.Close(); } catch (IfxException ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopyColumnMappingCollection” en la página 3-46 Representa una colección de correlaciones de columnas de la tabla fuente con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxBulkCopyColumnMappingCollection.Add(string, int): Crea una IfxBulkCopyColumnMapping utilizando un nombre de columna para la columna de la fuente de datos y un ordinal de columna para la columna de destino, y la añade a IfxBulkCopyColumnMappingCollection. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Function Add ( _ src As String, _ dest As Integer _ ) As IfxBulkCopyColumnMapping [C#] public IfxBulkCopyColumnMapping Add( string src, int dest ) [C++] public:

3-56

IBM Data Server Provider for .NET para Informix Dynamic Server

DB2BulkCopyColumnMapping* Add ( String* src, int dest ) [JScript] public function Add( src : String, dest : int ) : IfxBulkCopyColumnMapping

Parámetros src

Nombre de la columna que se copia de la fuente de datos.

dest

Valor ordinal de la columna con la que se establece correlación en la tabla de destino.

Valor de retorno Correlación de columnas añadida a IfxBulkCopyColumnMappingCollection. Ejemplo [C#] El ejemplo siguiente demuestra una copia masiva de datos de un IfxDataReader en la tabla DEPARTMENT. Las correlaciones de columnas entre las tablas de origen y de destino se definen en una instancia de IfxBulkCopyColumnMappingCollection. [C#] public static void copyIntoSales(IfxConnection conn, IfxDataReader reader) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); salesCopy.DestinationTableName = "DEPARTMENT"; IfxBulkCopyColumnMappingCollection colMapCollection; colMapCollection = new IfxBulkCopyColumnMappingCollection(); salesCopy.ColumnMappings = colMapCollection; colMapCollection.Add("DEPTNUMB", 0); colMapCollection.Add("DEPTNAME", 1); colMapCollection.Add("MANAGER", 3); colMapCollection.Add("LOCATION", 4); try { salesCopy.WriteToServer(reader); salesCopy.Close(); } catch (IfxException ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopyColumnMappingCollection” en la página 3-46 Representa una colección de correlaciones de columnas de la tabla fuente con la tabla de destino. Capítulo 3. IBM Data Server Provider for .NET

3-57

“Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxBulkCopyColumnMappingCollection.Add(string, string): Crea una IfxBulkCopyColumnMapping utilizando nombres de columna para las columnas de la fuente de datos y las columnas de destino, y lo añade a IfxBulkCopyColumnMappingCollection. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Function Add ( _ src As String, _ dest As String _ ) As IfxBulkCopyColumnMapping [C#] public IfxBulkCopyColumnMapping Add( string src, string dest ) [C++] public: DB2BulkCopyColumnMapping* Add ( String* src, String* dest ) [JScript] public function Add( src : String, dest : String ) : IfxBulkCopyColumnMapping

Parámetros src

Nombre de la columna que se copia de la fuente de datos.

dest

Nombre de la columna con la que se establece correlación en la tabla de destino.

Valor de retorno Correlación de columnas añadida a IfxBulkCopyColumnMappingCollection. Ejemplo [C#] El ejemplo siguiente demuestra una copia masiva de datos de un IfxDataReader en la tabla DEPARTMENT. Las correlaciones de columnas entre las tablas de origen y de destino se definen en una instancia de IfxBulkCopyColumnMappingCollection. [C#] public static void copyIntoSales(IfxConnection conn, IfxDataReader reader) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn);

3-58

IBM Data Server Provider for .NET para Informix Dynamic Server

salesCopy.DestinationTableName = "DEPARTMENT"; IfxBulkCopyColumnMappingCollection colMapCollection; colMapCollection = new IfxBulkCopyColumnMappingCollection(); salesCopy.ColumnMappings = colMapCollection; colMapCollection.Add("DEPTNUMB", "DEPTNO"); colMapCollection.Add("DEPTNAME", "DEPTNAME"); colMapCollection.Add("MANAGER", "ADMRDEPT"); colMapCollection.Add("LOCATION", "LOCATION"); try { salesCopy.WriteToServer(reader); salesCopy.Close(); } catch (IfxException ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopyColumnMappingCollection” en la página 3-46 Representa una colección de correlaciones de columnas de la tabla fuente con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxBulkCopyColumnMappingCollection.Clear: Borra la colección actual de los objetos IfxBulkCopyColumnMapping. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub Clear [C#] public void Clear () [C++] public: void Clear () [JScript] public function Clear ()

Comentarios Si necesita realizar varias copias masivas, sería más eficaz utilizar una única instancia de IfxBulkCopy que crear una nueva instancia para cada operación de Capítulo 3. IBM Data Server Provider for .NET

3-59

copia masiva. Al realizar varias operaciones de copia masiva, utilice el método Clear para eliminar correlaciones de columna existentes (después de ejecutar el método IfxBulkCopy.WriteToServer para la operación anterior) antes de definir nuevas correlaciones de columnas para la siguiente operación de copia masiva. Ejemplo [C#] El ejemplo siguiente demuestra un método que acepta las instancias de IfxBulkCopy y IfxBulkCopyColumnMappingCollection existentes y realiza copia masiva de datos de IfxDataReader en la tabla DEPARTMENT. Otros métodos similares a este utilizan las instancias de IfxBulkCopy y IfxBulkCopyColumnMappingCollection, siempre que borren las correlaciones de columnas antes de definir las suyas propias. [C#] public static void copyDept(IfxConnection conn, IfxDataReader reader, IfxBulkCopy salesCopy, IfxBulkCopyColumnMappingCollection colMapCollection) { colMapCollection.Clear(); salesCopy.DestinationTableName = "DEPARTMENT"; colMapCollection.Add("DEPTNUMB", "DEPTNO"); colMapCollection.Add("DEPTNAME", "DEPTNAME"); colMapCollection.Add("MANAGER", "ADMRDEPT"); colMapCollection.Add("LOCATION", "LOCATION"); try { salesCopy.WriteToServer(reader); colMapCollection.Clear(); } catch (IfxException ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopyColumnMappingCollection” en la página 3-46 Representa una colección de correlaciones de columnas de la tabla fuente con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxBulkCopyColumnMappingCollection.Contains: Devuelve un valor que indica si el objeto IfxBulkCopyColumnMapping especificado está en IfxBulkCopyColumnMappingCollection. Espacio de nombres: IBM.Data.Informix

3-60

IBM Data Server Provider for .NET para Informix Dynamic Server

Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Function Contains ( _ inValue As IfxBulkCopyColumnMapping _ ) As Boolean [C#] public bool Contains(IfxBulkCopyColumnMapping inValue) [C++] public: bool Contains (IfxBulkCopyColumnMapping* inValue) [JScript] public function Contains( inValue : IfxBulkCopyColumnMapping ) : boolean

Parámetros inValue Objeto IfxBulkCopyColumnMapping. Valor de retorno Si la IfxBulkCopyColumnMapping especificada existe en la colección, Contains devuelve true. Si no, Contains devuelve false. Ejemplo [C#] El ejemplo siguiente demuestra una copia masiva de datos de un IfxDataReader en la tabla DEPARTMENT. Las correlaciones de columnas entre las tablas de origen y de destino se definen en una instancia de IfxBulkCopyColumnMappingCollection. Además de la operación de copia masiva, el método Contains se muestra cuando determina si IfxBulkCopyColumnMapping existe en la colección. [C#] public static void copyIntoSales(IfxConnection conn, IfxDataReader reader) { IfxBulkCopy salesCopy = new IfxBulkCopy(conn); salesCopy.DestinationTableName = "DEPARTMENT"; IfxBulkCopyColumnMappingCollection colMapCollection; colMapCollection = new IfxBulkCopyColumnMappingCollection(); salesCopy.ColumnMappings = colMapCollection; colMapCollection.Add("DEPTNUMB", "DEPTNO"); colMapCollection.Add("DEPTNAME", "DEPTNAME"); colMapCollection.Add("MANAGER", "ADMRDEPT"); colMapCollection.Add("LOCATION", "LOCATION"); //Determine if a IfxBulkCopyColumnMapping //is included in the current collection. IfxBulkCopyColumnMapping colMapDeptNum = new IfxBulkCopyColumnMapping("DEPTNUMB", "DEPTNO"); //If the IfxBulkCopyColumnMapping does exist, print a message indicating this. if (colMapCollection.Contains(colMapDeptNum)) { MessageBox.Show("The Department Number mapping is included in the mapping collection."); }

Capítulo 3. IBM Data Server Provider for .NET

3-61

try { salesCopy.WriteToServer(reader); salesCopy.Close(); } catch (IfxException ex) { MessageBox.Show(ex.ToString(), "Exception"); } }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopyColumnMappingCollection” en la página 3-46 Representa una colección de correlaciones de columnas de la tabla fuente con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxBulkCopyColumnMappingCollection.CopyTo: Copia los objetos IfxBulkCopyColumnMapping de IfxBulkCopyColumnMappingCollection en una matriz de objetos IfxBulkCopyColumnMapping, comenzando en un índice especificado de la matriz. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub CopyTo ( _ array As IfxBulkCopyColumnMapping() _ index As Integer _ ) [C#] public void CopyTo( IfxBulkCopyColumnMapping[] inValue, int index ) [C++] public: void CopyTo ( array array, index int ) [JScript] public function CopyTo( array : IfxBulkCopyColumnMapping[], index : int )

3-62

IBM Data Server Provider for .NET para Informix Dynamic Server

Parámetros array

Matriz que albergará objetos IfxBulkCopyColumnMapping que se copiarán de IfxBulkCopyColumnMappingCollection.

index

Valor de índice que indica en qué lugar de la matriz se iniciará la copia.

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopyColumnMappingCollection” en la página 3-46 Representa una colección de correlaciones de columnas de la tabla fuente con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxBulkCopyColumnMappingCollection.IndexOf: Devuelve un valor que indica la posición de la IfxBulkCopyColumnMappingCollection donde está ubicado el objeto IfxBulkCopyColumnMapping especificado. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Function IndexOf ( _ inValue As IfxBulkCopyColumnMapping _ ) As Integer [C#] public int IndexOf(IfxBulkCopyColumnMapping inValue) [C++] public: int IndexOf (IfxBulkCopyColumnMapping* inValue) [JScript] public function IndexOf( inValue : IfxBulkCopyColumnMapping ) : int

Parámetros inValue El objeto IfxBulkCopyColumnMapping que está buscando. Valor de retorno Índice basado en cero de la correlación de columnas. IndexOf devolverá -1 si no se encuentra la correlación de columnas en la colección.

Capítulo 3. IBM Data Server Provider for .NET

3-63

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopyColumnMappingCollection” en la página 3-46 Representa una colección de correlaciones de columnas de la tabla fuente con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxBulkCopyColumnMappingCollection.Insert: Inserte la IfxBulkCopyColumnMapping especificada en la IfxBulkCopyColumnMappingCollection en la posición de índice especificada. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub Insert ( _ index As Integer, _ inValue As IfxBulkCopyColumnMapping _ ) [C#] public void Insert(int index, IfxBulkCopyColumnMapping inValue) [C++] public: void Insert (int index, IfxBulkCopyColumnMapping* inValue) [JScript] public function Insert( index : int, inValue : IfxBulkCopyColumnMapping )

Parámetros index

Posción de índice basada en cero de la IfxBulkCopyColumnMappingCollection donde se insertará el objeto IfxBulkCopyColumnMapping.

inValue Objeto IfxBulkCopyColumnMapping que se insertará en IfxBulkCopyColumnMappingCollection. Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopyColumnMappingCollection” en la página 3-46 Representa una colección de correlaciones de columnas de la tabla fuente con la tabla de destino.

3-64

IBM Data Server Provider for .NET para Informix Dynamic Server

“Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxBulkCopyColumnMappingCollection.RemoveAt: Elimina la IfxBulkCopyColumnMapping en la posición de índice especificada de la IfxBulkCopyColumnMappingCollection. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub RemoveAt ( index As Integer ) [C#] public void RemoveAt(int index) [C++] public: void RemoveAt (int index) [JScript] public function RemoveAt( index : int )

Parámetros index

Posición de índice basada en cero de la IfxBulkCopyColumnMappingCollection de la que se eliminará el objeto IfxBulkCopyColumnMapping.

Comentarios Si necesita realizar varias copias masivas, sería más eficaz utilizar una única instancia de IfxBulkCopy que crear una nueva instancia para cada operación de copia masiva. Al realizar varias operaciones de copia masiva, utilice el método RemoveAt para eliminar correlaciones de columna seleccionadas (después de ejecutar el método IfxBulkCopy.WriteToServer para la operación anterior) antes de definir nuevas correlaciones de columnas para la siguiente operación de copia masiva. También puede utilizar el método Clear para eliminar todas las correlaciones de columnas existentes. Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopyColumnMappingCollection” en la página 3-46 Representa una colección de correlaciones de columnas de la tabla fuente con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider

Capítulo 3. IBM Data Server Provider for .NET

3-65

para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxBulkCopyColumnMappingCollection.Remove: Elimina la IfxBulkCopyColumnMapping especificada de IfxBulkCopyColumnMappingCollection. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub Remove ( _ inValue As IfxBulkCopyColumnMapping _ ) [C#] public void Remove(IfxBulkCopyColumnMapping inValue) [C++] public: void Remove (IfxBulkCopyColumnMapping* inValue) [JScript] public function Remove( inValue : IfxBulkCopyColumnMapping )

Parámetros inValue Objeto IfxBulkCopyColumnMapping que se eliminará de IfxBulkCopyColumnMappingCollection. Comentarios Si necesita realizar varias copias masivas, sería más eficaz utilizar una única instancia de IfxBulkCopy que crear una nueva instancia para cada operación de copia masiva. Al realizar varias operaciones de copia masiva, utilice el método Remove para eliminar las correlaciones de columnas seleccionadas (después de ejecutar el método IfxBulkCopy.WriteToServer para la operación anterior) antes de definir nuevas correlaciones de columnas para la siguiente operación de copia masiva. También puede utilizar el método Clear para eliminar todas las correlaciones de columnas existentes. Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopyColumnMappingCollection” en la página 3-46 Representa una colección de correlaciones de columnas de la tabla fuente con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider

3-66

IBM Data Server Provider for .NET para Informix Dynamic Server

para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento.

Enumeración IfxBulkCopyOptions Especifique las opciones a utilizar con IfxBulkCopy. Estas opciones son distintivos de bits que le permiten combinarlos en máscaras de bits. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll)

Sintaxis Visual Basic]

Public Enum IfxBulkCopyOptions [C#] [Serializable] public enum IfxBulkCopyOptions [C++] [Serializable] __value public enum IfxBulkCopyOptions [JScript] public Serializable enum IfxBulkCopyOptions

Comentarios Puede pasar una enumeración IfxBulkCopyOptions a un constructor de IfxBulkCopy para definir comportamientos específicos para los métodos WriteToServer.

Miembros Nombre de miembro

Valor de bit

Descripción

Valor por omisión

0

Utilice los valores por omisión para todas las opciones.

KeepIdentity

1

Preservar los valores de identidad del fuente. Las columnas de identidad solamente se pueden conservar si no están definidas como GENERATED ALWAYS. Cuando no se especifica esta opción, los valores de identidad se asignan de acuerdo con el destino.

TableLock

2

Asigna un bloqueo de tabla para el tiempo que dura una operación de copia masiva. No se permite que las demás aplicaciones actualicen la tabla durante la operación de copia. Cuando no se especifica esta opción, se permiten las lecturas de la tabla para las filas que existían antes de la operación de copia.

Truncate

4

Borra los datos de la tabla de destino antes del inicio de la operación de copia.

Capítulo 3. IBM Data Server Provider for .NET

3-67

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxBulkCopy” en la página 3-5 Facilita la copia de filas de una fuente de datos a una tabla de una base de datos. “Clase IfxBulkCopyColumnMapping” en la página 3-28 Representa una correlación de columnas de la tabla fuente de datos con la tabla de destino. “Clase IfxBulkCopyColumnMappingCollection” en la página 3-46 Representa una colección de correlaciones de columnas de la tabla fuente con la tabla de destino. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento.

Clase IfxCommandBuilder Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll)

Jerarquía de herencias de .NET Framework 1.1 System.Object System.MarshalByRefObject System.ComponentModel.Component IBM.Data.Informix.IfxCommandBuilder

Jerarquía de herencias de .NET Framework 2.0 y 3.0 System.Object System.MarshalByRefObject System.ComponentModel.Component System.Data.Common.DbCommandBuilder IBM.Data.Informix.IfxCommandBuilder

Sintaxis de .NET Framework 1.1 Visual Basic] NotInheritable Public Class IfxCommandBuilder Inherits Component [C#] public sealed class IfxCommandBuilder : Component [C++] public __gc __sealed class IfxCommandBuilder : public Component [JScript] public final class IfxCommandBuilder extends Component

3-68

IBM Data Server Provider for .NET para Informix Dynamic Server

Sintaxis de .NET Framework 2.0 y 3.0 Visual Basic] NotInheritable Public Class IfxCommandBuilder Inherits DbCommandBuilder [C#] public sealed class IfxCommandBuilder : DbCommandBuilder [C++] public __gc __sealed class IfxCommandBuilder : public DbCommandBuilder [JScript] public final class IfxCommandBuilder extends DbCommandBuilder

Comentarios IfxDataAdapter no genera automáticamente las sentencias de SQL necesarias para reconciliar los cambios realizados en un DataSet asociado con la base de datos. Sin embargo, puede crear un objeto IfxCommandBuilder que genera sentencias de SQL para actualizaciones de una sola tabla estableciendo la propiedad SelectCommand del IfxDataAdapter. A continuación, el IfxCommandBuilder genera cualquier sentencia de SQL adicional que el usuario no establezca. La relación entre un IfxDataAdapter y su IfxCommandBuilder correspondiente siempre es de uno en uno. Para crear esta correspondencia, debe establecerse la propiedad DataAdapter del objeto IfxCommandBuilder. Esto hace que IfxCommandBuilder se registre a sí mismo como escucha, lo que genera la salida de los sucesos IfxDataAdapter.RowUpdating que afectan al DataSet. Para generar sentencias INSERT, UPDATE, o DELETE, el IfxCommandBuilder utiliza la propiedad SelectCommand para recuperar un conjunto de metadatos obligatorio. Si cambia el valor de SelectCommand después de haber recuperado los metadatos (por ejemplo, después de la primera actualización), debe invocar el método RefreshSchema para actualizar los metadatos. Nota: Si la sentencia SELECT asignada a la propiedad SelectCommand utiliza nombres de columna con alias, puede que las sentencias INSERT, UPDATE y DELETE resultantes sean imprecisas o que fallen. Si el servidor de datos no puede proporcionar el nombre de columna base apropiado para el nombre de columna con alias, se podría utilizar el nombre de alias en las sentencias INSERT, UPDATE y DELETE generadas. Las sentencias INSERT, UPDATE y DELETE generadas darían lugar a errores. IfxCommandBuilder también utiliza las propiedades IfxCommand.Connection, IfxCommand.CommandTimeout y IfxCommand.Transaction a las que SelectCommand hace referencia. El usuario debe invocar RefreshSchema si se modifica cualquiera de estas propiedades o si se cambia el valor de la propia propiedad SelectCommand. De lo contrario, las propiedades IfxDataAdapter.InsertCommand, IfxDataAdapter.UpdateCommand y IfxDataAdapter.DeleteCommand retienen los valores anteriores. Si se llama a Dispose, IfxCommandBuilder se disocia de IfxDataAdapter y los mandatos generados ya no se utilizan.

Ejemplo [Visual Basic, C#] El ejemplo siguiente utiliza IfxCommand, junto con IfxDataAdapter e IfxConnection, para seleccionar filas desde una base de datos. En este ejemplo se pasa un DataSet inicializado, una serie de caracteres de conexión,

Capítulo 3. IBM Data Server Provider for .NET

3-69

una serie de consulta que es una sentencia SELECT de SQL y una serie de caracteres que es el nombre de la tabla de base de datos. A continuación, el ejemplo crea un IfxCommandBuilder. [Visual Basic] Public Function SelectIfxSrvRows(myDataSet As DataSet, myConnection As String, mySelectQuery As String, myTableName As String) As DataSet im myConn As New IfxConnection(myConnection) Dim myDataAdapter As New IfxDataAdapter() myDataAdapter.SelectCommand = New IfxCommand(mySelectQuery, myConn) Dim employeeCB As IfxCommandBuilder = New IfxCommandBuilder(myDataAdapter) myConn.Open() Dim employeeDS As DataSet = New DataSet() myDataAdapter.Fill(employeeDS, "EMPLOYEE") ’ Code to modify data in DataSet here ’ Without the IfxCommandBuilder this line would fail. myDataAdapter.Update(employeeDS, "EMPLOYEE") myConn.Close() Return employeeDS End Function ’SelectIfxSrvRows [C#] public DataSet SelectIfxSrvRows(DataSet myDataSet,string myConnection,string mySelectQuery,string myTableName) { IfxConnection myConn = new IfxConnection(myConnection); IfxDataAdapter myDataAdapter = new IfxDataAdapter(); myDataAdapter.SelectCommand = new IfxCommand(mySelectQuery, myConn); IfxCommandBuilder employeeCB = new IfxCommandBuilder(myDataAdapter); myConn.Open(); DataSet employeeDS = new DataSet(); myDataAdapter.Fill(employeeDS, "EMPLOYEE"); //code to modify data in dataset here //Without the IfxCommandBuilder this line would fail myDataAdapter.Update(employeeDS, "EMPLOYEE"); myConn.Close(); return employeeDS; }

Seguridad de hebra Cualquier miembro estático público (Shared en Visual Basic) de este tipo es seguro para operaciones multihebra. No se garantiza que cualquier miembro de instancia sea seguro para hebras.

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Miembros de IfxCommandBuilder” en la página 3-71 Miembros de IfxCommandBuilder

3-70

IBM Data Server Provider for .NET para Informix Dynamic Server

“Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Ejemplos DbDatAdp.cs DbDatAdp.vb DbDatMap.cs DbDatMap.vb

Miembros de IfxCommandBuilder Miembros de IfxCommandBuilder

Constructores públicos IfxCommandBuilder

Sobrecargado. Inicializa una instancia nueva de la clase IfxCommandBuilder.

Propiedades públicas CatalogLocation CatalogSeparator

Container (heredada de Component) DataAdapter

QuotePrefix

QuoteSuffix

SchemaSeparator

Obtiene la CatalogLocation para esta instancia de IfxCommandBuilder. Obtiene la serie de caracteres que representa un separador de catálogo para esta instancia de IfxCommandBuilder. Obtiene el IContainer que contiene el Component. Obtiene o establece un objeto IfxDataAdapter para el cual este objeto IfxCommandBuilder generará sentencias de SQL. Obtiene o establece el carácter inicial o caracteres iniciales que se deben utilizar al trabajar con objetos de base de datos (por ejemplo, tablas o columnas) cuyos nombres contienen caracteres tales como espacios o símbolos reservados. Obtiene o establece el carácter final o caracteres finales que se deben utilizar al trabajar con objetos de base de datos (por ejemplo, tablas o columnas) cuyos nombres contienen caracteres tales como espacios o símbolos reservados. Obtiene la serie de caracteres que representa un separador de esquema para esta instancia de IfxCommandBuilder. Obtiene o establece el ISite de Component.

Site (heredada de Component)

Capítulo 3. IBM Data Server Provider for .NET

3-71

Métodos públicos CreateObjRef (heredado de MarshalByRefObject)

DeriveParameters

Crea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto remoto. Recupera información sobre los parámetros del procedimiento almacenado especificado en el IfxCommand y llena la colección Parameters del objeto IfxCommand especificado.

Dispose (heredado de Component)

Sobrecargado. Libera los recursos utilizados por Component.

Equals (heredado de Object)

Sobrecargado. Determina si dos instancias de Object son iguales.

GetDeleteCommand

Obtiene el objeto IfxCommand generado automáticamente necesario para realizar supresiones en la base de datos.

GetHashCode (heredado de Object)

Funciona como una función de hash para un tipo determinado, apto para la utilización en algoritmos de hash y en estructuras de datos como una tabla hash.

GetInsertCommand

Obtiene el objeto IfxCommand generado automáticamente necesario para realizar inserciones en la base de datos.

GetLifetimeService (heredado de MarshalByRefObject)

Recupera el objeto de servicio vitalicio actual que controla la política vitalicia para esta instancia. Obtiene el Type de la instancia actual.

GetType (heredado de Object) GetUpdateCommand

InitializeLifetimeService (heredado de MarshalByRefObject)

Obtiene un objeto de servicio vitalicio para controlar la política vitalicia para esta instancia.

QuoteIdentifier

Acepta un identificador sin comillas y devuelve el identificador en un formato entre comillas.

RefreshSchema

Renueva la información de esquema de la base de datos utilizada para generar sentencias INSERT, UPDATE o DELETE.

UnquoteIdentifier

Acepta un identificador entre comillas y devuelve el identificador en un formato sin comillas.

ToString (heredado de Object)

3-72

Obtiene el objeto IfxCommand generado automáticamente necesario para realizar actualizaciones en la base de datos.

IBM Data Server Provider for .NET para Informix Dynamic Server

Devuelve una String que representa el Object actual.

Sucesos públicos Añade un manejador de sucesos para escuchar al suceso Disposed en el componente.

Disposed (heredado de Component)

Propiedades protegidas Obtiene un valor que indica si el Component está actualmente en modalidad de diseño.

DesignMode (heredada de Component)

Obtiene la lista de manejadores de sucesos que están conectados a este Component.

Events (heredada de Component)

Métodos protegidos Dispose

Sobrecargado. Alterado temporalmente. Libera los recursos que el IfxCommandBuilder utiliza.

GetParameterName

Sobrecargado. Devuelve el nombre completo del parámetro utilizando el nombre parcial del parámetro.

GetParameterPlaceholder

Devuelve el espacio reservado para el parámetro en la correspondiente sentencia de SQL.

GetService (heredado de Component)

Devuelve un objeto que representa un servicio proporcionado por el Component o por su Container. Crea una copia superficial del Object actual.

MemberwiseClone (heredado de Object) SetRowUpdatingHandler

Registra el IfxCommandBuilder que debe gestionar el suceso RowUpdating para un IfxDataAdapter.

Consulta “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento.

Constructor de IfxCommandBuilder Inicializa una instancia nueva de la clase IfxCommandBuilder.

Capítulo 3. IBM Data Server Provider for .NET

3-73

Lista de sobrecargas Nombre

Descripción

New()

Inicializa una nueva instancia de la clase IfxCommandBuilder.

New(IfxDataAdapter)

Inicializa una nueva instancia de la clase IfxCommandBuilder con el objeto asociado IfxDataAdapter.

Consulta “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Miembros de IfxCommandBuilder” en la página 3-71 Miembros de IfxCommandBuilder “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Constructor de IfxCommandBuilder (): Inicializa una instancia nueva de la clase IfxCommandBuilder. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub New() [C#] public IfxCommandBuilder(); [C++] public: IfxCommandBuilder(); [JScript] public function IfxCommandBuilder();

Comentarios El constructor base inicializa todos los campos en sus valores por omisión. Consulta “Constructor de IfxCommandBuilder” en la página 3-73 Inicializa una instancia nueva de la clase IfxCommandBuilder. “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Miembros de IfxCommandBuilder” en la página 3-71 Miembros de IfxCommandBuilder “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider

3-74

IBM Data Server Provider for .NET para Informix Dynamic Server

para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Constructor de IfxCommandBuilder(IfxDataAdapter): Inicializa una nueva instancia de la clase IfxCommandBuilder con el objeto IfxDataAdapter asociado. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub New( _ ByVal adapter As IfxDataAdapter _ ) [C#] public IfxCommandBuilder( IfxDataAdapter adapter ); [C++] public: IfxCommandBuilder( IfxDataAdapter * adapter ); [JScript] public function IfxCommandBuilder( adapter : IfxDataAdapter );

Parámetros adapter Objeto IfxDataAdapter que debe asociarse con este IfxCommandBuilder. Comentarios IfxCommandBuilder se registra a sí mismo como escucha para los sucesos de IfxDataAdapter.RowUpdating que genera el IfxDataAdapter especificado en esta propiedad. Cuando se crea una nueva instancia de IfxCommandBuilder, se libera cualquier IfxCommandBuilder existente que esté asociado con este IfxDataAdapter. Consulta “Constructor de IfxCommandBuilder” en la página 3-73 Inicializa una instancia nueva de la clase IfxCommandBuilder. “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Miembros de IfxCommandBuilder” en la página 3-71 Miembros de IfxCommandBuilder

Capítulo 3. IBM Data Server Provider for .NET

3-75

“Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento.

Métodos de IfxCommandBuilder Los métodos de la clase IfxCommandBuilder se listan a continuación. Para obtener una lista completa de los miembros de la clase IfxCommandBuilder, consulte el tema Miembros de IfxCommandBuilder.

Métodos públicos CreateObjRef (heredado de MarshalByRefObject)

DeriveParameters

Crea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto remoto. Recupera información sobre los parámetros del procedimiento almacenado especificado en el IfxCommand y llena la colección Parameters del objeto IfxCommand especificado.

Dispose (heredado de Component)

Sobrecargado. Libera los recursos utilizados por Component.

Equals (heredado de Object)

Sobrecargado. Determina si dos instancias de Object son iguales.

GetDeleteCommand

Obtiene el objeto IfxCommand generado automáticamente necesario para realizar supresiones en la base de datos.

GetHashCode (heredado de Object)

Funciona como una función de hash para un tipo determinado, apto para la utilización en algoritmos de hash y en estructuras de datos como una tabla hash.

GetInsertCommand

Obtiene el objeto IfxCommand generado automáticamente necesario para realizar inserciones en la base de datos.

GetLifetimeService (heredado de MarshalByRefObject)

Recupera el objeto de servicio vitalicio actual que controla la política vitalicia para esta instancia. Obtiene el Type de la instancia actual.

GetType (heredado de Object) GetUpdateCommand

InitializeLifetimeService (heredado de MarshalByRefObject)

3-76

Obtiene el objeto IfxCommand generado automáticamente necesario para realizar actualizaciones en la base de datos. Obtiene un objeto de servicio vitalicio para controlar la política vitalicia para esta instancia.

QuoteIdentifier

Acepta un identificador sin comillas y devuelve el identificador en un formato entre comillas.

RefreshSchema

Renueva la información de esquema de la base de datos utilizada para generar sentencias INSERT, UPDATE o DELETE.

IBM Data Server Provider for .NET para Informix Dynamic Server

Acepta un identificador entre comillas y devuelve el identificador en un formato sin comillas.

UnquoteIdentifier

Devuelve una String que representa el Object actual.

ToString (heredado de Object)

Métodos protegidos Dispose

Sobrecargado. Alterado temporalmente. Libera los recursos que el IfxCommandBuilder utiliza.

GetParameterName

Sobrecargado. Devuelve el nombre completo del parámetro utilizando el nombre parcial del parámetro.

GetParameterPlaceholder

Devuelve el espacio reservado para el parámetro en la correspondiente sentencia de SQL.

GetService (heredado de Component)

Devuelve un objeto que representa un servicio proporcionado por el Component o por su Container. Crea una copia superficial del Object actual.

MemberwiseClone (heredado de Object) SetRowUpdatingHandler

Registra el IfxCommandBuilder que debe gestionar el suceso RowUpdating para un IfxDataAdapter.

Consulta “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommandBuilder.ApplyParameterInfo: Sobrecargado. Asigna un valor a la propiedad DbParameter.DbType utilizando el tipo de datos de DataRow. Para uso interno de DbCommandBuilder. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Shared Sub ApplyParameterInfo( _ ByVal p As DbParameter, _ ByVal row As DataRow, _ ByVal st As StatementType, _ ByVal whereClause As Boolean _ Capítulo 3. IBM Data Server Provider for .NET

3-77

) [C#] public static void ApplyParameterInfo( DbParameter p, DataRow row, StatementType st, boolwhereClause ); [C++] public: static void ApplyParameterInfo( DbParameter p, DataRow row, StatementType st, boolwhereClause); [JScript] public static function ApplyParameterInfo( p : DbParameter, _ row : DataRow, _ st : StatementType, _ whereClause : Boolean );

Parámetros p

DbParameter al que se aplica el cambio del tipo de datos.

row

DataRow de la tabla de esquema que GetSchemaTable proporciona.

st

Tipo de mandato que se genera: INSERT, UPDATE o DELETE.

whereClause true si el parámetro forma parte de la cláusula WHERE de actualización o supresión. false si forma parte de los valores de inserción o actualización. Consulta “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Miembros de IfxCommandBuilder” en la página 3-71 Miembros de IfxCommandBuilder “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommandBuilder.DeriveParameters: Recupera información sobre los parámetros del procedimiento almacenado especificado en el IfxCommand y llena la colección Parameters del objeto IfxCommand especificado. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll)

3-78

IBM Data Server Provider for .NET para Informix Dynamic Server

Sintaxis Visual Basic] Public Shared Sub DeriveParameters( _ ByVal command As IfxCommand _ ) [C#] public static void DeriveParameters( IfxCommand command ); [C++] public: static void DeriveParameters( IfxCommand * command ); [JScript] public static function DeriveParameters( command : IfxCommand );

Parámetros command IfxCommand que hace referencia al procedimiento almacenado a partir del cual debe obtenerse la información sobre los parámetros. Los parámetros obtenidos se añaden a la colección IfxCommand.Parameters de IfxCommand. Excepciones Tipo de excepción

Condición

ArgumentException InvalidOperationException

El controlador subyacente no da soporte a la información sobre los parámetros del procedimiento almacenado que se devuelve, el texto del mandato no es un nombre de procedimiento almacenado válido o la especificación de CommandType no es CommandType.StoredProcedure.

Comentarios DeriveParameters sobregraba cualquier información de parámetros existente para el IfxCommand. Sólo puede utilizar DeriveParameters con procedimientos almacenados. CommandText debe contener el nombre del procedimiento almacenado y CommandType debe establecerse en CommandType.StoredProcedure. No se recomienda la utilización de DeriveParameters en un procedimiento almacenado sobrecargado, debido a que se devuelven todos los parámetros de todos los procedimientos de calificación. Por omisión, DeriveParameters añade el parámetro ReturnValue a la colección de Parameters de IfxCommand.

Capítulo 3. IBM Data Server Provider for .NET

3-79

DeriveParameters requiere una llamada adicional al servidor de datos para obtener la información. Si la información de parámetros se conoce anticipadamente, es más eficaz llenar la colección Parameters estableciendo la información explícitamente. Consulta “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Miembros de IfxCommandBuilder” en la página 3-71 Miembros de IfxCommandBuilder “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommandBuilder.Dispose: Libera los recursos que el IfxCommandBuilder utiliza. Lista de sobrecargas Nombre

Descripción

Dispose(Boolean)

Libera los recursos no gestionados y, opcionalmente, los recursos gestionados que el IfxCommandBuilder utiliza.

Dispose()

Heredado de Component.

Ejemplo [Visual Basic, C#] El ejemplo siguiente crea un IfxCommandBuilder y, a continuación, se deshace del mismo. Nota: [Visual Basic, C#] Este ejemplo muestra cómo utilizar una de las versiones sobrecargadas de Dispose. Para obtener otros ejemplos que pudieran estar disponibles, consulte los temas de sobrecarga individuales. Visual Basic] Public Sub IfxCommandBuilderHereAndGone() Dim myCommandBuilder As New IfxCommandBuilder() myCommandBuilder.Dispose() End Sub [C#] public void IfxCommandBuilderHereAndGone() { IfxCommandBuilder myCommandBuilder = new IfxCommandBuilder(); myCommandBuilder.Dispose(); }

Consulta “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Miembros de IfxCommandBuilder” en la página 3-71 Miembros de IfxCommandBuilder “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider

3-80

IBM Data Server Provider for .NET para Informix Dynamic Server

para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommandBuilder.Dispose (Boolean): Libera los recursos no gestionados y, opcionalmente, los gestionados que IfxCommandBuilder utiliza. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Overrides Overloads Protected Sub Dispose( _ ByVal disposing As Boolean _ ) [C#] protected override void Dispose( bool disposing ); [C++] protected: void Dispose( bool disposing ); [JScript] protected override function Dispose( disposing : Boolean );

Parámetros disposing true para liberar tanto los recursos gestionados como los no gestionados; false para liberar sólo los recursos no gestionados. Comentarios El método público Dispose llama a este método. Dispose() invoca al método protegido Dispose(Boolean) con el parámetro disposing establecido en true. Cuando el parámetro disposing es true, el método libera todos los recursos retenidos por cualquier objetos gestionado referenciado por este IfxCommand. Lo hace invocando el método Dispose() de cada objeto referenciado. Notas para los herederos: Otros objetos pueden llamar varias veces a Dispose. Al alterar temporalmente Dispose(Boolean), tenga cuidado de no hacer referencia a objetos que se hayan desechado anteriormente en una llamada previa a Dispose. Para obtener más información sobre cómo implementar Dispose(Boolean), consulte ″Implementación del método Dispose″ en la documentación del SDK de Microsoft(R) .NET.

Capítulo 3. IBM Data Server Provider for .NET

3-81

Ejemplo [Visual Basic, C#] El ejemplo siguiente crea un IfxCommandBuilder y, a continuación, se deshace del mismo. Visual Basic] Public Sub IfxCommandBuilderHereAndGone() Dim myCommandBuilder As New IfxCommandBuilder() myCommandBuilder.Dispose() End Sub [C#] public void IfxCommandBuilderHereAndGone() { IfxCommandBuilder myCommandBuilder = new IfxCommandBuilder(); myCommandBuilder.Dispose(); }

Consulta “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Miembros de IfxCommandBuilder” en la página 3-71 Miembros de IfxCommandBuilder “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. “Método IfxCommandBuilder.Dispose” en la página 3-80 Libera los recursos que el IfxCommandBuilder utiliza. Método IfxCommandBuilder.GetDeleteCommand: Obtiene el objeto IfxCommand generado automáticamente necesario para realizar supresiones en la base de datos. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Function GetDeleteCommand() As IfxCommand [C#] public IfxCommand GetDeleteCommand(); [C++] public: IfxCommand * GetDeleteCommand(); [JScript] public function GetDeleteCommand() : IfxCommand ;

Valor de retorno Objeto IfxCommand generado automáticamente necesario para realizar supresiones.

3-82

IBM Data Server Provider for .NET para Informix Dynamic Server

Comentarios Puede utilizar el método GetDeleteCommand con fines informativos o para la resolución de problemas, pues devuelve el objeto IfxCommand que se debe ejecutar. También puede utilizar GetDeleteCommand como base de un mandato modificado. Por ejemplo, puede invocar GetDeleteCommand y modificar el valor de IfxCommand.CommandTimeout y, a continuación, establecerlo explícitamente en IfxDataAdapter. Después de generar por primera vez la sentencia de SQL, debe invocar explícitamente RefreshSchema si ello cambiará la sentencia de algún modo. De lo contrario, GetDeleteCommand seguirá utilizando la información de la sentencia anterior, que podría no ser correcta. Las sentencias de SQL se generan por primera vez cuando la aplicación llama a Update o a GetDeleteCommand. Consulta “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Miembros de IfxCommandBuilder” en la página 3-71 Miembros de IfxCommandBuilder “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Ejemplos DbDatAdp.cs DbDatAdp.vb DbDatMap.cs DbDatMap.vb Método IfxCommandBuilder.GetInsertCommand: Obtiene el objeto IfxCommand generado automáticamente necesario para realizar inserciones en la base de datos. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Function GetInsertCommand() As IfxCommand [C#] public IfxCommand GetInsertCommand(); [C++] public: IfxCommand

Capítulo 3. IBM Data Server Provider for .NET

3-83

* GetInsertCommand(); [JScript] public function GetInsertCommand() : IfxCommand ;

Valor de retorno Objeto IfxCommand generado automáticamente necesario para realizar inserciones. Comentarios Puede utilizar el método GetInsertCommand con fines informativos o para la resolución de problemas, pues devuelve el objeto IfxCommand que se debe ejecutar. También puede utilizar GetInsertCommand como base de un mandato modificado. Por ejemplo, puede invocar GetInsertCommand y modificar el valor de IfxCommand.CommandTimeout y, a continuación, establecerlo explícitamente en IfxDataAdapter. Después de generar por primera vez la sentencia de SQL, debe invocar explícitamente RefreshSchema si ello cambiará la sentencia de algún modo. De lo contrario, GetInsertCommand seguirá utilizando la información de la sentencia anterior, que podría no ser correcta. Las sentencias de SQL se generan por primera vez cuando la aplicación llama a Update o a GetInsertCommand. Consulta “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Miembros de IfxCommandBuilder” en la página 3-71 Miembros de IfxCommandBuilder “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Ejemplos DbDatAdp.cs DbDatAdp.vb DbDatMap.cs DbDatMap.vb Método IfxCommandBuilder.GetParameterName: Devuelve el nombre completo del parámetro especificado. Lista de sobrecargas GetParameterName(int)

Devuelve el nombre del parámetro especificado por el valor ordinal.

GetParameterName(string)

Devuelve el nombre completo del parámetro utilizando el nombre parcial del parámetro.

Consulta

3-84

IBM Data Server Provider for .NET para Informix Dynamic Server

“Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommandBuilder.GetParameterName(int): Devuelve el nombre del parámetro especificado por el valor ordinal. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Overrides Function GetParameterName ( _ parmOrdinal As Integer _ ) As String [C#] public override string GetParameterName (int parmOrdinal) [C++] public: virtual String^ GetParameterName (int parmOrdinal) override [JScript] public override function GetParameterName (parmOrdinal : int) : String

Parámetros parmOrdinal Entero que representa un ordinal de columna. Valor de retorno Nombre del parámetro, con el ordinal de columna añadido al nombre. Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommandBuilder.GetParameterName(string): Devuelve el nombre completo del parámetro utilizando el nombre parcial del parámetro. Capítulo 3. IBM Data Server Provider for .NET

3-85

Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Overrides Function GetParameterName ( _ parameterName As String _ ) As String [C#] public override string GetParameterName (string parameterName) [C++] public: virtual String^ GetParameterName (String^ parameterName) override [JScript] public override function GetParameterName (parameterName : String) : String

Parámetros parameterName Serie de caracteres que representa un fragmento del nombre del parámetro. Valor de retorno El nombre del parámetro. Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommandBuilder.GetParameterPlaceholder: Devuelve el espacio reservado para el parámetro en la correspondiente sentencia de SQL. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Overrides Function GetParameterPlaceholder ( _ parmOrdinal As Integer _ ) As String [C#] public override string GetParameterPlaceholder (int parmOrdinal)

3-86

IBM Data Server Provider for .NET para Informix Dynamic Server

[C++] public: virtual String^ GetParameterPlaceholder (int parmOrdinal) override [JScript] public override function GetParameterPlaceholder (parmOrdinal : int) : String

Parámetros parmOrdinal Entero que representa un ordinal de columna. Valor de retorno El espacio reservado para el parámetro es ″?″. Información de versión Versión de .NET Framework Soportado en: 2.0 y 3.0 Consulta “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommandBuilder.GetUpdateCommand: Obtiene el objeto IfxCommand generado automáticamente necesario para realizar actualizaciones en la base de datos. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Function GetUpdateCommand() As IfxCommand [C#] public IfxCommand GetUpdateCommand(); [C++] public: IfxCommand * GetUpdateCommand(); [JScript] public function GetUpdateCommand() : IfxCommand ;

Valor de retorno Objeto IfxCommand generado automáticamente necesario para realizar actualizaciones.

Capítulo 3. IBM Data Server Provider for .NET

3-87

Comentarios Puede utilizar el método GetUpdateCommand con fines informativos o para la resolución de problemas, pues devuelve el objeto IfxCommand que se debe ejecutar. También puede utilizar GetUpdateCommand como base de un mandato modificado. Por ejemplo, puede invocar GetUpdateCommand y modificar el valor de IfxCommand.CommandTimeout y, a continuación, establecerlo explícitamente en IfxDataAdapter. Después de generar por primera vez la sentencia de SQL, debe invocar explícitamente RefreshSchema si ello cambiará la sentencia de algún modo. De lo contrario, GetUpdateCommand seguirá utilizando la información de la sentencia anterior, que podría no ser correcta. Las sentencias de SQL se generan por primera vez cuando la aplicación llama a Update o a GetUpdateCommand. Consulta “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Miembros de IfxCommandBuilder” en la página 3-71 Miembros de IfxCommandBuilder “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Ejemplos DbDatAdp.cs DbDatAdp.vb DbDatMap.cs DbDatMap.vb Método IfxCommandBuilder.QuoteIdentifier: Acepta un identificador sin comillas y devuelve el identificador en un formato entre comillas. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Overrides Function QuoteIdentifier ( _ unquotedIdentifier As String _ ) As String [C#] public override string QuoteIdentifier ( string unquotedIdentifier ) [C++] public: virtual String^ QuoteIdentifier (

3-88

IBM Data Server Provider for .NET para Informix Dynamic Server

String^ unquotedIdentifier ) override [JScript] public override function QuoteIdentifier ( unquotedIdentifier : String ) : String

Parámetros unquotedIdentifier Serie de caracteres con el identificador en un formato sin comillas. Valor de retorno Serie de caracteres con el identificador en un formato entre comillas. Información de versión Versión de .NET Framework Soportado en: 2.0 y 3.0 Consulta “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Miembros de IfxCommandBuilder” en la página 3-71 Miembros de IfxCommandBuilder “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommandBuilder.RefreshSchema: Renueva la información de esquema de la base de datos utilizada para generar sentencias INSERT, UPDATE o DELETE. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub RefreshSchema() [C#] public void RefreshSchema(); [C++] public: void RefreshSchema(); [JScript] public function RefreshSchema();

Comentarios Debe llamarse a RefreshSchema cada vez que cambie el valor IfxDataAdapter.SelectCommand de IfxDataAdapter. Consulta Capítulo 3. IBM Data Server Provider for .NET

3-89

“Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Miembros de IfxCommandBuilder” en la página 3-71 Miembros de IfxCommandBuilder “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommandBuilder.SetRowUpdatingHandler: Registra el IfxCommandBuilder que debe gestionar el suceso RowUpdating para un IfxDataAdapter. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Overrides Sub SetRowUpdatingHandler (adapter As DbDataAdapter) [C#] public override void SetRowUpdatingHandler (DbDataAdapter adapter) [C++] public: virtual void SetRowUpdatingHandler (DbDataAdapter adapter) override [JScript] public override function SetRowUpdatingHandler (adapter : DbDataAdapter)

Parámetros adapter IfxDataAdapter (o IfxDataAdapter) que debe utilizarse para la operación de actualización. Información de versión Versión de .NET Framework Soportado en: 2.0 y 3.0 Consulta “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommandBuilder.UnquoteIdentifier: Acepta un identificador entre comillas y devuelve el identificador en un formato sin comillas.

3-90

IBM Data Server Provider for .NET para Informix Dynamic Server

Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Overrides Function UnquoteIdentifier ( _ quotedIdentifier As String _ ) As String [C#] public override string UnquoteIdentifier ( string quotedIdentifier ) [C++] public: virtual String^ UnquoteIdentifier ( String^ quotedIdentifier ) override [JScript] public override function UnquoteIdentifier ( quotedIdentifier : String ) : String

Parámetros unquotedIdentifier Serie de caracteres con el identificador en un formato entre comillas. Valor de retorno Serie de caracteres con el identificador en un formato sin comillas. Información de versión Versión de .NET Framework Soportado en: 2.0 y 3.0 Consulta “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Miembros de IfxCommandBuilder” en la página 3-71 Miembros de IfxCommandBuilder “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento.

Propiedades de IfxCommandBuilder Las propiedades de la clase IfxCommandBuilder se listan a continuación.

Propiedades públicas CatalogLocation

Obtiene la CatalogLocation para esta instancia de IfxCommandBuilder.

Capítulo 3. IBM Data Server Provider for .NET

3-91

CatalogSeparator

Container (heredada de Component) DataAdapter

QuotePrefix

QuoteSuffix

SchemaSeparator

Obtiene la serie de caracteres que representa un separador de catálogo para esta instancia de IfxCommandBuilder. Obtiene el IContainer que contiene el Component. Obtiene o establece un objeto IfxDataAdapter para el cual este objeto IfxCommandBuilder generará sentencias de SQL. Obtiene o establece el carácter inicial o caracteres iniciales que se deben utilizar al trabajar con objetos de base de datos (por ejemplo, tablas o columnas) cuyos nombres contienen caracteres tales como espacios o símbolos reservados. Obtiene o establece el carácter final o caracteres finales que se deben utilizar al trabajar con objetos de base de datos (por ejemplo, tablas o columnas) cuyos nombres contienen caracteres tales como espacios o símbolos reservados. Obtiene la serie de caracteres que representa un separador de esquema para esta instancia de IfxCommandBuilder. Obtiene o establece el ISite de Component.

Site (heredada de Component)

Propiedades protegidas DesignMode (heredada de Component) Events (heredada de Component)

Obtiene un valor que indica si el Component está actualmente en modalidad de diseño. Obtiene la lista de manejadores de sucesos que están conectados a este Component.

Consulta “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Propiedad IfxCommandBuilder.CatalogLocation: Obtiene la CatalogLocation para esta instancia de IfxCommandBuilder. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll)

3-92

IBM Data Server Provider for .NET para Informix Dynamic Server

Sintaxis Visual Basic] Public Overrides Property CatalogLocation As CatalogLocation [C#] public override CatalogLocation CatalogLocation { get; set; } [C++] public: virtual property CatalogLocation CatalogLocation { CatalogLocation get () override; void set (CatalogLocation value) override; } [JScript] public override function get CatalogLocation () : CatalogLocation public override function set CatalogLocation (value : CatalogLocation)

Valor de la propiedad Devuelve CatalogLocation.Start. Excepciones Tipo de excepción

Condición

System.NotSupportedException

Se ha intentado establecer la propiedad CatalogLocation.

Información de versión Versión de .NET Framework Soportado en: 2.0 y 3.0 Consulta “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Miembros de IfxCommandBuilder” en la página 3-71 Miembros de IfxCommandBuilder “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Propiedad IfxCommandBuilder.CatalogSeparator: Obtiene la serie de caracteres que representa un separador de catálogo para esta instancia de IfxCommandBuilder. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Overrides Property CatalogSeparator As String [C#] public override string CatalogSeparator { get; set; } [C++] Capítulo 3. IBM Data Server Provider for .NET

3-93

public: virtual property String^ CatalogSeparator { String^ get () override; void set (String^ value) override; } [JScript] public override function get CatalogSeparator () : String public override function set CatalogSeparator (value : String)

Valor de la propiedad El valor de la serie de caracteres para la propiedad CatalogSeparator es ″.″. Para Informix Dynamic Server, el valor de la serie de caracteres es ″:″. Excepciones Tipo de excepción

Condición

System.NotSupportedException

Se ha intentado establecer la propiedad CatalogSeparator.

Información de versión Versión de .NET Framework Soportado en: 2.0 y 3.0 Consulta “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Miembros de IfxCommandBuilder” en la página 3-71 Miembros de IfxCommandBuilder “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Propiedad IfxCommandBuilder.DataAdapter: Obtiene o establece un objeto IfxDataAdapter para el cual este objeto IfxCommandBuilder generará sentencias de SQL. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Property DataAdapter As IfxDataAdapter [C#] public IfxDataAdapter DataAdapter {get; set;} [C++] public: __property IfxDataAdapter * get_DataAdapter(); public: __property void set_DataAdapter(IfxDataAdapter

3-94

IBM Data Server Provider for .NET para Informix Dynamic Server

*); [JScript] public function get DataAdapter() : IfxDataAdapter ; public function set DataAdapter(IfxDataAdapter );

Valor de la propiedad Objeto IfxDataAdapter que está asociado con este IfxCommandBuilder. Comentarios IfxCommandBuilder se registra a sí mismo como escucha para los sucesos de IfxDataAdapter.RowUpdating que genera el IfxDataAdapter especificado en esta propiedad. Cuando se crea una nueva instancia de IfxCommandBuilder, se libera cualquier IfxCommandBuilder existente que esté asociado con este IfxDataAdapter. Consulta “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Miembros de IfxCommandBuilder” en la página 3-71 Miembros de IfxCommandBuilder “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Ejemplos DbDatAdp.cs DbDatAdp.vb Propiedad IfxCommandBuilder.QuotePrefix: Obtiene o establece el carácter inicial o caracteres iniciales que se deben utilizar al trabajar con objetos de base de datos (por ejemplo, tablas o columnas) cuyos nombres contienen caracteres tales como espacios o símbolos reservados. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Property QuotePrefix As String [C#] public string QuotePrefix {get; set;} [C++] public: __property String* get_QuotePrefix(); public: __property void set_QuotePrefix(String*); [JScript] public function get QuotePrefix() : String; public function set QuotePrefix(String);

Capítulo 3. IBM Data Server Provider for .NET

3-95

Valor de la propiedad El carácter o los caracteres iniciales que se van a utilizar. El valor por omisión es una serie de caracteres vacía. Excepciones Tipo de excepción

Condición

InvalidOperationException

Esta propiedad no se puede cambiar después de generar un mandato de inserción, actualización o supresión.

Comentarios Algunas bases de datos pueden contener objetos cuyos nombres incluyen caracteres tales como espacios, comas y puntos y comas. Para dar cabida a esos caracteres, utilice las propiedades QuotePrefix y QuoteSuffix para especificar delimitadores, tales como corchetes de apertura y de cierre, que servirán para encapsular el nombre del objeto. Nota: Aunque no puede cambiar las propiedades QuotePrefix o QuoteSuffix una vez se haya generado un mandato de inserción, actualización o supresión, puede cambiar los valores de los mismos después de invocar el método Update de un IfxDataAdapter. Consulta “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Miembros de IfxCommandBuilder” en la página 3-71 Miembros de IfxCommandBuilder “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Propiedad IfxCommandBuilder.QuoteSuffix: Obtiene o establece el carácter final o caracteres finales que se deben utilizar al trabajar con objetos de base de datos (por ejemplo, tablas o columnas) cuyos nombres contienen caracteres tales como espacios o símbolos reservados. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Property QuoteSuffix As String [C#] public string QuoteSuffix {get; set;} [C++] public: __property String* get_QuoteSuffix();

3-96

IBM Data Server Provider for .NET para Informix Dynamic Server

public: __property void set_QuoteSuffix(String*); [JScript] public function get QuoteSuffix() : String; public function set QuoteSuffix(String);

Valor de la propiedad El carácter o los caracteres finales que se van a utilizar. El valor por omisión es una serie de caracteres vacía. Excepciones Tipo de excepción

Condición

InvalidOperationException

Esta propiedad no se puede cambiar después de generar un mandato de inserción, actualización o supresión.

Comentarios Algunas bases de datos pueden contener objetos cuyos nombres incluyen caracteres tales como espacios, comas y puntos y comas. Para dar cabida a esos caracteres, utilice las propiedades QuotePrefix y QuoteSuffix para especificar delimitadores, tales como corchetes de apertura y de cierre, que servirán para encapsular el nombre del objeto. Nota: Aunque no puede cambiar las propiedades QuotePrefix o QuoteSuffix una vez se haya generado una operación de inserción, actualización o supresión, puede cambiar los valores de los mismos después de invocar el método Update de un IfxDataAdapter. Consulta “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Miembros de IfxCommandBuilder” en la página 3-71 Miembros de IfxCommandBuilder “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Propiedad IfxCommandBuilder.SchemaSeparator: Obtiene la serie de caracteres que representa un separador de esquema para esta instancia de IfxCommandBuilder. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Overrides Property SchemaSeparator As String [C#] Capítulo 3. IBM Data Server Provider for .NET

3-97

public override string SchemaSeparator { get; set; } [C++] public: virtual property String^ SchemaSeparator { String^ get () override; void set (String^ value) override; } [JScript] public override function get SchemaSeparator () : String public override function set SchemaSeparator (value : String)

Valor de la propiedad El valor de la serie de caracteres para la propiedad SchemaSeparator es siempre ″.″. Excepciones Tipo de excepción

Condición

System.NotSupportedException

Se ha intentado establecer la propiedad SchemaSeparator.

Información de versión Versión de .NET Framework Soportado en: 2.0 Consulta “Clase IfxCommandBuilder” en la página 3-68 Genera automáticamente mandatos de una sola tabla utilizados para reconciliar cambios realizados en un DataSet con la base de datos asociada. “Miembros de IfxCommandBuilder” en la página 3-71 Miembros de IfxCommandBuilder “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento.

Clase IfxCommand Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll)

Jerarquía de herencias de .NET Framework 1.1 System.Object System.MarshalByRefObject System.ComponentModel.Component IBM.Data.Informix.IfxCommand

3-98

IBM Data Server Provider for .NET para Informix Dynamic Server

Jerarquía de herencias de .NET Framework 2.0 y 3.0 System.Object System.MarshalByRefObject System.ComponentModel.Component System.Data.Common.DbCommand IBM.Data.Informix.IfxCommand

Sintaxis de .NET Framework 1.1 Visual Basic] NotInheritable Public Class IfxCommand Inherits Component Implements ICloneable, IDbCommand [C#] public sealed class IfxCommand : Component, ICloneable, IDbCommand [C++] public __gc __sealed class IfxCommand : public Component, ICloneable, IDbCommand [JScript] public class IfxCommand extends Component implements ICloneable, IDbCommand

Sintaxis de .NET Framework 2.0 y 3.0 Visual Basic] NotInheritable Public Class IfxCommand Inherits DbCommand Implements ICloneable [C#] public sealed class IfxCommand : DbCommand, ICloneable [C++] public __gc __sealed class IfxCommand : public DbCommand, ICloneable [JScript] public class IfxCommand extends DbCommand implements ICloneable

Comentarios La clase IfxCommand proporciona los métodos siguientes para la ejecución de mandatos contra una base de datos: Elemento

Descripción

ExecuteReader

Ejecuta mandatos que devuelven filas.

ExecuteResultSet

Envía CommandText a la Connection y crea un DB2ResultSet.

ExecuteNonQuery

Ejecuta mandatos tales como sentencias INSERT, DELETE, UPDATE y SET de SQL.

ExecuteScalar

Recupera un solo valor (por ejemplo, un valor agregado) de una base de datos.

Si la ejecución del mandato produce una excepción IfxException muy grave, es posible que IfxConnection se cierre. Sin embargo, el usuario puede reabrir la conexión y continuar.

Capítulo 3. IBM Data Server Provider for .NET

3-99

Ejemplo [Visual Basic, C#] El ejemplo siguiente utiliza el método ExecuteReader de IfxCommand, junto con IfxDataReader y IfxConnection para seleccionar filas de una tabla. [Visual Basic] Public Sub ReadMyData(myConnString As String) Dim mySelectQuery As String = "SELECT SALES, SALES_PERSON FROM SALES" Dim myConnection As New IfxConnection(myConnString) Dim myCommand As New IfxCommand(mySelectQuery, myConnection) myConnection.Open() Dim myReader As IfxDataReader = myCommand.ExecuteReader() Try While myReader.Read() Console.WriteLine(myReader.GetInt32(0).ToString() + ", " _ + myReader.GetString(1)) End While Finally ’ always call Close when done reading. myReader.Close() ’ always call Close when done with connection. myConnection.Close() End Try End Sub [C#] public void ReadMyData(string myConnString) { string mySelectQuery = "SELECT SALES, SALES_PERSON FROM SALES"; IfxConnection myConnection = new IfxConnection(myConnString); IfxCommand myCommand = new IfxCommand(mySelectQuery,myConnection); myConnection.Open(); IfxDataReader myReader = myCommand.ExecuteReader(); try { while (myReader.Read()) { Console.WriteLine(myReader.GetInt32(0) + ", " + myReader.GetString(1)); } } finally { // always call Close when done reading. myReader.Close(); // always call Close when done with connection. myConnection.Close(); } }

Seguridad de hebra Cualquier miembro estático público (Shared en Visual Basic) de este tipo es seguro para operaciones multihebra. No se garantiza que cualquier miembro de instancia sea seguro para hebras.

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Miembros de IfxCommand” en la página 3-101 Visión general de IfxCommand

3-100

IBM Data Server Provider for .NET para Informix Dynamic Server

“Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. “Clase IfxDataAdapter” en la página 3-255 Representa un conjunto de mandatos de datos y una conexión con una base de datos que se utilizan para rellenar el DataSet y actualizar la base de datos. “Clase IfxConnection” en la página 3-156 Representa una conexión abierta con una base de datos. Ejemplos DbUse.cs DbUse.cs TbUse.cs TbUse.vb

Miembros de IfxCommand Visión general de IfxCommand

Constructores públicos Sobrecargado. Inicializa una nueva instancia de la clase IfxCommand.

IfxCommand

Propiedades públicas CommandText

Obtiene o establece la sentencia de SQL, expresión de o procedimiento almacenado que se debe ejecutar contra la base de datos.

CommandTimeout

Obtiene o establece el tiempo de espera antes de finalizar la ejecución de un mandato y generar un error.

CommandType

Obtiene o establece un valor que indica cómo se interpreta la propiedad CommandText.

Connection

Obtiene o establece la IfxConnection utilizada por esta instancia de IfxCommand.

Container (heredada de Component)

Obtiene el IContainer que contiene el Component.

IfxTypeOutput

DbConnection

Determina si los valores del parámetro de solo salida asociados con IfxCommand se devolverán como tipos de datos DB2 nativos (especialmente, clases y estructuras en el espacio de nombres IBM.Data.IfxTypes). Obtiene o establece la DbConnection utilizada por esta instancia de IfxCommand. Obtiene el objeto DbParameterCollection.

DbParameterCollection DbTransaction

Obtiene o establece la DbTransaction dentro de la cual se ejecuta IfxCommand.

Capítulo 3. IBM Data Server Provider for .NET

3-101

DesignTimeVisible

Obtiene o establece un valor booleano que indica si un IfxCommand generado por un adaptador de datos es visible. Obtiene IfxParameterCollection.

Parameters Obtiene o establece el ISite de Component. Site (heredada de Component) Transaction UpdatedRowSource

Obtiene o establece la IfxTransaction dentro de la cual se ejecuta IfxCommand. Obtiene o establece un valor que especifica cómo el método Update debe aplicar resultados de mandato a DataRow.

Métodos públicos Cancel CreateObjRef (heredado de MarshalByRefObject)

Crea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto remoto.

CreateParameter

Crea una nueva instancia de un objeto IfxParameter.

Dispose (heredado de Component)

Alterado temporalmente. Libera los recursos utilizados por Component.

Equals (heredado de Object)

Alterado temporalmente. Determina si dos instancias de Object son iguales.

ExecuteNonQuery

Ejecuta una sentencia de SQL en Connection y devuelve el número de filas afectadas.

ExecutePageReader

Devuelve una instancia de IfxDataReader que contiene un conjunto de filas solicitado.

ExecuteReader

Sobrecargado. Envía el CommandText a la Connection y crea un IfxDataReader.

ExecuteScalar

Ejecuta la consulta y devuelve la primera columna de la primera fila del conjunto de resultados devuelto por la consulta. Las columnas o filas extra se ignoran.

ExecuteResultSet

Sobrecargado. Envía el CommandText a la Connection y crea un IfxResultSet.

ExecuteRow

Envía el CommandText a la Connection y crea un IfxRecord.

GetHashCode (heredado de Object)

GetLifetimeService (heredado de MarshalByRefObject)

3-102

Intenta cancelar la ejecución de IfxCommand.

IBM Data Server Provider for .NET para Informix Dynamic Server

Funciona como una función de hash para un tipo determinado, apto para la utilización en algoritmos de hash y en estructuras de datos como una tabla hash. Recupera el objeto de servicio vitalicio actual que controla la política vitalicia para esta instancia.

Obtiene el Type de la instancia actual. GetType (heredado de Object) InitializeLifetimeService (heredado de MarshalByRefObject)

Obtiene un objeto de servicio vitalicio para controlar la política vitalicia para esta instancia.

Prepare

Crea una versión preparada (o compilada) del mandato en la base de datos.

ResetCommandTimeout

Restablece la propiedad CommandTimeout en el valor por omisión.

ToString (heredado de Object)

Devuelve una String que representa el Object actual.

Sucesos públicos Añade un manejador de sucesos para escuchar al suceso Disposed en el componente.

Disposed (heredado de Component)

Propiedades protegidas Obtiene un valor que indica si el Component está actualmente en modalidad de diseño.

DesignMode (heredada de Component)

Obtiene la lista de manejadores de sucesos que están conectados a este Component.

Events (heredada de Component)

Métodos protegidos Crea una nueva instancia de un objeto DbParameter.

CreateDbParameter

Sobrecargado. Alterado temporalmente. Libera los recursos utilizados por IfxCommand.

Dispose

Envía CommandText a Connection y crea un objeto DbDataReader.

ExecuteDbDataReader

Alterado temporalmente. Permite que un Object intente liberar recursos y realizar otras operaciones de limpieza antes de que el Object sea reclamado para la recopilación de basura.

Finalize (heredado de Object)

En C# y Microsoft(R) Visual C++(R), los finalizadores se expresan utilizando sintaxis de destructor. GetService (heredado de Component)

Devuelve un objeto que representa un servicio proporcionado por el Component o por su Container. Crea una copia superficial del Object actual.

MemberwiseClone (heredado de Object)

Capítulo 3. IBM Data Server Provider for .NET

3-103

Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento.

Constructor de IfxCommand Inicializa una nueva instancia de la clase IfxCommand.

Lista de sobrecargas Nombre

Descripción

IfxCommand()

Inicializa una nueva instancia de la clase IfxCommand.

IfxCommand(String)

Inicializa una nueva instancia de la clase IfxCommand con el texto de la consulta.

IfxCommand(String, IfxConnection)

Inicializa una nueva instancia de la clase IfxCommand con el texto de la consulta y un objeto DB2Connection.

IfxCommand(String, IfxConnection, IfxTransaction)

Inicializa una nueva instancia de la clase IfxCommand con el texto de la consulta, un objeto DB2Connection y Transaction.

Ejemplo [Visual Basic, C#] El ejemplo siguiente crea un IfxCommand y establece algunas de sus propiedades. Nota: [Visual Basic, C#] Este ejemplo muestra cómo utilizar una de las versiones sobrecargadas del constructor de IfxCommand. Para obtener otros ejemplos que pudieran estar disponibles, consulte los temas de sobrecarga individuales. [Visual Basic] Public Sub CreateMyIfxCommand() Dim myConnection As New IfxConnection _ ("DATABASE=SAMPLE") myConnection.Open() Dim myTrans As IfxTransaction = myConnection.BeginTransaction() Dim mySelectQuery As String = _ "SELECT * FROM EMPLOYEE ORDER BY EMPNO" Dim myCommand As New IfxCommand(mySelectQuery, myConnection, myTrans) myCommand.CommandTimeout = 20 End Sub [C#] public void CreateMyIfxCommand() { IfxConnection myConnection = new IfxConnection("DATABASE=SAMPLE"); myConnection.Open(); IfxTransaction myTrans = myConnection.BeginTransaction();

3-104

IBM Data Server Provider for .NET para Informix Dynamic Server

string mySelectQuery = "SELECT * FROM EMPLOYEE ORDER BY EMPNO"; IfxCommand myCommand = new IfxCommand(mySelectQuery, myConnection,myTrans); myCommand.CommandTimeout = 20; }

Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Miembros de IfxCommand” en la página 3-101 Visión general de IfxCommand “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Constructor de IfxCommand (): Inicializa una nueva instancia de la clase IfxCommand. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub New() [C#] public IfxCommand(); [C++] public: IfxCommand(); [JScript] public function IfxCommand();

Comentarios El constructor base inicializa todos los campos en sus valores por omisión. La tabla siguiente muestra los valores iniciales de las propiedades para una instancia de IfxCommand. Propiedades

Valor inicial

CommandText

serie vacía (″″)

CommandTimeout

30

CommandType

Texto

Connection

nulo

Ejemplo [Visual Basic, C#] El ejemplo siguiente crea un IfxCommand y define algunas de sus propiedades. Visual Basic] Public Sub CreateMyIfxCommand() Dim myCommand As New IfxCommand() myCommand.CommandTimeout = 20 Capítulo 3. IBM Data Server Provider for .NET

3-105

End Sub [C#] public void CreateMyIfxCommand() { IfxCommand myCommand = new IfxCommand(); myCommand.CommandTimeout = 20; }

Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Miembros de IfxCommand” en la página 3-101 Visión general de IfxCommand “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. “Constructor de IfxCommand” en la página 3-104 Inicializa una nueva instancia de la clase IfxCommand. “Clase IfxDataAdapter” en la página 3-255 Representa un conjunto de mandatos de datos y una conexión con una base de datos que se utilizan para rellenar el DataSet y actualizar la base de datos. “Clase IfxConnection” en la página 3-156 Representa una conexión abierta con una base de datos. Constructor de IfxCommand (String): Inicializa una nueva instancia de la clase IfxCommand con el texto de la consulta. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub New( _ ByVal cmdText As String _ ) [C#] public IfxCommand( string cmdText ); [C++] public: IfxCommand( String* cmdText ); [JScript] public function IfxCommand( cmdText : String );

Parámetros cmdText El texto de la consulta.

3-106

IBM Data Server Provider for .NET para Informix Dynamic Server

Ejemplo [Visual Basic, C#] El ejemplo siguiente crea un IfxCommand y define algunas de sus propiedades. Visual Basic] Public Sub CreateMyIfxCommand() Dim mySelectQuery As String = "SELECT * FROM EMPLOYEE ORDER BY EMPNO" Dim myCommand As New IfxCommand(mySelectQuery) myCommand.CommandTimeout = 20 End Sub [C#] public void CreateMyIfxCommand() { string mySelectQuery = "SELECT * FROM EMPLOYEE ORDER BY EMPNO"; IfxCommand myCommand = new IfxCommand(mySelectQuery); myCommand.CommandTimeout = 20; }

Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Miembros de IfxCommand” en la página 3-101 Visión general de IfxCommand “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. “Constructor de IfxCommand” en la página 3-104 Inicializa una nueva instancia de la clase IfxCommand. Constructor de IfxCommand (String, IfxConnection): Inicializa una nueva instancia de la clase IfxCommand con el texto de la consulta y el objeto IfxConnection. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub New( _ ByVal cmdText As String, _ ByVal connection As IfxConnection _ ) [C#] public IfxCommand( string cmdText, IfxConnection connection ); [C++] public: IfxCommand( String* cmdText, IfxConnection * connection ); [JScript] Capítulo 3. IBM Data Server Provider for .NET

3-107

public function IfxCommand( cmdText : String, connection : IfxConnection );

Parámetros cmdText El texto de la consulta. connection Objeto IfxConnection que representa una conexión abierta a un servidor de datos. Ejemplo [Visual Basic, C#] El ejemplo siguiente crea un IfxCommand y establece algunas de sus propiedades. Visual Basic] Public Sub CreateMyIfxCommand() Dim myConnection As New IfxConnection _ ("DATABASE=SAMPLE;") Dim mySelectQuery As String = _ "SELECT * FROM EMPLOYEE ORDER BY EMPNO" Dim myCommand As New IfxCommand(mySelectQuery, myConnection) myCommand.CommandTimeout = 20 End Sub [C#] public void CreateMyIfxCommand() { IfxConnection myConnection = new IfxConnection("DATABASE=SAMPLE;"); string mySelectQuery = "SELECT * FROM EMPLOYEE ORDER BY EMPNO"; IfxCommand myCommand = new IfxCommand(mySelectQuery, myConnection); myCommand.CommandTimeout = 20; }

Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Miembros de IfxCommand” en la página 3-101 Visión general de IfxCommand “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. “Constructor de IfxCommand” en la página 3-104 Inicializa una nueva instancia de la clase IfxCommand. Constructor de IfxCommand (String, IfxConnection, IfxTransaction): Inicializa una nueva instancia de la clase IfxCommand con el texto de la consulta, un objeto IfxConnection y Transaction. Espacio de nombres: IBM.Data.Informix

3-108

IBM Data Server Provider for .NET para Informix Dynamic Server

Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Sub New( _ ByVal cmdText As String, _ ByVal connection As IfxConnection , _ ByVal transaction As IfxTransaction _ ) [C#] public IfxCommand( string cmdText, IfxConnection connection, IfxTransaction transaction ); [C++] public: IfxCommand( String* cmdText, IfxConnection* connection, IfxTransaction* transaction ); [JScript] public function IfxCommand( cmdText : String, connection : IfxConnection, transaction : IfxTransaction );

Parámetros cmdText El texto de la consulta. connection Objeto IfxConnection que representa una conexión abierta a un servidor de datos. transaction La transacción en la que DB2Command se ejecuta. Comentarios La tabla siguiente muestra los valores iniciales de las propiedades para una instancia de esta implementación de IfxCommand. Propiedades

Valor inicial

CommandText

cmdText

CommandTimeout

30

CommandType

Texto

Connection

Nueva IfxConnection que es el valor del parámetro connection.

Puede cambiar el valor de cualquiera de estos parámetros definiendo la propiedad asociada.

Capítulo 3. IBM Data Server Provider for .NET

3-109

Ejemplo [Visual Basic, C#] El ejemplo siguiente crea un IfxCommand y establece algunas de sus propiedades. Visual Basic] Public Sub CreateMyIfxCommand() Dim myConnection As New IfxConnection _ ("DATABASE=SAMPLE;") myConnection.Open() Dim myTrans As IfxTransaction = myConnection.BeginTransaction() Dim mySelectQuery As String = _ "SELECT * FROM EMPLOYEE ORDER BY EMPNO" Dim myCommand As New IfxCommand(mySelectQuery, myConnection, myTrans) myCommand.CommandTimeout = 20 End Sub [C#] public void CreateMyIfxCommand() { IfxConnection myConnection = new IfxConnection("DATABASE=SAMPLE;"); myConnection.Open(); IfxTransaction myTrans = myConnection.BeginTransaction(); string mySelectQuery = "SELECT * FROM EMPLOYEE ORDER BY EMPNO"; IfxCommand myCommand = new IfxCommand(mySelectQuery, myConnection,myTrans); myCommand.CommandTimeout = 20; }

Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Miembros de IfxCommand” en la página 3-101 Visión general de IfxCommand “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. “Constructor de IfxCommand” en la página 3-104 Inicializa una nueva instancia de la clase IfxCommand.

Métodos de IfxCommand Los métodos de la clase IfxCommand se listan a continuación. Para obtener una lista completa de los miembros de la clase IfxCommand, consulte el tema Miembros de IfxCommand.

Métodos públicos Cancel CreateObjRef (heredado de MarshalByRefObject)

CreateParameter

3-110

IBM Data Server Provider for .NET para Informix Dynamic Server

Intenta cancelar la ejecución de IfxCommand. Crea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto remoto. Crea una nueva instancia de un objeto IfxParameter.

Dispose (heredado de Component)

Alterado temporalmente. Libera los recursos utilizados por Component.

Equals (heredado de Object)

Alterado temporalmente. Determina si dos instancias de Object son iguales.

ExecuteNonQuery

Ejecuta una sentencia de SQL en Connection y devuelve el número de filas afectadas.

ExecutePageReader

Devuelve una instancia de IfxDataReader que contiene un conjunto de filas solicitado.

ExecuteReader

Sobrecargado. Envía el CommandText a la Connection y crea un IfxDataReader. Ejecuta la consulta y devuelve la primera columna de la primera fila del conjunto de resultados devuelto por la consulta. Las columnas o filas extra se ignoran.

ExecuteScalar

ExecuteResultSet

Sobrecargado. Envía el CommandText a la Connection y crea un IfxResultSet.

ExecuteRow

Envía el CommandText a la Connection y crea un IfxRecord. Funciona como una función de hash para un tipo determinado, apto para la utilización en algoritmos de hash y en estructuras de datos como una tabla hash.

GetHashCode (heredado de Object)

Recupera el objeto de servicio vitalicio actual que controla la política vitalicia para esta instancia.

GetLifetimeService (heredado de MarshalByRefObject)

Obtiene el Type de la instancia actual. GetType (heredado de Object) InitializeLifetimeService (heredado de MarshalByRefObject)

Obtiene un objeto de servicio vitalicio para controlar la política vitalicia para esta instancia.

Prepare

Crea una versión preparada (o compilada) del mandato en la base de datos.

ResetCommandTimeout

Restablece la propiedad CommandTimeout en el valor por omisión.

ToString (heredado de Object)

Devuelve una String que representa el Object actual.

Métodos protegidos CreateDbParameter Dispose

ExecuteDbDataReader

Crea una nueva instancia de un objeto DbParameter. Sobrecargado. Alterado temporalmente. Libera los recursos utilizados por IfxCommand. Envía CommandText a Connection y crea un objeto DbDataReader.

Capítulo 3. IBM Data Server Provider for .NET

3-111

Finalize (heredado de Object)

Alterado temporalmente. Permite que un Object intente liberar recursos y realizar otras operaciones de limpieza antes de que el Object sea reclamado para la recopilación de basura. En C# y Microsoft(R) Visual C++(R), los finalizadores se expresan utilizando sintaxis de destructor.

GetService (heredado de Component)

Devuelve un objeto que representa un servicio proporcionado por el Component o por su Container. Crea una copia superficial del Object actual.

MemberwiseClone (heredado de Object)

Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommand.Cancel: Intenta cancelar la ejecución de IfxCommand. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] NotOverridable Public Sub Cancel() [C#] public void Cancel(); [C++] public: __sealed void Cancel(); [JScript] public function Cancel();

Comentarios Si no hay nada que cancelar, no sucede nada. Sin embargo, si existe un mandato en proceso y el intento de cancelarlo falla, no se genera ninguna excepción. Ejemplo [Visual Basic, C#] El ejemplo siguiente crea un IfxCommand, lo ejecuta y, a continuación, cancela la ejecución. Para hacer esto, el método recibe una serie de caracteres que es una sentencia SELECT de SQL, y una serie de caracteres que se utiliza para conectar con la base de datos.

3-112

IBM Data Server Provider for .NET para Informix Dynamic Server

Visual Basic] Public Sub CreateMyIfxCommand _ (mySelectQuery As String, myConnectionString As String) Dim myConnection As New IfxConnection(myConnectionString) Dim myCommand As New IfxCommand(mySelectQuery, myConnection) myCommand.Connection.Open() myCommand.ExecuteReader() myCommand.Cancel() End Sub [C#] public void CreateMyIfxCommand(string mySelectQuery, string myConnectionString) { IfxConnection myConnection = new IfxConnection(myConnectionString); IfxCommand myCommand = new IfxCommand(mySelectQuery, myConnection); myCommand.Connection.Open(); myCommand.ExecuteReader(); myCommand.Cancel(); }

Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Miembros de IfxCommand” en la página 3-101 Visión general de IfxCommand “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommand.CreateDbParameter: Crea una nueva instancia de un objeto DbParameter. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Overrides Protected Function CreateDbParameter() _ As DbParameter [C#] protected override DbParameter CreateDbParameter(); [C++] protected: DbParameter CreateDbParameter(); [JScript] protected override function CreateDbParameter() : DbParameter;

Valor de retorno Instancia de DbParameter. Información de versión Versión de .NET Framework Soportado en: 2.0 y 3.0 Capítulo 3. IBM Data Server Provider for .NET

3-113

Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommand.CreateParameter: Crea una nueva instancia de un objeto IfxParameter. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Function CreateParameter() As IfxParameter [C#] public IfxParameter CreateParameter(); [C++] public: IfxParameter * CreateParameter(); [JScript] public function CreateParameter() : IfxParameter ;

Valor de retorno Un objeto IfxParameter. Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Miembros de IfxCommand” en la página 3-101 Visión general de IfxCommand “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommand.Dispose: Libera los recursos utilizados por IfxCommand.

3-114

IBM Data Server Provider for .NET para Informix Dynamic Server

Lista de sobrecargas Nombre

Descripción

Dispose(Boolean)

Libera los recursos no gestionados y, opcionalmente, los recursos gestionados utilizados por el objeto DB2Command.

Dispose()

Heredado de Component.

Ejemplo [Visual Basic, C#] El ejemplo siguiente crea un IfxCommand y, a continuación, se deshace del mismo. Nota: [Visual Basic, C#] Este ejemplo muestra cómo utilizar una de las versiones sobrecargadas de Dispose. Para obtener otros ejemplos que pudieran estar disponibles, consulte los temas de sobrecarga individuales. Visual Basic] Public Sub IfxCommandHereAndGone() Dim myCommand As New IfxCommand() myCommand.Dispose() End Sub [C#] public void IfxCommandHereAndGone() { IfxCommand myCommand = new IfxCommand(); myCommand.Dispose(); }

Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Miembros de IfxCommand” en la página 3-101 Visión general de IfxCommand “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommand.Dispose (Boolean): Libera los recursos no gestionados y, opcionalmente, los gestionados que el objeto IfxCommand utiliza. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Overrides Overloads Protected Sub Dispose( _ ByVal disposing As Boolean _ ) [C#] protected override void Dispose( Capítulo 3. IBM Data Server Provider for .NET

3-115

bool disposing ); [C++] protected: void Dispose( bool disposing ); [JScript] protected override function Dispose( disposing : Boolean );

Parámetros disposing true para liberar tanto los recursos gestionados como los no gestionados; false para liberar sólo los recursos no gestionados. Comentarios El método público Dispose llama a este método. Dispose() invoca al método protegido Dispose(Boolean) con el parámetro disposing establecido en true. Cuando el parámetro disposing es true, el método libera todos los recursos retenidos por cualquier objetos gestionado referenciado por este IfxCommand. Lo hace invocando el método Dispose() de cada objeto referenciado. Notas para los herederos: Otros objetos pueden llamar varias veces a Dispose. Al alterar temporalmente Dispose(Boolean), tenga cuidado de no hacer referencia a objetos que se hayan desechado anteriormente en una llamada previa a Dispose. Para obtener más información sobre cómo implementar Dispose(Boolean), consulte ″Implementación del método Dispose″ en la documentación del SDK de Microsoft(R) .NET. Ejemplo [Visual Basic, C#] El ejemplo siguiente crea un IfxCommand y después lo desecha. Visual Basic] Public Sub IfxCommandHereAndGone() Dim myCommand As New IfxCommand() myCommand.Dispose() End Sub [C#] public void IfxCommandHereAndGone() { IfxCommand myCommand = new IfxCommand(); myCommand.Dispose(); }

Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Miembros de IfxCommand” en la página 3-101 Visión general de IfxCommand “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider

3-116

IBM Data Server Provider for .NET para Informix Dynamic Server

para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. “Método IfxCommand.Dispose” en la página 3-114 Libera los recursos utilizados por IfxCommand. Método IfxCommand.ExecuteDbDataReader: Envía CommandText a Connection y crea un objeto DbDataReader. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Overrides Protected Function ExecuteDbDataReader( _ ByVal behavior As CommandBehavior _ ) As DbDataReader [C#] protected override DbDataReader ExecuteDbDataReader( CommandBehavior behavior ); [C++] protected: DbDataReader ExecuteDbDataReader( CommandBehavior behavior ); [JScript] protected override function ExecuteDbDataReader( behavior : CommandBehavior ) : DbDataReader;

Parámetros behavior Instancia de CommandBehavior. Información de versión Versión de .NET Framework Soportado en: 2.0 y 3.0 Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommand.ExecuteNonQuery: Ejecuta una sentencia de SQL en Connection y devuelve el número de filas afectadas. Espacio de nombres: IBM.Data.Informix Capítulo 3. IBM Data Server Provider for .NET

3-117

Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] NotOverridable Public Function ExecuteNonQuery() As Integer [C#] public int ExecuteNonQuery(); [C++] public: __sealed int ExecuteNonQuery(); [JScript] public function ExecuteNonQuery() : int;

Valor de retorno Para sentencias UPDATE, INSERT y DELETE, el valor de retorno es el número de filas afectadas por el mandato. Para el resto de tipos de sentencias, el valor de retorno es -1. Comentarios Puede utilizar ExecuteNonQuery para realizar operaciones de catálogo (por ejemplo, consultar la estructura de una base de datos o crear objetos de base de datos como, por ejemplo, tablas); o para cambiar los datos de una base de datos, sin utilizar DataSet, ejecutando sentencias UPDATE, INSERT o DELETE. También se puede utilizar ExecuteNonQuery para ejecutar varias sentencias de SQL. En este caso, el valor de retorno es el número de filas afectadas por todas las sentencias en el mandato. Aunque ExecuteNonQuery no devuelva ninguna fila, los parámetros de salida o los valores de retorno correlacionados con parámetros se rellenan con datos. Ejemplo [Visual Basic, C#] El ejemplo siguiente crea un IfxCommand y, a continuación, lo ejecuta utilizando ExecuteNonQuery. Al ejemplo se le pasa una serie que es una sentencia de SQL (por ejemplo UPDATE, INSERT o DELETE) y una serie para utilizarla para conectar con la base de datos. [Visual Basic] Public Sub CreateMyIfxCommand(myExecuteQuery As String, _ myConnectionString As String) Dim myConnection As New IfxConnection(myConnectionString) Dim myCommand As New IfxCommand(myExecuteQuery, myConnection) myCommand.Connection.Open() myCommand.ExecuteNonQuery() MyConnection.Close() End Sub [C#] public void CreateMyIfxCommand(string myExecuteQuery, string myConnectionString) { IfxConnection myConnection = new IfxConnection(myConnectionString); IfxCommand myCommand = new IfxCommand(myExecuteQuery, myConnection); myCommand.Connection.Open(); myCommand.ExecuteNonQuery(); myConnection.Close(); }

Consulta

3-118

IBM Data Server Provider for .NET para Informix Dynamic Server

“Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Miembros de IfxCommand” en la página 3-101 Visión general de IfxCommand “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Ejemplos DbUse.cs DbUse.vb Método IfxCommand.ExecutePageReader: Devuelve una instancia de IfxDataReader que contiene un conjunto de filas solicitado. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Function ExecutePageReader( _ ByVal startRow As int, ByVal numRows As int _ ) As DataReader [C#] public DataReader ExecutePageReader( int startRow, int numRows); [C++] public: DataReader^ ExecutePageReader( int startRow, int numRows); [JScript] public function ExecutePageReader ( startRow : int, numRows : int ) : DataReader

Parámetros startRow Especifica la fila de inicio del conjunto de filas que se deben devolver. numRows Especifica el número total de filas que se deben devolver. Valor de retorno Devuelve una instancia de IfxDataReader que contiene un conjunto de filas solicitado. Ejemplo [C#] El ejemplo siguiente demuestra la recuperación de un conjunto específico de filas del conjunto de resultados. En el ejemplo, se pasa a la aplicación un IfxDataReader que contiene las filas de la tres a la siete. Capítulo 3. IBM Data Server Provider for .NET

3-119

[C#] IfxCommand cmd = conn.CreateCommand(); cmd.CommandText = "SELECT * FROM SALES"; IfxDataReader dr = cmd.ExecutePageReader(3, 7);

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Miembros de IfxCommand” en la página 3-101 Visión general de IfxCommand “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommand.ExecuteReader: Envía el CommandText a la Connection y crea un IfxDataReader. Lista de sobrecargas Nombre

Descripción

ExecuteReader()

Envía el CommandText a la Connection y crea un IfxDataReader.

ExecuteReader(CommandBehavior)

Envía el CommandText a la Connection y crea un IfxDataReader basado en el CommandBehavior especificado.

Ejemplo [Visual Basic, C#] El ejemplo siguiente crea un IfxCommand y más tarde lo ejecuta pasando una serie de caracteres que es una sentencia SELECT de SQL y una serie de caracteres que se utilizará para conectar con la base de datos. A continuación, se establece CommandBehavior en CloseConnection. Nota: [Visual Basic, C#] Este ejemplo muestra cómo utilizar una de las versiones sobrecargadas de ExecuteReader. Para obtener otros ejemplos que pudieran estar disponibles, consulte los temas de sobrecarga individuales. [Visual Basic] Public Sub CreateMyIfxDataReader(mySelectQuery As String, _ myConnectionString As String) Dim myConnection As New IfxConnection(myConnectionString) Dim myCommand As New IfxCommand(mySelectQuery, myConnection) myCommand.Connection.Open() Dim myReader As IfxDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection) While myReader.Read() Console.WriteLine(myReader.GetString(0)) End While myReader.Close() myConnection.Close()

3-120

IBM Data Server Provider for .NET para Informix Dynamic Server

End Sub [C#] public void CreateMyIfxDataReader(string mySelectQuery,string myConnectionString) { IfxConnection myConnection = new IfxConnection(myConnectionString); IfxCommand myCommand = new IfxCommand(mySelectQuery, myConnection); myCommand.Connection.Open(); IfxDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection); while(myReader.Read()) { Console.WriteLine(myReader.GetString(0)); } myReader.Close(); myConnection.Close(); }

Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Miembros de IfxCommand” en la página 3-101 Visión general de IfxCommand “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Ejemplos TbUse.cs TbUse.vb Método IfxCommand.ExecuteReader (): Envía el CommandText a la Connection y crea un IfxDataReader. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Overloads Public Function ExecuteReader() As IfxDataReader [C#] public IfxDataReader ExecuteReader(); [C++] public: IfxDataReader * ExecuteReader(); [JScript] public function ExecuteReader() : IfxDataReader;

Valor de retorno Un objeto IfxDataReader.

Capítulo 3. IBM Data Server Provider for .NET

3-121

Comentarios Para preparar la ejecución del procedimiento almacenado, establezca la propiedad CommandType en StoredProcedure y establezca la propiedad CommandText en el nombre del procedimiento almacenado. Entonces, cuando llame a ExecuteReader, la aplicación ejecutará este procedimiento almacenado. Puede acceder simultáneamente a datos desde varias instancias de IfxDataReader que utilizan la misma instancia de IfxConnection. Cada instancia de IfxDataReader debe estar asociada con su propia instancia de IfxCommand. Ejemplo [Visual Basic, C#] El ejemplo siguiente crea un IfxCommand transfiriendo una serie de caracteres con una sentencia SELECT de SQL y una serie de caracteres de conexión. El SQL se ejecuta a continuación llamando a ExecuteReader. [Visual Basic] Public Sub CreateMyIfxDataReader(mySelectQuery As String, _ myConnectionString As String) Dim myConnection As New IfxConnection(myConnectionString) Dim myCommand As New IfxCommand(mySelectQuery, myConnection) myCommand.Connection.Open() Dim myReader As IfxDataReader = myCommand.ExecuteReader() Try While myReader.Read() Console.WriteLine(myReader.GetString(0)) End While Finally myReader.Close() myConnection.Close() End Try End Sub [C#] public void CreateMyIfxDataReader(string mySelectQuery,string myConnectionString) { IfxConnection myConnection = new IfxConnection(myConnectionString); IfxCommand myCommand = new IfxCommand(mySelectQuery, myConnection); myCommand.Connection.Open(); IfxDataReader myReader = myCommand.ExecuteReader(); try { while(myReader.Read()) { Console.WriteLine(myReader.GetString(0)); } } finally { myReader.Close(); myConnection.Close(); } }

Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Miembros de IfxCommand” en la página 3-101 Visión general de IfxCommand

3-122

IBM Data Server Provider for .NET para Informix Dynamic Server

“Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. “Método IfxCommand.ExecuteReader” en la página 3-120 Envía el CommandText a la Connection y crea un IfxDataReader. Ejemplos TbUse.cs TbUse.vb Método IfxCommand.ExecuteReader (CommandBehavior): Envía el CommandText a la Connection, y crea un IfxDataReader utilizando uno de los valores de CommandBehavior. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Function ExecuteReader( _ ByVal behavior As CommandBehavior _ ) As IfxDataReader [C#] public IfxDataReader ExecuteReader( CommandBehavior behavior ); [C++] public: IfxDataReader * ExecuteReader( CommandBehavior behavior ); [JScript] public function ExecuteReader( behavior : CommandBehavior ) : IfxDataReader ;

Parámetros behavior Uno de los valores de System.Data.CommandBehavior. Valor de retorno Una instancia de IfxDataReader. Comentarios Si espera que la sentencia de SQL devuelva solamente una fila, la especificación de SingleRow como valor de CommandBehavior puede mejorar el rendimiento de la aplicación.

Capítulo 3. IBM Data Server Provider for .NET

3-123

IfxDataReader permite la utilización de una modalidad especial gracias a la que se pueden leer de forma eficiente los valores binarios altos. Para obtener más información, consulte el valor SequentialAccess de CommandBehavior. Puede acceder simultáneamente a datos desde varias instancias de IfxDataReader que utilizan la misma instancia de IfxConnection. Cada instancia de IfxDataReader debe estar asociada con su propia instancia de IfxCommand. Ejemplo [Visual Basic, C#] El ejemplo siguiente crea un IfxCommand y más tarde lo ejecuta pasando una serie de caracteres que es una sentencia SELECT de SQL y una serie de caracteres que se utilizará para conectar con la base de datos. A continuación, se establece CommandBehavior en CloseConnection. [Visual Basic] Public Sub CreateMyIfxDataReader(mySelectQuery As String, _ myConnectionString As String) Dim myConnection As New IfxConnection(myConnectionString) Dim myCommand As New IfxCommand(mySelectQuery, myConnection) myCommand.Connection.Open() Dim myReader As IfxDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection) While myReader.Read() Console.WriteLine(myReader.GetString(0)) End While myReader.Close() myConnection.Close() End Sub [C#] public void CreateMyIfxDataReader(string mySelectQuery,string myConnectionString) { IfxConnection myConnection = new IfxConnection(myConnectionString); IfxCommand myCommand = new IfxCommand(mySelectQuery, myConnection); myCommand.Connection.Open(); IfxDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection); while(myReader.Read()) { Console.WriteLine(myReader.GetString(0)); } myReader.Close(); myConnection.Close(); }

Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Miembros de IfxCommand” en la página 3-101 Visión general de IfxCommand “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. “Método IfxCommand.ExecuteReader” en la página 3-120 Envía el CommandText a la Connection y crea un IfxDataReader. Ejemplos

3-124

IBM Data Server Provider for .NET para Informix Dynamic Server

DtLob.cs DtLob.vb Método IfxCommand.ExecuteResultSet: Envía el CommandText a la Connection y crea un IfxResultSet. Lista de sobrecargas ExecuteResultSet(IBM.Data.IfxCursorType)

Envía el CommandText a la Connection y crea un IfxResultSet en función de un IfxCursorType.

ExecuteResultSet(IBM.Data.IfxResultSetOptions)

Envía el CommandText a la Connection y crea un IfxResultSet basado en IfxResultSetOptions.

ExecuteResultSet(System.Data.CommandBehavior, IBM.Data.IfxCursorType)

Envía el CommandText a la Connection y crea un IfxResultSet basado en CommandBehavior y un IfxCursorType.

ExecuteResultSet(System.Data.CommandBehavior, IBM.Data.IfxCursorType, bool)

Envía el CommandText a la Connection y crea un IfxResultSet basado en CommandBehavior, un IfxCursorType y un valor que determina si la operación terminará anormalmente si se reduce el cursor.

ExecuteResultSet(System.Data.CommandBehavior, IBM.Data.IfxResultSetOptions)

Envía el CommandText a la Connection y crea un IfxResultSet basado en CommandBehavior y IfxResultSetOptions.

ExecuteResultSet(System.Data.CommandBehavior, IBM.Data.IfxResultSetOptions, bool)

Envía el CommandText a la Connection y crea un IfxResultSet basado en CommandBehavior, IfxResultSetOptions y un valor que determina si la operación terminará anormalmente si se reduce el cursor.

Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommand.ExecuteResultSet(IBM.Data.DB2.IfxCursorType): Envía el CommandText a la Connection y crea un IfxResultSet en función de un IfxCursorType. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Function ExecuteResultSet( _ cursorType As IfxCursorType _ ) As IfxResultSet [C#] public IfxResultSet Capítulo 3. IBM Data Server Provider for .NET

3-125

ExecuteResultSet( IfxCursorType cursorType ); [C++] public: IfxResultSet * ExecuteResultSet( IfxCursorType cursorType ); [JScript] public function ExecuteResultSet( cursorType : IfxCursorType ) : IfxResultSet ;

Parámetros cursorType Uno de los valores de IBM.Data.Informix.IfxCursorType. Valor de retorno Una instancia de IfxResultSet. Ejemplo [C#] El ejemplo siguiente demuestra cómo leer datos de un IfxResultSet desplazable. [C#] public static string getSalesData(IfxConnection conn) { string salesQuery = "SELECT * FROM SALES"; string salesData = ""; IfxCommand cmd = new IfxCommand(salesQuery, conn); IfxResultSet salesRS = cmd.ExecuteResultSet( IfxCursorType.Keyset); if (salesRS.Scrollable) { if (salesRS.ReadLast()) { salesData = salesRS.GetIfxDate(0).ToString(); salesData += ", " + salesRS.GetIfxString(1).ToString(); salesData += ", " + salesRS.GetIfxString(2).ToString(); salesData += ", " + salesRS.GetIfxInt32(3).ToString(); } } return salesData; }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Enumeración IfxCursorType” en la página 3-254 Tipos de cursor que puede utilizar la instancia de IfxResultSet. “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos.

3-126

IBM Data Server Provider for .NET para Informix Dynamic Server

“Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommand.ExecuteResultSet(IBM.Data.Ifx.IfxResultSetOptions): Envía el CommandText a la Connection y crea un IfxResultSet al tiempo que especifica IfxResultSetOptions. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Function ExecuteResultSet( _ options As IfxResultSetOptions _ ) As IfxResultSet [C#] public IfxResultSet ExecuteResultSet( IfxResultSetOptions options ); [C++] public: IfxResultSet * ExecuteResultSet( IfxResultSetOptions options ); [JScript] public function ExecuteResultSet( options : IfxResultSetOptions ) : IfxResultSet ;

Parámetros options Uno de los valores de IBM.Data.Informix.IfxResultSetOptions. Valor de retorno Una instancia de IfxResultSet. Ejemplo [C#] El ejemplo siguiente demuestra cómo leer datos de un IfxResultSet desplazable. [C#] public static string getSalesData(IfxConnection conn) { string salesQuery = "SELECT * FROM SALES"; string salesData = ""; IfxCommand cmd = new IfxCommand(salesQuery, conn); IfxResultSet salesRS = cmd.ExecuteResultSet( IfxResultSetOptions.Scrollable | IfxResultSetOptions.Sensitive | IfxResultSetOptions.SkipDeleted | Capítulo 3. IBM Data Server Provider for .NET

3-127

IfxResultSetOptions.Updatable); if (salesRS.Scrollable) { if (salesRS.ReadLast()) { salesData = salesRS.GetIfxDate(0).ToString(); salesData += ", " + salesRS.GetIfxString(1).ToString(); salesData += ", " + salesRS.GetIfxString(2).ToString(); salesData += ", " + salesRS.GetIfxInt32(3).ToString(); } } return salesData; }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommand.ExecuteResultSet(System.Data.CommandBehavior, IBM.Data.DB2.IfxCursorType): Envía el CommandText a la Connection y crea un IfxResultSet al tiempo que especifica CommandBehavior and a IfxCursorType. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Function ExecuteResultSet( _ ByVal behavior As CommandBehavior, _ cursorType As IfxCursorType _ ) As IfxResultSet [C#] public IfxResultSet ExecuteResultSet( CommandBehavior behavior, IfxCursorType cursorType ); [C++] public: IfxResultSet * ExecuteResultSet( CommandBehavior behavior, IfxCursorType cursorType ); [JScript]

3-128

IBM Data Server Provider for .NET para Informix Dynamic Server

public function ExecuteResultSet( behavior : CommandBehavior, cursorType : IfxCursorType ) : IfxResultSet ;

Parámetros behavior Uno de los valores de System.Data.CommandBehavior. cursorType Uno de los valores de IBM.Data.Informix.IfxCursorType. Valor de retorno Una instancia de IfxResultSet. Ejemplo [C#] El ejemplo siguiente demuestra cómo leer datos de un IfxResultSet desplazable. [C#] public static string getSalesData(IfxConnection conn) { string salesQuery = "SELECT * FROM SALES"; string salesData = ""; IfxCommand cmd = new IfxCommand(salesQuery, conn); IfxResultSet salesRS = cmd.ExecuteResultSet( CommandBehavior.CloseConnection, IfxCursorType.Keyset); if (salesRS.Scrollable) { if (salesRS.ReadLast()) { salesData = salesRS.GetIfxDate(0).ToString(); salesData += ", " + salesRS.GetIfxString(1).ToString(); salesData += ", " + salesRS.GetIfxString(2).ToString(); salesData += ", " + salesRS.GetIfxInt32(3).ToString(); } } return salesData; }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento.

Capítulo 3. IBM Data Server Provider for .NET

3-129

Método IfxCommand.ExecuteResultSet(System.Data.CommandBehavior, IBM.Data.DB2.IfxCursorType, bool): Envía el CommandText a la Connection y crea un IfxResultSet al tiempo que especifica CommandBehavior, IfxCursorType y un valor que determina si se cancelará la operación si el cursor se reduce. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Function ExecuteResultSet( _ ByVal behavior As CommandBehavior, _ cursorType As IfxCursorType, _ abortOnOptValueChg As Boolean _ ) As IfxResultSet [C#] public IfxResultSet ExecuteResultSet( CommandBehavior behavior, IfxCursorType cursorType, bool abortOnOptValueChg ); [C++] public: IfxResultSet * ExecuteResultSet( CommandBehavior behavior, IfxCursorType cursorType, bool abortOnOptValueChg ); [JScript] public function ExecuteResultSet( behavior : CommandBehavior, cursorType : IfxCursorType, abortOnOptValueChg : Boolean ) : IfxResultSet ;

Parámetros behavior Uno de los valores de System.Data.CommandBehavior. cursorType Uno de los valores de IBM.Data.Informix.IfxCursorType. abortOnOptValueChg Valor booleano que indica si debe emitirse una excepción si el tipo de cursor se ha reducido (true) o debe permitirse que el cursor lea el conjunto de resultados sin emitir una excepción (false). Valor de retorno Una instancia de IfxResultSet.

3-130

IBM Data Server Provider for .NET para Informix Dynamic Server

Ejemplo [C#] El ejemplo siguiente demuestra cómo leer datos de un IfxResultSet desplazable. Para las conexiones de bases de datos contra un servidor de datos DB2 para Linux, UNIX o Windows, este código emitirá una excepción cuando el cursor IfxResultSet lea los datos. Esto es debido a que se ha pasado un valor true al parámetroabortOnOptValueChg. [C#] public static string getSalesData(IfxConnection conn) { string salesQuery = "SELECT * FROM SALES"; string salesData = ""; IfxCommand cmd = new IfxCommand(salesQuery, conn); IfxResultSet salesRS = cmd.ExecuteResultSet( CommandBehavior.CloseConnection, IfxCursorType.Dynamic, true); if (salesRS.ReadLast()) { salesData = salesRS.GetIfxDate(0).ToString(); salesData += ", " + salesRS.GetIfxString(1).ToString(); salesData += ", " + salesRS.GetIfxString(2).ToString(); salesData += ", " + salesRS.GetIfxInt32(3).ToString(); } return salesData; }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommand.ExecuteResultSet(System.Data.CommandBehavior, IBM.Data.DB2.IfxResultSetOptions): Envía el CommandText a la Connection y crea un IfxResultSet al tiempo que especifica CommandBehavior yIfxResultSetOptions. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Function ExecuteResultSet( _ ByVal behavior As CommandBehavior, _ options As IfxResultSetOptions _ Capítulo 3. IBM Data Server Provider for .NET

3-131

) As IfxResultSet [C#] public IfxResultSet ExecuteResultSet( CommandBehavior behavior, IfxResultSetOptions options ); [C++] public: IfxResultSet * ExecuteResultSet( CommandBehavior behavior, IfxResultSetOptions options ); [JScript] public function ExecuteResultSet( behavior : CommandBehavior, options : IfxResultSetOptions ) : IfxResultSet ;

Parámetros behavior Uno de los valores de System.Data.CommandBehavior. options Uno de los valores de IBM.Data.Informix.IfxResultSetOptions. Valor de retorno Una instancia de IfxResultSet. Ejemplo [C#] El ejemplo siguiente demuestra cómo leer datos de un IfxResultSet desplazable. [C#] public static string getSalesData(IfxConnection conn) { string salesQuery = "SELECT * FROM SALES"; string salesData = ""; IfxCommand cmd = new IfxCommand(salesQuery, conn); IfxResultSet salesRS = cmd.ExecuteResultSet( CommandBehavior.CloseConnection, IfxResultSetOptions.Scrollable | IfxResultSetOptions.Sensitive | IfxResultSetOptions.SkipDeleted | IfxResultSetOptions.Updatable); if (salesRS.ReadLast()) { salesData = salesRS.GetIfxDate(0).ToString(); salesData += ", " + salesRS.GetIfxString(1).ToString(); salesData += ", " + salesRS.GetIfxString(2).ToString(); salesData += ", " + salesRS.GetIfxInt32(3).ToString(); } return salesData; }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0

3-132

IBM Data Server Provider for .NET para Informix Dynamic Server

Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommand.ExecuteResultSet(System.Data.CommandBehavior, IBM.Data.DB2.IfxResultSetOptions, bool): Envía el CommandText a la Connection y crea un IfxResultSet al tiempo que especifica CommandBehavior, IfxResultSetOptions y un valor que determina si se cancelará la operación si el cursor se reduce. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Function ExecuteResultSet( _ ByVal behavior As CommandBehavior, _ options As IfxResultSetOptions, _ abortOnOptValueChg As Boolean _ ) As IfxResultSet [C#] public IfxResultSet ExecuteResultSet( CommandBehavior behavior, IfxResultSetOptions options, bool abortOnOptValueChg ); [C++] public: IfxResultSet * ExecuteResultSet( CommandBehavior behavior, IfxResultSetOptions options, bool abortOnOptValueChg ); [JScript] public function ExecuteResultSet( behavior : CommandBehavior, options : IfxResultSetOptions, abortOnOptValueChg : Boolean ) : IfxResultSet ;

Parámetros behavior Uno de los valores de System.Data.CommandBehavior. options Uno de los valores de IBM.Data.Informix.IfxResultSetOptions.

Capítulo 3. IBM Data Server Provider for .NET

3-133

abortOnOptValueChg Valor booleano que indica si debe emitirse una excepción si el tipo de cursor se ha reducido (true) o debe permitirse que el cursor lea el conjunto de resultados sin emitir una excepción (false). Valor de retorno Una instancia de IfxResultSet. Ejemplo [C#] El ejemplo siguiente demuestra cómo leer datos de un IfxResultSet desplazable. Para las conexiones de bases de datos contra un servidor de datos DB2 para Linux, UNIX o Windows, este código emitirá una excepción cuando el cursor IfxResultSet lea los datos. Esto es debido a que se ha pasado un valor true al parámetroabortOnOptValueChg. [C#] public static string getSalesData(IfxConnection conn) { string salesQuery = "SELECT * FROM SALES"; string salesData = ""; IfxCommand cmd = new IfxCommand(salesQuery, conn); IfxResultSet salesRS = cmd.ExecuteResultSet( CommandBehavior.CloseConnection, IfxResultSetOptions.Scrollable | IfxResultSetOptions.Sensitive | IfxResultSetOptions.SkipDeleted | IfxResultSetOptions.Updatable, true); if (salesRS.ReadLast()) { salesData = salesRS.GetIfxDate(0).ToString(); salesData += ", " + salesRS.GetIfxString(1).ToString(); salesData += ", " + salesRS.GetIfxString(2).ToString(); salesData += ", " + salesRS.GetIfxInt32(3).ToString(); } return salesData; }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommand.ExecuteRow: Envía el CommandText a la Connection y crea un IfxRecord. Este método está pensado para conjuntos de resultados con una sola fila.

3-134

IBM Data Server Provider for .NET para Informix Dynamic Server

Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Function ExecuteRow () As IfxRecord [C#] public IfxRecord ExecuteRow() [C++] public: IfxRecord ExecuteRow () [JScript] public function ExecuteRow () : IfxRecord

Valor de retorno Instancia de IfxRecord que representa la primera (o única) fila de un conjunto de resultados. Ejemplo [C#] El ejemplo siguiente demuestra cómo crear un IfxRecord y leer sus datos de columna. [C#] public static string getSalesData(IfxConnection conn) { string salesQuery = "SELECT MAX(SALES) FROM SALES"; string salesData = ""; IfxCommand cmd = new IfxCommand(salesQuery, conn); IfxRecord salesRec = cmd.ExecuteRow(); salesData = salesRec.GetIfxInt32(0).ToString(); return salesData; }

Información de versión Versión de .NET Framework Soportado en: 1.1, 2.0 y 3.0 Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Clase IfxRecord” en la página 3-509 Representa una única fila de datos de solo lectura. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Método IfxCommand.ExecuteScalar: Ejecuta la consulta y devuelve la primera columna de la primera fila del conjunto de resultados devuelto por la consulta. Las columnas o filas extra se ignoran. Capítulo 3. IBM Data Server Provider for .NET

3-135

Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] NotOverridable Public Function ExecuteScalar() As Object [C#] public object ExecuteScalar(); [C++] public: __sealed Object* ExecuteScalar(); [JScript] public function ExecuteScalar() : Object;

Valor de retorno La primera columna de la primera fila del conjunto de resultados. Comentarios Utilice el método ExecuteScalar para recuperar un único valor (por ejemplo, un valor agregado) de una base de datos. Necesita menos código que si se utiliza el método ExecuteReader y, a continuación, deben realizarse las operaciones necesarias para generar un solo valor a partir de los datos que un IfxDataReader devuelve. Se puede formatear una consulta ExecuteScalar como en el siguiente ejemplo de C#: CommandText = "select count(*) as NumberOfEmployee from EMPLOYEE"; Int count = (int) ExecuteScalar();

Ejemplo [Visual Basic, C#] El ejemplo siguiente crea un IfxCommand y, a continuación, lo ejecuta utilizando ExecuteScalar. Al ejemplo se le pasa una serie que es una sentencia de SQL que devuelve un resultado agregado, y una serie para utilizarla para conectar con la base de datos. [Visual Basic] Public Sub CreateMyIfxCommand(myScalarQuery As String, myConnection As IfxConnection) Dim myCommand As New IfxCommand(myScalarQuery, myConnection) myCommand.Connection.Open() Dim qryValue As object = myCommand.ExecuteScalar() myConnection.Close() End Sub ’CreateMyIfxCommand [C#] public void CreateMyIfxCommand(string myScalarQuery, IfxConnection myConnection) { IfxCommand myCommand = new IfxCommand(myScalarQuery, myConnection); myCommand.Connection.Open(); object qryValue = myCommand.ExecuteScalar(); myConnection.Close(); }

Consulta

3-136

IBM Data Server Provider for .NET para Informix Dynamic Server

“Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Miembros de IfxCommand” en la página 3-101 Visión general de IfxCommand “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Ejemplos DbValue.cs DbValue.vb Método IfxCommand.Prepare: Crea una versión preparada (o compilada) del mandato en la base de datos. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] NotOverridable Public Sub Prepare() [C#] public void Prepare(); [C++] public: __sealed void Prepare(); [JScript] public function Prepare();

Excepciones Tipo de excepción

Condición

InvalidOperationException

La conexión Connection no está establecida -o bienLa Connection no es IfxConnection.Open.

Comentarios Antes de llamar a Prepare, especifique el tipo de datos de cada parámetro de la sentencia que se va a preparar. Para cada parámetro que tenga un tipo de datos de longitud variable, la propiedad ″IfxParameter.Size debe establecerse en el tamaño máximo necesario. Prepare devuelve un error si no se cumplen estas condiciones. Si invoca un método Execute después de llamar a Prepare, cualquier valor de parámetro que sea mayor que el valor especificado por la propiedad Size se trunca automáticamente hasta que tenga el tamaño original especificado del parámetro y no se devuelven errores de truncamiento.

Capítulo 3. IBM Data Server Provider for .NET

3-137

Los parámetros de salida (preparados o no) deben tener un tipo de datos especificado por el usuario. Si especifica un tipo de datos de longitud variable, también deberá especificar el valor máximo de Size. Ejemplo [Visual Basic, C#] El ejemplo siguiente crea una conexión de base de datos transfiriendo una serie de caracteres para conectar con la base de datos, crea un IfxCommand transfiriendo una serie de caracteres que es una sentencia SELECT de SQL y un objeto de conexión y abre la conexión. A continuación, el ejemplo prepara el mandato (la sentencia SELECT de SQL que se ha pasado anteriormente) en la base de datos. Visual Basic] Public Sub CreateMyIfxCommand(mySelectQuery As String, _ myConnectionString As String) Dim myConnection As New IfxConnection(myConnectionString) Dim myCommand As New IfxCommand(mySelectQuery, myConnection) myCommand.Connection.Open() myCommand.Prepare() End Sub [C#] public void CreateMyIfxCommand(string mySelectQuery, string myConnectionString) { IfxConnection myConnection = new IfxConnection(myConnectionString); IfxCommand myCommand = new IfxCommand(mySelectQuery, myConnection); myCommand.Connection.Open(); myCommand.Prepare(); }

Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Miembros de IfxCommand” en la página 3-101 Visión general de IfxCommand “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Ejemplos DbUse.cs DbUse.vb Método IfxCommand.ResetCommandTimeout: Restablece la propiedad CommandTimeout en el valor por omisión. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll)

3-138

IBM Data Server Provider for .NET para Informix Dynamic Server

Sintaxis Visual Basic] Public Sub ResetCommandTimeout() [C#] public void ResetCommandTimeout(); [C++] public: void ResetCommandTimeout(); [JScript] public function ResetCommandTimeout();

Comentarios El valor por omisión de CommandTimeout es 30 segundos. Ejemplo [Visual Basic, C#] El ejemplo siguiente crea un IfxCommand,define CommandTimeout, muestra la propiedad, restablece CommandTimeout y vuelve a mostrar la propiedad. Para hacer esto, el método recibe una serie de caracteres que es una sentencia SELECT de SQL, y una serie de caracteres que se utiliza para conectar con la base de datos. Visual Basic] Public Sub CreateMyIfxCommand(mySelectQuery As String, _ myConnectionString As String) Dim myConnection As New IfxConnection(myConnectionString) Dim myCommand As New IfxCommand(mySelectQuery, myConnection) myCommand.CommandTimeout = 15 MessageBox.Show(myCommand.CommandTimeout.ToString()) myCommand.ResetCommandTimeout() MessageBox.Show(myCommand.CommandTimeout.ToString()) End Sub [C#] public void CreateMyIfxCommand(string mySelectQuery, string myConnectionString) { IfxConnection myConnection = new IfxConnection(myConnectionString); IfxCommand myCommand = new IfxCommand(mySelectQuery, myConnection); myCommand.CommandTimeout = 15; MessageBox.Show(myCommand.CommandTimeout.ToString()); myCommand.ResetCommandTimeout(); MessageBox.Show(myCommand.CommandTimeout.ToString()); }

Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Miembros de IfxCommand” en la página 3-101 Visión general de IfxCommand “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento.

Propiedades de IfxCommand Las propiedades de la clase IfxCommand se listan a continuación. Para obtener una lista completa de los miembros de la clase IfxCommand, consulte el tema Miembros de IfxCommand. Capítulo 3. IBM Data Server Provider for .NET

3-139

Propiedades públicas CommandText

Obtiene o establece la sentencia de SQL, expresión de o procedimiento almacenado que se debe ejecutar contra la base de datos.

CommandTimeout

Obtiene o establece el tiempo de espera antes de finalizar la ejecución de un mandato y generar un error.

CommandType

Obtiene o establece un valor que indica cómo se interpreta la propiedad CommandText.

Connection

Obtiene o establece la IfxConnection utilizada por esta instancia de IfxCommand.

Container (heredada de Component)

Obtiene el IContainer que contiene el Component.

IfxTypeOutput

DbConnection

Determina si los valores del parámetro de solo salida asociados con IfxCommand se devolverán como tipos de datos DB2 nativos (especialmente, clases y estructuras en el espacio de nombres IBM.Data.IfxTypes). Obtiene o establece la DbConnection utilizada por esta instancia de IfxCommand. Obtiene el objeto DbParameterCollection.

DbParameterCollection DbTransaction DesignTimeVisible

Obtiene o establece la DbTransaction dentro de la cual se ejecuta IfxCommand. Obtiene o establece un valor booleano que indica si un IfxCommand generado por un adaptador de datos es visible. Obtiene IfxParameterCollection.

Parameters Obtiene o establece el ISite de Component. Site (heredada de Component) Transaction UpdatedRowSource

Obtiene o establece la IfxTransaction dentro de la cual se ejecuta IfxCommand. Obtiene o establece un valor que especifica cómo el método Update debe aplicar resultados de mandato a DataRow.

Propiedades protegidas DesignMode (heredada de Component) Events (heredada de Component)

Obtiene un valor que indica si el Component está actualmente en modalidad de diseño. Obtiene la lista de manejadores de sucesos que están conectados a este Component.

Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos.

3-140

IBM Data Server Provider for .NET para Informix Dynamic Server

“Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Propiedad IfxCommand.CommandText: Obtiene o establece la sentencia de SQL, expresión de XQuery o procedimiento almacenado que se debe ejecutar para la base de datos. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Property CommandText As String [C#] public string CommandText {get; set;} [C++] public: __property String* get_CommandText(); public: __property void set_CommandText(String*); [JScript] public function get CommandText() : String; public function set CommandText(String);

Valor de la propiedad Sentencia de SQL, expresión de XQuery o procedimiento almacenado que se debe ejecutar. El valor por omisión es una serie de caracteres vacía (″″). Comentarios sobre el procedimiento almacenado Cuando el valor de la propiedad CommandType es StoredProcedure, la propiedad CommandText debe ser igual al nombre del procedimiento almacenado. El método recomendado para invocar un procedimiento almacenado es utilizar CommandType.StoredProcedure. Un procedimiento es un objeto ejecutable almacenado en la base de datos. Generalmente, se trata de una o más sentencias de SQL que se han precompilado. La sintaxis para invocar un procedimiento mediante CommandType.Text es {[?=]call nombre-procedimiento[([parámetro][,[parámetro]]...)]}

donde nombre-procedimiento especifica el nombre de un procedimiento y parámetro especifica un parámetro de procedimiento. La secuencia de escape (las llaves) se deben especificar cuando se utiliza ″?=″ para el parámetro de retorno. En otro caso, la secuencia de escape es opcional. El mandato ejecuta este procedimiento almacenado cuando se invoca uno de los métodos Execute (por ejemplo, ExecuteReader o ExecuteNonQuery). Comentarios sobre la sentencia de SQL No puede definir las propiedades Connection, CommandType y CommandText si la conexión actual está ejecutando una operación execute o fetch. Capítulo 3. IBM Data Server Provider for .NET

3-141

Cuando se pasan parámetros a sentencias de SQL o procedimientos almacenados invocados por un IfxCommand, IBM Data Server Provider for .NET permite la utilización de parámetros con nombre o parámetros posicionados que utilicen marcadores de parámetros. No se puede utilizar una combinación de parámetros con nombre y parámetros posicionados en la misma sentencia de SQL. Cuando se utilizan parámetros con nombre en una IfxParameterCollection, debe especificarse el nombre del objeto de parámetro en la sentencia de SQL y añadirse el objeto de parámetro al objeto DB2Command. Por ejemplo: IfxCommand cmd = new IfxCommand( "SELECT * FROM EMPLOYEE WHERE LASTNAME = @lastname AND WORKDEPT = @workdept", conn ); cmd.Parameters.Clear(); cmd.Parameters.Add( "@workdept", IfxType.SmallInt ); cmd.Parameters.Add( "@lastname", IfxType.VarChar, 15 ); IfxReader reader = cmd.ExecuteReader();

Los nombres de parámetro son sensibles a may/min, se les debe anteponer el símbolo ’@’ y pueden estar constituidos por cualquier símbolo que se pueda utilizar como parte de una sentencia de SQL. En los casos en que el símbolo ’@’ se utiliza como prefijo en un identificador de SQL para otros objetos de base de datos, estos tienen que estar delimitados o bien se tiene que desactivar el soporte de parámetros con nombre y sólo se pueden utilizar parámetros posicionados. Para inhabilitar la utilización de parámetros con nombre, establezca en 0 la palabra clave db2netnamedparam de CLI. Puede hacer esto añadiendo la línea siguiente al archivo db2cli.ini situado en el directorio %IfxPATH%: IfxNETNAMEDPARAM=0 Para marcadores de parámetros, se debe utilizar el signo de interrogación (?) como marcador de posición. Por ejemplo: SELECT * FROM Customers WHERE CustomerID = ?

Como resultado, el orden en el que se añaden objetos IfxParameter a la IfxParameterCollection debe corresponder directamente con la posición del signo de interrogación (marcador de posición) correspondiente al parámetro. Si un parámetro contiene un valor nulo, IBM Data Server Provider for .NET vinculará ese parámetro como un valor nulo. Por ejemplo, IfxParameterCollection: {1, null, 2}

pasado a la propiedad CommandText: call sp(?, ?, ?)

hace que IBM Data Server Provider for .NET vincule el primer parámetro con el valor 1, el segundo parámetro con el valor nulo y el tercer parámetro con el valor 2. Ejemplo [Visual Basic, C#] El ejemplo siguiente crea un IfxCommand y establece algunas de sus propiedades. Visual Basic] Public Sub CreateMyIfxCommand() Dim myCommand As New IfxCommand()

3-142

IBM Data Server Provider for .NET para Informix Dynamic Server

myCommand.CommandText = "SELECT * FROM EMPLOYEE ORDER BY EMPNO" myCommand.CommandTimeout = 20 End Sub [C#] public void CreateMyIfxCommand() { IfxCommand myCommand = new IfxCommand(); myCommand.CommandText = "SELECT * FROM EMPLOYEE ORDER BY EMPNO"; myCommand.CommandTimeout = 20; }

Consulta http://publib.boulder.ibm.com/infocenter/db2luw/v9/topic/ com.ibm.db2.udb.apdv.cli.doc/doc/r0021005.htm “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Miembros de IfxCommand” en la página 3-101 Visión general de IfxCommand “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. “Propiedad IfxCommand.Connection” en la página 3-146 Obtiene o establece la IfxConnection que utiliza esta instancia de IfxCommand. “Propiedad IfxCommand.CommandTimeout” Obtiene o establece el tiempo de espera antes de terminar el intento de ejecutar un mandato o la ejecución de un mandato. Se genera un error tras la terminación. “Propiedad IfxCommand.CommandType” en la página 3-145 Obtiene o establece un valor que indica cómo se interpreta la propiedad CommandText. Ejemplos TbUse.cs TbUse.vb Propiedad IfxCommand.CommandTimeout: Obtiene o establece el tiempo de espera antes de terminar el intento de ejecutar un mandato o la ejecución de un mandato. Se genera un error tras la terminación. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Property CommandTimeout As Integer [C#] public int CommandTimeout {get; set;} [C++] public: __property int get_CommandTimeout();

Capítulo 3. IBM Data Server Provider for .NET

3-143

public: __property void set_CommandTimeout(int); [JScript] public function get CommandTimeout() : int; public function set CommandTimeout(int);

Valor de la propiedad El tiempo (en segundos) de espera para que el mandato se ejecute. El valor por omisión es 30 segundos. Excepciones Tipo de excepción

Condición

ArgumentException

El valor de propiedad asignado es inferior a 0.

Comentarios Un valor de cero (0) especifica que no hay límite para el tiempo de espera, más que indicar que no hay tiempo de espera y, por lo tanto, se debe evitar. Ejemplo [Visual Basic, C#] El ejemplo siguiente crea un IfxCommand y define algunas de sus propiedades. Visual Basic] Public Sub CreateMyIfxCommand() Dim mySelectQuery As String = "SELECT * FROM EMPLOYEE ORDER BY EMPNO" Dim myCommand As New IfxCommand(mySelectQuery) myCommand.CommandTimeout = 20 End Sub [C#] public void CreateMyIfxCommand() { string mySelectQuery = "SELECT * FROM EMPLOYEE ORDER BY EMPNO"; IfxCommand myCommand = new IfxCommand(mySelectQuery); myCommand.CommandTimeout = 20; }

Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Miembros de IfxCommand” en la página 3-101 Visión general de IfxCommand “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. “Propiedad IfxCommand.Connection” en la página 3-146 Obtiene o establece la IfxConnection que utiliza esta instancia de IfxCommand. “Propiedad IfxCommand.CommandText” en la página 3-141 Obtiene o establece la sentencia de SQL, expresión de XQuery o procedimiento almacenado que se debe ejecutar para la base de datos.

3-144

IBM Data Server Provider for .NET para Informix Dynamic Server

“Propiedad IfxCommand.CommandType” Obtiene o establece un valor que indica cómo se interpreta la propiedad CommandText. “Propiedad IfxCommand.CommandTimeout” en la página 3-143 Obtiene o establece el tiempo de espera antes de terminar el intento de ejecutar un mandato o la ejecución de un mandato. Se genera un error tras la terminación. Propiedad IfxCommand.CommandType: Obtiene o establece un valor que indica cómo se interpreta la propiedad CommandText. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Property CommandType As CommandType [C#] public CommandType CommandType {get; set;} [C++] public: __property CommandType get_CommandType(); public: __property void set_CommandType(CommandType); [JScript] public function get CommandType() : CommandType; public function set CommandType(CommandType);

Valor de la propiedad Uno de los valores de System.Data.CommandType. El valor por omisión es Texto. Excepciones Tipo de excepción

Condición

ArgumentException

El valor no era un CommandType válido.

Comentarios Cuando el valor de la propiedad CommandType es StoredProcedure, el valor de la propiedad CommandText debe ser el nombre del procedimiento almacenado. El mandato ejecuta este procedimiento almacenado cuando se invoca uno de los métodos Execute (por ejemplo, ExecuteReader o ExecuteNonQuery). No se pueden definir las propiedades Connection, CommandType y CommandText si la conexión actual está realizando una operación execute o fetch. Cuando se pasan parámetros a sentencias de SQL o procedimientos almacenados invocados por un IfxCommand, IBM Data Server Provider for .NET permite la utilización de parámetros con nombre o parámetros posicionados que utilicen marcadores de parámetros.

Capítulo 3. IBM Data Server Provider for .NET

3-145

Para obtener más información, consulte el apartado ″Utilización de procedimientos almacenados con un Command″ en la documentación del SDK de Microsoft(R) .NET Framework. Ejemplo [Visual Basic, C#] El ejemplo siguiente crea una instancia de un IfxCommand de clase derivada y establece algunas de las propiedades de la misma. Visual Basic] Public Sub CreateMyIfxCommand() Dim myCommand As New IfxCommand() myCommand.CommandText = "SELECT * FROM EMPLOYEE ORDER BY EMPNO" myCommand.CommandType = CommandType.Text End Sub [C#] public void CreateMyIfxCommand() { IfxCommand myCommand = new IfxCommand(); myCommand.CommandText = "SELECT * FROM EMPLOYEE ORDER BY EMPNO"; myCommand.CommandType = CommandType.Text; }

Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Miembros de IfxCommand” en la página 3-101 Visión general de IfxCommand “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. “Propiedad IfxCommand.CommandText” en la página 3-141 Obtiene o establece la sentencia de SQL, expresión de XQuery o procedimiento almacenado que se debe ejecutar para la base de datos. “Propiedad IfxCommand.UpdatedRowSource” en la página 3-155 Obtiene o establece un valor que especifica cómo el método Update debe aplicar resultados de mandato a DataRow. Ejemplos SpClient.cs SpClient.vb Propiedad IfxCommand.Connection: Obtiene o establece la IfxConnection que utiliza esta instancia de IfxCommand. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Property Connection As IfxConnection

3-146

IBM Data Server Provider for .NET para Informix Dynamic Server

[C#] public IfxConnection Connection {get; set;} [C++] public: __property IfxConnection * get_Connection(); public: __property void set_Connection(IfxConnection *); [JScript] public function get Connection() : IfxConnection ; public function set Connection(IfxConnection );

Valor de la propiedad La conexión con una base de datos. El valor por omisión es un valor nulo. Excepciones Tipo de excepción

Condición

InvalidOperationException

La propiedad Connection se ha cambiado mientras una transacción estaba en progreso.

Comentarios No puede definir las propiedades Connection, CommandType y CommandText si la conexión actual está ejecutando una operación execute o fetch. Si establece Connection mientras una transacción está en progreso y la propiedad Transaction no es nula, se emite una excepción InvalidOperationException. Si establece Connection después de confirmar o retrotraer la transacción y la propiedad Transaction no es nula, la propiedad Transaction se establecerá en un valor nulo. Ejemplo [Visual Basic, C#] El ejemplo siguiente crea un IfxCommand y define algunas de sus propiedades. Visual Basic] Public Sub CreateMyIfxCommand() Dim mySelectQuery As String = _ "SELECT * FROM EMPLOYEE ORDER BY EMPNO" Dim myCommand As New IfxCommand(mySelectQuery) myCommand.Connection = New IfxConnection _ ("DATABASE=SAMPLE;") End Sub [C#] public void CreateMyIfxCommand() { string mySelectQuery = "SELECT * FROM EMPLOYEE ORDER BY EMPNO"; IfxCommand myCommand = new IfxCommand(mySelectQuery); myCommand.Connection = new IfxConnection ("DATABASE=SAMPLE;"); }

Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. Capítulo 3. IBM Data Server Provider for .NET

3-147

“Miembros de IfxCommand” en la página 3-101 Visión general de IfxCommand “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. “Propiedad IfxCommand.CommandText” en la página 3-141 Obtiene o establece la sentencia de SQL, expresión de XQuery o procedimiento almacenado que se debe ejecutar para la base de datos. “Propiedad IfxCommand.CommandTimeout” en la página 3-143 Obtiene o establece el tiempo de espera antes de terminar el intento de ejecutar un mandato o la ejecución de un mandato. Se genera un error tras la terminación. “Propiedad IfxCommand.CommandType” en la página 3-145 Obtiene o establece un valor que indica cómo se interpreta la propiedad CommandText. Propiedad IfxCommand.IfxTypeOutput: Determina si los valores del parámetro de solo salida asociados con IfxCommand se devolverán como tipos de datos DB2 nativos (especialmente, clases y estructuras en el espacio de nombres IBM.Data.IfxTypes). Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Public Overrides Property IfxTypeOutput As Boolean [C#] public override bool IfxTypeOutput { get; set; } [C++] public: virtual property bool IfxTypeOutput { bool get () override; void set (bool value) override; }

Valor de la propiedad Valor booleano que determina si las instancias de IfxParameter de sólo salida asociadas devolverán los valores de columna como instancias del tipo de datos Informix nativo (por ejemplo, IfxString). Información de versión Versión de .NET Framework Soportado en: 2.0 y 3.0 Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Miembros de IfxCommand” en la página 3-101 Visión general de IfxCommand

3-148

IBM Data Server Provider for .NET para Informix Dynamic Server

“Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Propiedad IfxCommand.DbConnection: Obtiene o establece la DbConnection utilizada por esta instancia de IfxCommand. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Property DbConnection As DbConnection [C#] public DbConnection DbConnection {get; set;} [C++] public: __property DbConnection* get_DbConnection(); public: __property void set_DbConnection(DbConnection*); [JScript] public function get DbConnection() : DbConnection; public function set DbConnection(DbConnection);

Valor de la propiedad La conexión con la fuente de datos. Información de versión Versión de .NET Framework Soportado en: 2.0 y 3.0 Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Propiedad IfxCommand.DbParameterCollection: Obtiene el objeto DbParameterCollection. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll)

Capítulo 3. IBM Data Server Provider for .NET

3-149

Sintaxis Visual Basic] Public Property DbParameterCollection As DbParameterCollection [C#] public DbParameterCollection DbParameterCollection {get;} [C++] public: __property DbParameterCollection* get_DbParameterCollection(); [JScript] public function get DbParameterCollection() : DbParameterCollection;

Valor de la propiedad Los parámetros de la sentencia de SQL o del procedimiento almacenado. Información de versión Versión de .NET Framework Soportado en: 2.0 y 3.0 Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Propiedad IfxCommand.DbTransaction: Obtiene o establece la DbTransaction dentro de la cual se ejecuta IfxCommand. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Property DbTransaction As DbTransaction [C#] public DbTransaction DbTransaction {get; set;} [C++] public: __property DbTransaction* get_DbTransaction(); public: __property void set_DbTransaction(DbTransaction*); [JScript] public function get DbTransaction() : DbTransaction; public function set DbTransaction(DbTransaction);

Valor de la propiedad La transacción en la que se ejecuta un objeto IfxCommand. Información de versión Versión de .NET Framework Soportado en: 2.0 y 3.0 Consulta

3-150

IBM Data Server Provider for .NET para Informix Dynamic Server

“Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Propiedad IfxCommand.DesignTimeVisible: Obtiene o establece un valor booleano que indica si un IfxCommand generado por un adaptador de datos es visible. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public Overrides Property DesignTimeVisible As Boolean [C#] public override bool DesignTimeVisible { get; set; } [C++] public: virtual property bool DesignTimeVisible { bool get () override; void set (bool value) override; } [JScript] public override function get DesignTimeVisible () : boolean public override function set DesignTimeVisible (value : boolean)

Valor de la propiedad Obtiene o establece un valor booleano que indica si un IfxCommand generado por un adaptador de datos es visible. Información de versión Versión de .NET Framework Soportado en: 2.0 y 3.0 Consulta “Clase IfxCommand” en la página 3-98 Representa una sentencia de SQL o un procedimiento almacenado que se va a ejecutar contra una fuente de datos. “Miembros de IfxCommand” en la página 3-101 Visión general de IfxCommand “Espacio de nombres IBM.Data.Informix” en la página 3-1 El espacio de nombres IBM.Data.Informix es el .NET Framework Data Provider para los servidores de datos IBM. IBM Data Server Provider for .NET amplía el soporte a la interfaz ADO.NET y ofrece acceso a los datos seguro y de alto rendimiento. Propiedad IfxCommand.Parameters:

Capítulo 3. IBM Data Server Provider for .NET

3-151

Obtiene la IfxParameterCollection. Espacio de nombres: IBM.Data.Informix Conjunto: IBM.Data.Informix (en IBM.Data.Informix.dll) Sintaxis Visual Basic] Public ReadOnly Property Parameters As IfxParameterCollection [C#] public IfxParameterCollection Parameters {get;} [C++] public: __property IfxParameterCollection * get_Parameters(); [JScript] public function get Parameters() : IfxParameterCollection;

Valor de la propiedad Los parámetros de la sentencia de SQL o del procedimiento almacenado. El valor por omisión es una colección vacía. Comentarios Cuando se pasan parámetros a sentencias de SQL o procedimientos almacenados invocados por un IfxCommand, IBM Data Server Provider for .NET permite la utilización de parámetros con nombre o parámetros posicionados que utilicen marcadores de parámetros. No se puede utilizar una combinación de parámetros con nombre y parámetros posicionados en la misma sentencia de SQL. Parámetros con nombre Cuando utilice parámetros con nombre en IfxParameterCollection, especifique el nombre del objeto de parámetro en la sentencia de SQL. Por ejemplo: SELECT * FROM EMPLOYEE WHERE FIRSTNME = @firstname AND LASTNAME = @lastname AND WORKDEPT = @workdept

Los nombres de parámetro son sensibles a may/min, se les debe anteponer el símbolo ’@’ y pueden estar constituidos por cualquier símbolo que se pueda utilizar como parte de una sentencia de SQL. En los casos en que el símbolo ’@’ se utiliza como prefijo en un identificador de SQL para otros objetos de base de datos, estos tienen que estar delimitados o bien se tiene que desactivar el soporte de parámetros con nombre y sólo se pueden utilizar parámetros posicionados. Para desactivar el soporte a los parámetros con nombre, establezca la palabra clave de CLI db2netnamedparam en 0. Esto puede realizarse añadiendo la línea siguiente al archivo db2cli.ini que se encuentra en la directorio %IfxPATH%: DB2NETNAMEDPARAM=0

Parámetros posicionados Cuando se utilicen parámetros posicionados, utilice el marcador de parámetro signo de interrogación (?). Por ejemplo: SELECT * FROM EMPLOYEE WHERE EMPNO = ?

3-152

IBM Data Server Provider for .NET para Informix Dynamic Server

El orden en el que se añaden objetos IfxParameter a la IfxParameterCollection debe corresponder directamente con la posición del signo de interrogación (marcador de posición) correspondiente al parámetro dentro del texto del mandato. Nota: Si los parámetros de la colección no coinciden con los requisitos de la consulta que se debe ejecutar, es posible que se produzca un error. Ejemplo [Visual Basic, C#] Los ejemplos siguientes crean un IfxCommand y visualizan los parámetros del mismo. Para hacer esto, el método recibe una IfxConnection, una serie de caracteres de consulta que es una sentencia SELECT de SQL, y una matriz de objetos IfxParameter. Para estos ejemplos, la matriz contiene un solo objeto IfxParameter, denominado ″@param1″. Visual Basic] ’Using named parameters Public Sub CreateMyIfxCommand(myConnection As IfxConnection, _ mySelectQuery As String, myParamArray() As IfxParameter) Dim myCommand As New IfxCommand(mySelectQuery, myConnection) myCommand.CommandText = "SELECT ID, NAME FROM STAFF WHERE ID = @param1" myCommand.Parameters.Add(myParamArray) Dim j As Integer For j = 0 To myCommand.Parameters.Count - 1 myCommand.Parameters.Add(myParamArray(j)) Next j Dim myMessage As String = "" Dim i As Integer For i = 0 To myCommand.Parameters.Count - 1 myMessage += myCommand.Parameters(i).ToString() + ControlChars.Cr Next i Console.WriteLine(myMessage) End Sub [C#] //Using named parameters public void CreateMyIfxCommand(IfxConnection myConnection, string mySelectQuery, IfxParameter[] myParamArray) { IfxCommand myCommand = new IfxCommand(mySelectQuery, myConnection); myCommand.CommandText = "SELECT ID, NAME FROM STAFF WHERE ID = @param1"; myCommand.Parameters.Add(myParamArray); for (int j=0; j