(cid:1)(cid:2)(cid:3) DB2 ® DB2Versión9 para Linux,UN IX yWindows DesarrollodeaplicacionesADO.NETyOLEDB SC11-3178-00 (cid:1)(cid:2)(cid:3) DB2 ® DB2Versión9 para Linux,UN IX yWindows DesarrollodeaplicacionesADO.NETyOLEDB SC11-3178-00 Antesdeutilizarestainformaciónyelproductoalquedasoporte,asegúresedeleerlainformacióngeneralincluidaenel apartadoAvisos. Informaciónsobrelaedición EstapublicacióneslatraduccióndeloriginalinglésDB2Version9forLinux,UNIX,andWindowsDeveloping ADO.NETandOLEDBApplications,(SC10-4230-00). EstedocumentocontieneinformaciónsobreproductospatentadosdeIBM.Seproporcionasegúnunacuerdode licenciayestáprotegidoporlaleydelapropiedadintelectual.Lapresentepublicaciónnoincluyegarantíasdel productoylasdeclaracionesquecontienenodebeninterpretarsecomotales. PuederealizarpedidosdepublicacionesenlíneaoatravésdelrepresentantedeIBMdesulocalidad. v Pararealizarpedidosdepublicacionesenlínea,vayaaIBMPublicationsCenterenwww.ibm.com/shop/ publications/order v ParaencontrarelrepresentantedeIBMcorrespondienteasulocalidad,vayaaIBMDirectoryofWorldwide Contactsenwww.ibm.com/planetwide PararealizarpedidosdepublicacionesenmarketingyventasdeDB2delosEE.UU.odeCanadá,llamealnúmero 1-800-IBM-4YOU(426-4968). CuandoenvíainformaciónaIBM,otorgaaIBMunderechonoexclusivoparautilizarodistribuirdichainformación enlaformaenqueIBMconsidereadecuada,sincontraerporelloningunaobligaciónconelremitente. ©CopyrightInternationalBusinessMachinesCorporation2006.Reservadostodoslosderechos. Contenido Capítulo 1. Desarrollo ADO.NET para Restriccionesdelasrutinasexternas . . . . . 57 bases de datos DB2 . . . . . . . . . 1 Creaciónderutinasexternas. . . . . . . . 60 DesarrollodeaplicacionesADO.NET . . . . . . 1 Capítulo 5. Rutinas de ejecución en el Softwarededesarrollo.NETsoportado . . . . . 2 Configur ació ndelento rnod edesarrollo d e lenguaje co mún (CL R) .NET . . . . . 63 aplicacionesWindows . . . . . . . . . . . 3 Rutinasdeejecuciónenellenguajecomún(CLR) IntegracióndeDB2enVisualStudio . . . . . . 6 .NET . . . . . . . . . . . . . . . . 63 Softwarededesarrolloderutinas.NETCLR Capítulo 2. Aplicaciones de soportado . . . . . . . . . . . . . . . 64 programación para DB2 .NET Data Soporteparaeldesarrolloderutinasexternasen Provider. . . . . . . . . . . . . . . 7 lenguajes.NETCLR . . . . . . . . . . 64 Herramientasparadesarrollarrutinas.NETCLR 65 DB2.NETDataProvider . . . . . . . . . . 7 Diseñoderutinas.NETCLR . . . . . . . . 65 RequisitosdelsistemadebasesdedatosDB2.NET Diseñoderutinas.NETCLR . . . . . . . 65 DataProvider . . . . . . . . . . . . . . 7 TiposdedatosdeSQLsoportadosparael Codificacióngenéricaconlasclasesbásicascomunes ProveedordedatosDB2.NET . . . . . . . 66 deADO.NET . . . . . . . . . . . . . . 8 Parámetrosderutinas.NETCLR . . . . . . 68 Conexiónaunabasededatosdesdeunaaplicación Devolucióndeconjuntosderesultadosdesde utilizandoDB2.NETDataProvider. . . . . . . 8 procedimientos.NETCLR . . . . . . . . 71 AgrupacióndeconexionesconDB2.NETData Modalidadesdeseguridadydeejecuciónpara Provider. . . . . . . . . . . . . . . . 9 rutinasCLR . . . . . . . . . . . . . 73 EjecucióndesentenciasdeSQLdesdeunaaplicación RestriccionesdelasrutinasCLR.NET . . . . 74 utilizandoDB2.NETDataProvider. . . . . . . 9 Creaciónderutinas.NETCLR . . . . . . . . 75 Lecturadeconjuntosderesultadosdeuna Creaciónderutinas.NETCLR . . . . . . . 75 aplicaciónutilizandoDB2.NETDataProvider. . . 11 CreaciónderutinasCLR.NETdesdeventanasde Invocacióndeprocedimientosalmacenadosdesde mandatosdeDB2 . . . . . . . . . . . 77 unaaplicaciónutilizandoDB2.NETDataProvider . 11 Creacióndecódigoderutinas.NETCLR . . . . 79 Creacióndecódigoderutinas.NETCLR . . . 79 Capítulo 3. Creación de aplicaciones CreaciónderutinasCLR(CommonLanguage para DB2 .N ET Data Pro vider . . . . . 15 Runtime).NET . . . . . . . . . . . . 80 CreacióndeaplicacionesVisualBasic.NET. . . . 15 Creacióndecódigoderutinas.NETCLR CreacióndeaplicacionesC#.NET. . . . . . . 16 (ejecuciónenlenguajecomún)mediantescripts Opcionesdecompilaciónyenlaceparaaplicaciones decreacióndeejemplo . . . . . . . . . 83 VisualBasic.NET . . . . . . . . . . . . 17 Creacióndecódigoderutinas.NETCLR Opcionesdecompilaciónyenlaceparaaplicaciones (Ejecuciónenellenguajecomún)desdelas C#.NET . . . . . . . . . . . . . . . 19 ventanasdemandatosdeDB2 . . . . . . . 85 Opcionesdecompilaciónyenlacepararutinas Capítulo 4. Desarrollo de rutinas deCLR.NET. . . . . . . . . . . . . 87 externas . . . . . . . . . . . . . . 21 Depu ración deru tina s. NE TC LR . . . . . . . 88 Depuraciónderutinas.NETCLR . . . . . . 88 Rutinasexternas. . . . . . . . . . . . . 21 ErroresrelacionadosconrutinasCLR.NET. . . 89 Beneficiosdelusoderutinas . . . . . . . . 22 Migraciónderutinas.NETCLRaDB29.1 . . . . 92 Visióngeneraldelasrutinasexternas. . . . . . 23 Migraciónderutinas.NETCLR . . . . . . 92 Visióngeneraldelasrutinasexternas. . . . . 23 Ejemplosderutinas.NETCLR . . . . . . . . 93 Funcionesderutinasexternas . . . . . . . 24 Ejemplosderutinas.NETCLR . . . . . . . 93 Característicasdelasfuncionesymétodos EjemplosdeprocedimientosCLR.NETenVisual externos . . . . . . . . . . . . . . 25 Basic . . . . . . . . . . . . . . . 94 APIylenguajesdeprogramaciónsoportados . . 38 EjemplosdeprocedimientosCLR.NETenC# 103 Creaciónderutinasexternas. . . . . . . . 45 Ejemplo:SoportedeXMLyXQueryenel Estilosdeparámetrosderutinasexternas . . . 46 procedimientodeC#.NETCLR . . . . . . 114 Gestióndebibliotecasoclasesderutinas . . . 49 EjemplosdefuncionesCLR.NETenVisual Soportede32bitsy64bitspararutinasexternas 54 Basic . . . . . . . . . . . . . . . 119 Rendimientodelasrutinasconbibliotecasde32 EjemplosdefuncionesCLR.NETenC# . . . 126 bitsenservidoresdebasesdedatosde64bits. . 55 SoporteparaeltipodedatosXMLenlasrutinas externas . . . . . . . . . . . . . . 56 ©CopyrightIBMCorp.2006 iii Capítulo 6. IBM OLE DB Provider para Conexionesconfuentesdedatosenaplicaciones DB2 . . . . . . . . . . . . . . . 133 C/C++medianteIBMOLEDBProvider . . . 161 TransaccionesdistribuidasMTSyCOM+ . . . . 162 IBMOLEDBProviderparaDB2 . . . . . . . 133 SoportedetransaccionesdistribuidasCOM+e TiposdeaplicacionessoportadosporIBMOLEDB IBMOLEDBProvider . . . . . . . . . 162 ProviderparaDB2. . . . . . . . . . . . 134 HabilitacióndelsoportedeCOM+en ServiciosOLEDB . . . . . . . . . . . . 135 aplicacionesdebasesdedatosC/C++ . . . . 162 ModelodehebrasoportadoporIBMOLEDB MicrosoftComponentServices(COM+)como Provider . . . . . . . . . . . . . . 135 gestordetransacciones . . . . . . . . . 163 ManipulacióndeobjetosgrandesconIBMOLE DBProvider. . . . . . . . . . . . . 135 Capítulo 7. OLE DB .NET Data Conjuntosdefilasdeesquemasoportadospor IBMOLE DB Prov ide r . . . . . . . . . 135 Provider . . . . . . . . . . . . . 173 HabilitaciónautomáticadeserviciosOLEDB OLEDB.NETDataProvider . . . . . . . . 173 porpartedeIBMOLEDBProvider . . . . . 137 RestriccionesdeOLEDB.NETDataProvider . . 174 Serviciosdedatos. . . . . . . . . . . . 137 AgrupacióndeconexionesenaplicacionesdeOLE ModalidadesdecursorsoportadasparaIBM DB.NETDataProvider . . . . . . . . . . 178 OLEDBProvider . . . . . . . . . . . 137 ColumnasdetiempoenaplicacionesdeOLEDB CorrelacionesdetiposdedatosentreDB2y .NETDataProvider . . . . . . . . . . . 179 OLEDB . . . . . . . . . . . . . . 137 ObjetosADORecordsetenaplicacionesdeOLEDB Conversióndedatosparaestablecerdatosde .NETDataProvider . . . . . . . . . . . 180 tiposOLEDBatiposDB2 . . . . . . . . 138 Conversióndedatosparaestablecerdatosde Capítulo 8. ODBC .NET Data Provider 181 tiposDB2entiposOLEDB. . . . . . . . 140 ODBC.NETDataProvider. . . . . . . . . 181 RestriccionesdeIBMOLEDBProvider. . . . . 142 RestriccionesdeODBC.NETDataProvider . . . 181 SoportedeIBMOLEDBparacomponentese interfacesdeOLEDB. . . . . . . . . . . 142 Apéndice A. Información técnica SoportedeIBMOLEDBProviderpara sobre DB2 Database . . . . . . . . 189 propiedadesdeOLEDB. . . . . . . . . . 145 Conexionesa fu entes de d at os me dia nte IB M OL E Visióng eneral delainform aci ón téc nic ad eD B2 189 DBProvide r. . . . . . . . . . . . . . 148 Com entario sso br eladocume ntación . . . . 189 Apl icaciones A D O. . . . . . . . . . . . 148 Bibliotecatécnic adeD B 2enformatoPD F. . . . 190 Palabrasc laved e se rie sd ec one xió n de AD O 148 Pedidode manua les deD B2 encopia imp r esa . . 192 Conexion esaf uen tesde da toscona plic acion es Visualiz aci óndelaa yud apa ra estado sdeSQL ADOVisua lB asic . . . . . . . . . . . 149 desdeelproc esa do rdelín eade manda tos . . . . 193 Curso resdes plaza b les act ual iza ble se n Acceso a diferentes ver siones de lCentrod e aplicacion esADO . . . . . . . . . . . 149 informa c ióndeDB2 . . . . . . . . . . . 194 Limitaciones para a pli cac ion es AD O. . . . . 149 Visualización d etem as en el id iom ap re feri do en el SoportedeIB MO LEDBProvi derpa ra Centrodeinf orm ación de DB 2 . . . . . . . 194 propied ade sym étod osA DO . . . . . . . 150 Actuali zac ióndelCent rod einf orm ac ión de D B2 Funcionesde t abladeb asede d ato sO L ED B instaladoene lsis temao en unservidor de intran et 195 (baseded ato sdee nla ceei nte gració nde Guíasde apr en dizajed e DB 2 . . . . . . . . 1 97 objeto s) . . . . . . . . . . . . . . 153 Inform ac iónderesolu ció nde p rob lem as de D B2 197 Automa tiz ació n del en lac ee int egr aci ón de Términosyc on diciones . . . . . . . . . . 198 objetos(OLE)conVisualBasic. . . . . . . 154 Autom atizació nd elenlac eein t egr aci ón de Apéndice B. Avisos. . . . . . . . . 199 objetos(OLE)conVisualC++ . . . . . . . 155 Marcasregistradas. . . . . . . . . . . . 201 CreacióndeaplicacionesADOconVisualBasic 155 CreacióndeaplicacionesRDOconVisualBasic 158 Índice. . . . . . . . . . . . . . . 203 CreacióndeaplicacionesADOconVisualC++ 159 AplicacionesCyC++ . . . . . . . . . . 161 Cómo ponerse en contacto con IBM 207 CompilaciónyenlacedeaplicacionesC/C++e IBMOLEDBProvider . . . . . . . . . 161 iv DesarrollodeaplicacionesADO.NETyOLEDB Capítulo 1. Desarrollo ADO.NET para bases de datos DB2 Desarrollo de aplicaciones ADO.NET En años recientes, Microsoft ha estado promocionando una nueva plataforma de desarrollo de software para Windows, conocida como .NET Framework. .NET Framework es la alternativa de Microsoft para la tecnología de Component Object Model (COM). Los puntos siguientes resaltan las características claves de .NET Framework: v Puede codificar las aplicaciones .NET en más de cuarenta lenguajes de programación diferentes. Los lenguajes más populares para el desarrollo de .NET son C# y Visual Basic .NET. v La biblioteca de clase de .NET Framework proporciona los bloques de creación con los que han de crearse las aplicaciones .NET. Esta biblioteca de clase tiene un lenguaje agnóstico y proporciona interfaces al sistema operativo y servicios de aplicación. v La aplicación .NET (sin tener en cuenta el lenguaje) se compila en Intermediate Language (IL), un tipo de código de bytes. v Common Language Runtime (CLR) es el corazón de .NET Framework, compilando el código de ILal vuelo y ejecutándolo a continuación.Al ejecutar el código ILcompilado, CLR activa los objetos, verifica su autorización de seguridad, asigna su memoria, los ejecuta y limpia su memoria una vez haya finalizado la ejecución. Por medio de estas características, .NET Framework facilita una amplia gama de implementaciones de aplicación (por ejemplo, los formatos de Windows, los formatos de Web y los servicios Web), el desarrollo de aplicación rápida y el desarrollo de aplicación protegido. COM y COM+ han demostrado que eran inadecuados o engorrosos para todas las características mencionadas anteriormente. .NET Framework proporciona un amplio soporte de acceso de datos por medio de ADO.NET.ADO.NET da soporte tanto al acceso conectado como al desconectado. El componente clave del acceso de datos desconectado enADO.NET es la clase DataSet, cuyas instancias actúan como antememoria de la base de datos que reside en la memoria de la aplicación. El acceso conectado enADO.NET no requiere clases adicionales. Tanto para el acceso conectado como para el desconectado, las aplicaciones utilizan bases de datos a través de lo que se conoce como proveedor de datos .NET. Diversos productos de la base de datos incluyen sus propios proveedores de datos .NET, incluyendo DB2 para Windows. Un proveedor de datos .NET presenta implementaciones de las siguientes clases básicas: v Conexión: Establece y gestiona una conexión de base de datos. v Mandato: Ejecuta una sentencia SQLen una base de datos. v DataReader: Lee y devuelve datos del conjunto de resultados de una base de datos. v DataAdapter: Enlaza una instancia de DataSet a una base de datos. Por medio de una instancia de DataAdapter, DataSet puede leer y grabar datos de tabla de la base de datos. ©CopyrightIBMCorp.2006 1 DB2 UDB para Windows incluye tres proveedores de datos .NET: v DB2 .NET Data Provider: Proveedor de datosADO.NET gestionado de alto rendimiento. Este es el proveedor de datos .NET recomendado para su utilización con bases de datos de la familia de DB2. El acceso a la base de datos deADO.NET utilizando el DB2 .NET Data Provider tiene menos restricciones y proporciona un rendimiento significativamente mejor que el de los proveedores de OLE DB y ODBC .NET Bridge. v OLE DB .NET Data Provider: Proveedor Bridge que alimenta las peticiones ADO.NET para IBM OLE DB Provider (por medio del módulo interop COM). Este .NET Data Provider no es el que se recomienda para acceder a las bases de datos de la familia de DB2. El DB2 .NET Data Provider es más rápido y tiene más características. v ODBC DB .NET Data Provider: Proveedor Bridge que alimenta las peticiones ADO.NET para IBM ODBC Driver. Este .NET Data Provider no es el que se recomienda para acceder a las bases de datos de la familia de DB2. El DB2 .NET Data Provider es más rápido y tiene más características. Software de desarrollo .NET soportado Para desarrollar y desplegar aplicaciones .NET que se ejecuten en bases de datos de DB2, necesitará utilizar software de desarrollo y sistemas operativos soportados. Sistemas operativos soportados para el desarrollo y despliegue de aplicaciones .NET Framework 1.1: v Windows 2000 v Windows XP (edición de 32 bits) v Windows Server 2003 (edición de 32 bits) Nota: Windows 98, Windows ME y Windows NT también reciben soporte, pero sólo para ejecutarse en aplicaciones del cliente DB2. Sistemas operativos soportados para el desarrollo y despliegue de aplicaciones .NET Framework 2.0: v Windows 2000, Service Pack 3 v Windows XP, Service Pack 2 (ediciones de 32 bits y de 64 bits) v Windows Server 2003 (ediciones de 32 bits y de 64 bits) Nota: Windows 98 y Windows ME también reciben soporte, pero sólo para ejecutarse en aplicaciones del cliente DB2. Software de desarrollo soportado para aplicaciones .NET Framework: Además de un cliente DB2, necesitará una de las opciones siguientes para desarrollar aplicaciones .NET Framework. v Visual Studio 2003 (para aplicaciones .NET Framework 1.1) v Visual Studio 2005 (para aplicaciones .NET Framework 2.0) v .NET Framework 1.1 Software Development Kit y .NET Framework Versión 1.1 Redistributable Package (para aplicaciones .NET Framework 1.1) v .NET Framework 2.0 Software Development Kit y .NET Framework Versión 2.0 Redistributable Package (para aplicaciones .NET Framework 2.0) Software de despliegue soportado para aplicaciones .NET Framework: 2 DesarrollodeaplicacionesADO.NETyOLEDB Además de un cliente DB2, necesitará una de las dos opciones siguientes para desplegar aplicaciones .NET Framework. v .NET Framework Versión 1.1 Redistributable Package (para aplicaciones .NET Framework 1.1) v .NET Framework Versión 2.0 Redistributable Package (para aplicaciones .NET Framework 2.0) Configuración del entorno de desarrollo de aplicaciones Windows Cuando se instala Cliente DB2 en sistemas operativos Windows, el programa de instalación actualiza el registro de configuración con las variables de entorno INCLUDE, LIB y PATH. La instalación establece la variable de entorno para todo el sistema, DB2INSTANCE, en la instancia por omisión creada, denominada DB2. DB2PATH se establece dentro de una ventana de mandatos de DB2 cuando se abre la ventana. Puede alterar estas variables de entorno para definir valores para la máquina o usuario conectado actualmente. Tenga precaución cuando modifique estas variables de entorno. No modifique la variable de entorno DB2PATH. DB2INSTANCE se define como variable de entorno a nivel de sistema. No es necesario hacer uso de la variable de registro DB2INSTDEF de DB2, que define el nombre de instancia por omisión que se debe utilizar si no se establece DB2INSTANCE. Procedimiento: Para modificar los valores de variables de entorno, utilice el Panel de control de Windows. Si utiliza la variable %DB2PATH% en un mandato, coloque la vía de acceso completa entre comillas, de esta forma: set LIB=“%DB2PATH%%\lib”;%LIB% El valor de instalación por omisión para esta variable es \Archivos de programa\IBM\SQLLIB, que contiene un espacio, por lo que es necesario utilizar comillas para no ocasionar un error. Además, debe seguir los pasos específicos siguientes para ejecutar aplicaciones de DB2: v Cuando cree programas C o C++, la variable de entorno INCLUDE debe incluir %DB2PATH%\INCLUDE como primer directorio. Para hacerlo, actualice el archivo de configuración del entorno para el compilador: Microsoft Visual C++ 6.0 "C:\Archivos de programa\Microsoft Visual Studio\VC98\bin\ vcvars32.bat" Microsoft Visual C++ .NET "C:\Archivos de programa\Microsoft Visual Studio .NET\Common7\Tools\vsvars32.bat" Estos archivos tienen los mandatos siguientes: Microsoft Visual C++ 6.0 set INCLUDE=%MSVCDir%\ATL\INCLUDE;%MSVCDir%\INCLUDE; % MSVCDir%\MFC\INCLUDE;%INCLUDE% Capítulo1.DesarrolloADO.NETparabasesdedatosDB2 3 Microsoft Visual C++ .NET @set INCLUDE=%MSVCDir%\ATLMFC\INCLUDE;...; %F rameworkSDKDir%\include;%INCLUDE% Para utilizar cualquiera de estos archivos con DB2, primero traslade %INCLUDE%, que define la vía %DB2PATH%\INCLUDE, desde el final de la lista hasta el comienzo, de esta manera: Microsoft Visual C++ 6.0 set INCLUDE=%INCLUDE%;%MSVCDir%\ATL\INCLUDE; % MSVCDir%\INCLUDE;%MSVCDir%\MFC\INCLUDE Microsoft Visual C++ .NET @set INCLUDE=%INCLUDE%;%MSVCDir%\ATLMFC\INCLUDE;...; %F rameworkSDKDir%\include v Cuando cree programas Micro Focus COBOL, la variable de entorno COBCPY debe apuntar a %DB2PATH%\INCLUDE\cobol_mf. v Cuando cree programas IBM COBOL, la variable de entorno SYSLIB debe apuntar a %DB2PATH%\INCLUDE\cobol_a. v Asegúrese de que la variable de entorno LIB apunta a %DB2PATH%\lib utilizando este mandato: set LIB="%DB2PATH%\lib";%LIB% Nota: Para permitir el desarrollo cruzado de aplicaciones de 64 bits desde un entorno de 32 bits, consulte el apartado Migración de aplicaciones de bases de datos de 32 bits para ejecutarlas en instancias de 64 bits v Asegúrese de que la variable de entorno DB2COMM esté definida en el servidor de una base de datos remota. v Asegúrese que el servicio de seguridad se ha iniciado en el servidor para la autenticación SERVER, y en el cliente, cuando se utilice la autenticación CLIENT. Nota: Puesto que la autenticación CLIENT se produce en la parte de cliente en lugar de la parte de servidor, la aplicación cliente se ejecuta bajo el contexto del usuario. LaAPI de autenticación de Win32 requiere determinados privilegios que el usuario puede tener o no tener. Para asegurarse que la autenticación CLIENT tiene lugar satisfactoriamente, las solicitudes de autenticación se pasan de la aplicación cliente al servidor de seguridad (que se ejecuta, por omisión, bajo una sistema local de cuenta privilegiada y tiene el derecho de llamar a laAPI de autenticación). Para iniciar manualmente el servicio de seguridad, utilice el mandato NET START DB2NTSECSERVER. Normalmente, la única situación en que deseará iniciar automáticamente el servicio de seguridad será cuando la estación de trabajo actúe como cliente DB2 que se conecta a un servidor que esta configurado para la autenticación de clientes. Para hacer que el servicio de seguridad se inicie automáticamente, siga estos pasos: Windows 2000 y Windows Server 2003 1. Pulse el botón Inicio. 2. Para Windows 2000, pulse ″Configuración″ y luego pulse ″Panel de contr ol″. Para Windows Server 2003, pulse ″Panel de control″. 3. Pulse HerramientasAdministrativas. 4. Pulse Servicios. 4 DesarrollodeaplicacionesADO.NETyOLEDB
Description: