Home
Librería de Acceso a la Base de Datos Relacional de TJ-II
Contents
1. 8 plataformas ALPHA AXP UNIX nadas 13 A A O A 14 plataformas cliente soportadas 9 PowerPC darwin eese 14 UND 14 WTO WS siii 14 RDB A A 18 SELECT sentencia cicadcsasgwtans 23 26 27 44 45 o A aaa ai 45 SOL 4 6 20 24 tablas tablas de la base de datos 4 20 TIZRIIBDE riera 29 Ejemplos de USO did tn 31 TIJ2ZRDBGERR tea 37 Ejemplos de uso ii 39 Librer a de acceso a la base de datos relacional de TJ II Guia del Usuario TJ2RDBGETSZ codi 40 Ejmeplos de USO ooooocconocccnoncccccconnns 41 TRB Opa 20 Ejemplos de sO si n 22 2 RIB ER Re arrolla 36 Ejemplos de ds 37 A Geen 23 Ejemplos de USO ai 27 50 s TIZRD BSE OL esa 42 Ejemplos dd 43 WIZ RID UR ra doo 32 Ejemplos de uso arias 34 TJ 113 4 5 6 7 8 9 10 11 13 14 18 38 vistas de la base de datos eee 6 20 XDR a er a Se BRAC PA 4
2. A dato write Introducir el valor del campo read A datoV write Numero de descarga read A claveV write write enviando datos erri 1 errl TJ2RDBUP clave claveV dato datoV iErr write write Fin de la consulta err2 1 if erri ne 0 then err2 TJ2RDBPERR iErr else write write Operacion concluida end if WES FEE FEREEREENE ARA ES EER ER ERA STOP END 5 4 2 2 C digo C que usa la funci n TJZRDBUP include lt stdio h gt include lt malloc h gt extern TJ2RDBUP_ char char char char int extern int TJ2RDBPERR_ int int main char keyNam 32 value 32 campo 32 campov 32 int mierror errC se inicializan variables memset keyNam 0 sizeof keyNam memset value O sizeof value memset campo 0 sizeof campo memset campov 0 sizeof campov printf Introducir el nombre de la columna afectada n fflush stdout fflush stdin gets campo printf Introducir el valor n SS Libreria de acceso a la base de datos relacional de TJ II Gu a del Usuario fflush stdout fflush stdin gets campov sprintf keyNam NDes fflush stdout printf Numero de descarga n fflush stdout fflush stdin gets value fflush stdin fflush stdout mierror TJ2RDBUP_ keyNam value campo campov amp errC if mierror 0 printf Se produjo un error
3. fflush stdin gets campo sprintf keyNam NDes fflush stdout printf Numero de descarga n fflush stdout fflush stdin gets value fflush stdin fflush stdout mierror TJ2RDBDEL_ keyNam value campo amp errC if mierror 0 printf Se produjo un error al eliminar el dato solicitado n TJ2RDBPERR_ amp errC 5 4 La funci n TJ2RDBUP Esta funci n permite modificar un valor existente o introducir un valor para un campo de la base de datos Para seleccionar el valor a modificar introducir habr que indicar el nombre de la columna objeto de manipulaci n Para identificar la fila o filas Librer a de acceso a la base de datos relacional de TJ IJ Guia del Usuario afectada hay que especificar un nombre de columna que se usa como clave y el valor de esta columna para el que se eliminar el dato en la columna afectada En general la columna que se usar como clave para identificar la fila afectada ser el campo NDES n mero de descarga de plasma de TJ ID puesto que en esta base de datos la mayor a de datos est n asociados a una descarga de plasma de TJ IL Todos los argumentos se han de pasar por referencia por compatibilidad con c digos FORTRAN 5 4 1 Descripci n detallada de TJZRDBUP int TJ2RDBUP char keyNam char keyVal char feNam char colVal int errC Argumentos de entrada keyNam keyVal colNam colVal es una cadena de carac
4. 256 sV 2048 integer Err erri err2 integer sizeC sizeV integer TJ2RDBPERR TIZRDBUP TIZRDBDEL character 512 clave claveV dato external TJ2RDBPERR TI2ZRDBDEL sizeC sC sizeV sV write Programa de prueba de borrado write Reservados para nombre de campo sC octetos write Reservados para valores de campos sV octetos write Writa T AJ E ERA EEE RR EAA write clave A NDes write Introducir el nombre del campo a modificar read A dato write Numero de descarga read A claveV write write enviando datos erri i erri TJ2RDBDEL clave claveV dato Err write write Fin de la consulta etr2 1 if erri ne 0 then e Libreria de acceso a la base de datos relacional de TJ II Gu a del Usuario err2 TJ2RDBPERR iErr else write write Operacion concluida end if WI EPRRAERARACRA ARA e RRR STOP END 5 3 2 2 C digo C que usa la funci n TI2ZSRDBDEL include lt stdio h gt include lt malloc h gt extern TJ2RDBDEL_ char char char char int extern int TJ2RDBPERR_ int int main char keyNam 32 value 32 campo 32 int mierror errC se inicializan variables memset keyNam 0 sizeof keyNam memset value 0 sizeof value memset campo 0 sizeof campo printf Introducir el nombre de la columna afectada n fflush stdout
5. Los datos se organizan internamente en forma de tablas cada tabla conteniendo diferentes campos Entre diferentes campos de diferentes tablas se mantienen relaciones Estas relaciones entre campos junto con el motor relacional proporcionan una gran flexibilidad en la b squeda de datos permitiendo hacer b squedas complejas en la base de datos usando el lenguaje SQL Structured Query Language SQLRes Los datos que se integran en esta base de datos provienen de diferentes fuentes Algunos datos generales ser n introducidos en la base de datos por los encargados de la operaci n del dispositivo TJ IL otros datos m s espec ficos se obtendr n del an lisis detallado de los datos experimentales capturados por diferentes sistemas de diagn stico Estos datos experimentales habr n de ser introducidos en la base de datos por los experimentales responsables de cada sistema de diagn stico en concreto Finalmente se insertar n datos en esta base de datos directamente y de forma automatizada desde c digos de an lisis o simulaci n Para el acceso a los datos de la base de datos desde m ltiples plataformas con independencia de drivers de bases de datos de terceras partes como ODBC por ejemplo el Grupo de Adquisici n de Datos GAD del TJ I ha desarrollado un sistema de acceso basado en el est ndar de facto ONC RPC RPC88 Bloomer92 ya utilizado con anterioridad en otros desarrollos por este grupo Sanchez01 Se trata de un softwa
6. PROMPT gt cc 0o myProg myProg c L usr local shlib IRdbC a para enlazar con la libreria estatica 4 4 1 2 Otras plataformas UNIX LINUX y darwin Se compilar el programa de usuario de la misma forma que en plataformas ALPHA usando los directorios donde se encuentren instaladas las librerias que depender n de cada maquina al usar la opci n L del linker 4 4 1 3 Plataformas Windows Para plataformas Windows se cuenta con varias librer as diferentes Todas ellas se pueden instalar usando el programa instalador distribuido por el GAD del TJ IL ti2RdbC dll Tabla 3 Librerias para plataformas Windows ee ee is Libreria de enlace dinamico DLL para aplicaciones con un solo hilo de ejecuci n Las funciones siguen el convenio de llamada est ndar tj2RdbCMT dll Libreria de enlace din mico DLL con soporte para aplicaciones con m ltiples hilos de ejecuci n Las funciones siguen el convenio de llamada est ndar Todas las versiones de la librer a RDB necesitan para su correcto funcionamiento que la librer a ONC RPC ficheros pwrpe32 dll y pwrpc lib est instalada en el sistema Esta librer a se instala autom ticamente cuando se usa el instalador de software proporcionado por el GAD del TJ II ver 4 2 Instalaci n de la librer a cliente La librer a t 2RdbCMT dlll es la librer a b sica con soporte para aplicaciones con m ltiples hilos de ejecuci n que se usar de for
7. a se encuentra en dos versiones una versi n est tica como librer a de objetos libRdbC a y versi n de librer a compartida o de enlace din mico libRdbC so En el caso del servidor central del sistema de adquisici n de datos del TJ II ALPHA 8400 estas librer as se encuentran instaladas en los directorios usr locaVlib y usr local shlib respectivamente Para enlazar con estas librer as usar la sentencia PROMPT gt cc o myProg myProg c IRdbC so para enlazar con la librer a de objetos compartidos din mica PROMPT gt cc o myProg myProg c IRdbC a para enlazar con la librer a est tica En estos ejemplos se asume que myProg c es un c digo fuente escrito en C que llama a funciones de la librer a libRdbC Igualmente servir a el ejemplo si se tratara de un c digo escrito en FORTRAN usando el compilador FORTRAN correspondiente en lugar de ce PROMPT gt f77 o myProg myProg f IRdbC so para enlazar con la librer a de objetos compartidos din mica PROMPT gt f77 0o myProg myProg f IRdbC a para enlazar con la librer a est tica 13 Libreria de acceso a la base de datos relacional de TJ II Gu a del Usuario En caso de que los directorios usr local lib y usr local shlib no se encuentren incluidos en la lista de caminos de b squeda de librerias del linker Id se puede compilar con PROMPT gt cc o myProg myProg c L usr local shlib IRdbC so para enlazar con la libreria dinamica
8. de la base de datos esta funci n retorna un valor diferente de cero y cero en caso contrario Notas En los valores de la clave no se pueden usar meta caracteres como el para representar varios valores de clave Una llamada a esta funci n que contenga el car cter US sE en el valor de keyVal fallar Tanto los nombres como los valores de las columnas de vistas de la base de datos se tratan para mayor generalidad como cadenas de caracteres por esta funci n aunque los valores de algunas columnas de la base de datos ser n datos num ricos enteros o de coma flotante Habr que hacer las oportunas conversiones de datos antes de llamar a esta funci n 5 4 2 Ejemplos de uso de TJ2RDBUP 5 4 2 1 C digo FORTRAN que usa la funci n TJ2RDBUP PROGRAM TESTRDBUP implicit none integer sC sV parameter sC 256 sV 2048 integer iErr erri err2 integer sizeC sizeV integer TJ2RDBPERR TI2RDBUP TI2ZRDBDEL character 512 clave claveV dato datoV external TI2RDBPERR TI2RDBUP sizeC sC sizeV sV write Programa de prueba de Insercion 234 Libreria de acceso a la base de datos relacional de TJ II Gu a del Usuario write Reservados para nombre de campo sC octetos write Reservados para valores de campos SV octetos write write Trabajando en modo modificar it OO OE write clave A NDes write Introducir el nombre del campo a modificar read
9. al modificar el dato solicitado n TI2RDBPERR_ amp errC 5 5 La funci n TJ2RDBPERR Esta funci n se encarga de imprimir en la salida est ndar del programa que la llama un mensaje de error asociado a un c digo de error entero que se le pasa como argumento Se supone que el programa principal tiene asociada una salida est ndar y est disponible para enviar mensajes al usuario por ella En caso contrario no funcionar correctamente 5 5 1 Descripci n detallada de TJI2RDBPERR int TJI2RDBPERR int errCo La funci n s lo tiene un argumento de entrada errCo que ha de ser pasado por referencia para compatibilidad con FORTRAN errCo es un entero que ha de ser declarado en el programa que llama a esta funci n En este argumento se le pasa a la funci n un c digo de error La funci n imprime en la salida est ndar del programa un mensaje de error descriptivo de la situaci n de error asociada al c digo que recibe como argumento Si no se produce ning n error al intentar obtener el mensaje asociado al c digo TJ2RDBPERR retoma 0 En caso de error retorna 1 BGs Librer a de acceso a la base de datos relacional de TJ II Gu a del Usuario Para obtener el mensaje de error asociado a un c digo TJZRDBPERR llama a la funci n TJZ2RDBGERR ver 5 6 La funci n TJ2RDBGERR 5 5 2 Ejemplos de uso de TI2ZRDBPERR 5 5 2 1 C digo FORTRAN que usa la funci n TJZRDBPERR Para este ejemplo se remite al lector a los
10. base de datos es cometido de las diferentes personas responsables de cada uno de los sistemas de diagn stico del plasma del TJ II a trav s de los cuales se obtienen los datos experimentales con los que se rellenan los campos de las tablas Como contrapartida a la responsabilidad sobre los datos insertados en la base de datos por cada usuario o grupo de usuarios el sistema de adquisici n de datos proporciona un mecanismo de identificaci n de usuarios que permita garantizar que los datos son modificados solamente por las personas autorizadas para ello Con el fin de controlar los accesos a los datos cada campo de cada tabla tiene asignado un usuario y grupo propietarios que se corresponden con un usuario o grupo de usuarios experimentales que son los responsables de la obtenci n e inserci n de los datos correspondientes a ese campo magnitud f sica La inserci n y modificaci n de datos en cada campo s lo se permitir a los usuarios propietarios del campo o a usuarios autorizados por ellos El GAD del TJ I proporciona un software que permite el acceso a la TJ II RDB tanto para lectura de datos como para inserci n o modificaci n de datos en la RDB desde m ltiples plataformas a trav s de la red usando la librer a cliente de acceso a datos proporcionada por el GAD del TJ I ver 5 Funciones de la librer a RDB Para comodidad de los usuarios este software no requiere que cada vez que se realiza un acceso a la base de datos se propo
11. el argumento sizeMsg sizeMsg es un entero declarado en el programa principal que llama a esta funci n En este argumento se pasa a la funci n el tama o en octetos que se ha reservado en el programa que llama a la funci n para almacenar el mensaje descriptivo del error asociado al c digo de error que se le pasa en ierrCo Para independizar al m ximo el c digo de la librer a cliente tj2RdbC del c digo del servidor RDB del TJ se han distribuido tambi n los errores Hay diferentes tipos de errores Errores del sistema ONC RPC errores del lado del cliente y errores del lado del servidor Los errores est n tabulados con c digos asociados de forma separada para cada tipo Para el caso de los errores de RPC se usan los c digos proporcionados por la librer a RPC Bloomer92 incrementados en una constante para evitar coincidencias con c digos del cliente o del servidor Los errores del lado del cliente est n tabulados habiendo una correspondencia biunivoca entre c digos y mensajes de error asociados Cuando esta funci n recibe uno de los c digos de error que se encuentra en la tabla de c digos de error del lado cliente simplemente rellena la cadena msg con el mensaje asociado al c digo recibido Los errores del lado del servidor est n tabulados en el servidor Para acceder a estos c digos esta funci n establece una nueva conexi n RPC con el servidor y consulta el mensaje asociado a un c digo Esto permite que en el l
12. funcionar n correctamente pues no es necesaria una autorizaci n previa para usar estas funciones mientras que las funciones cuyo prop sito es insertar o modificar datos de la RDB TJ2RDBUP TJ2RDBDEL fallar n devolviendo un error que indica que el usuario no est autorizado a realizar la operaci n de escritura sobre la base de datos Libreria de acceso a la base de datos relacional de TJ 1l Gu a del Usuario 4 Librer a de acceso a la base de datos relacional Para el acceso a los datos de la base de datos relacional del TJ I se ha desarrollado un software basado en el modelo cliente servidor Todos los accesos a los datos se gestionan a trav s de un proceso servidor que se ejecuta en el servidor Windows 2000 que alberga la base de datos La iniciativa parte siempre del cliente mientras que el servidor espera continuamente peticiones de conexi n de clientes Para acceder a los datos se necesita un programa cliente que se comunique con este servidor de datos envi ndole consultas y recibiendo sus respuestas Para ello el GAD del TJ II ha desarrollado una librer a que permite ser enlazada con un programa de usuario proporcion ndole capacidades de acceso a los datos Un programa enlazado con esta librer a se comporta como un cliente del servidor de datos La librer a es proporcionada por el GAD permite ser enlazada con programas desarrollados en C o en FORTRAN y gestiona todos los detalles de las comunicaciones con el serv
13. n modo consultas escritas en este lenguaje al gestor de base de datos quien interpreta la consulta y se encarga de buscar la informaci n solicitada en la base de datos El lenguaje SQL permite tanto la consulta de informaci n como la inserci n de informaci n nueva en la base de datos o la eliminaci n o modificaci n de informaci n ya existente Para la consulta de informaci n se usan sentencias de tipo SELECT que permiten con gran flexibilidad seleccionar la informaci n que queremos extraer de la base de datos La sintaxis b sica de una sentencia SELECT es tal como esta SELECT campol campo FROM tabla WHERE condici n SELECT FROM y WHERE son palabras reservadas de SQL campol campo son los nombres de los campos de la tabla tabla cuyo contenido queremos visualizar condici n permite filtrar la informaci n de acuerdo con alg n criterio El siguiente ejemplo SELECT campol campo3 campo4 FROM prueba WHERE campo4 gt 5 nos devolver a Tabla 6 Resultado de una consulta de ejemplo Campol Campo3 Campo4 3 7 Un texto 45 0 0 1234 El resultado de una consulta SELECT es siempre una tabla cuyos campos son los que se han seleccionado en la consulta y cuyas filas estan determinadas tanto por el 45 Libreria de acceso a la base de datos relacional de TJ II Guia del Usuario contenido de la base de datos como por las condiciones impuestas en la sentencia de consulta Las co
14. s para facilitar la compatibilidad con lenguejes C y FORTRAN en diferentes plataformas todas las funciones de la librer a de uso general se han declarado con nombres en may sculas y min sculas 2 r r Algunas funciones de la librer a de uso interno a ala librer a se han declarado con convenio de llamada C E lo 0 Librer a de acceso a la base de datos relacional de TJ II Guia del Usuario 5 Funciones de la librer a RDB La librer a cliente de acceso a datos implementa un juego de funciones b sicas de bajo nivel que permiten acceder a los datos de la base de datos relacional del TJ I tanto para lectura como para inserci n de datos desde programas de usuario escritos en C C o FORTRAN Usando estas funciones se podr n implementar otras m s sofisticadas a un nivel superior ya sea por el propio usuario o por el GAD del TJ I Para compatibilidad con lenguajes C C y FORTRAN todos los argumentos se pasar n a las funciones por referencia Por otra parte tambi n por compatibilidad con C C y FORTRAN y debido al diferente tratamiento que estos lenguajes de programaci n hacen de las cadenas de caracteres se asumir que las cadenas que se pasen como argumentos a las funciones no contienen necesariamente un car cter de terminaci n de cadena y su dimensi n habr de ser pasada a la funci n en un argumento extra o asumida por defecto salvo que se indique lo contrario ver 5 3 La funci
15. vistas que el GAD le proporciona En estas vistas se aglutinan datos de las tablas verdaderas de la base de datos Esto permite que mientras que la estructura interna de la base de datos puede ser muy compleja por razones de eficiencia conteniendo muchas tablas con diferentes relaciones entre sus campos de cara al usuario la base de datos s lo contenga unas pocas vistas facilit ndole la b squeda de datos proceso que en muchos casos se reducir simplemente a seleccionar qu campos de una vista desea visualizar La complejidad de las b squedas en las diferentes tablas de la base de datos reside as no en la sentencia SQL que el usuario debe enviar para buscar datos sino en las sentencias SQL usadas para rellenar las vistas trabajo que realiza en este caso el GAD del TJ 6 Libreria de acceso a la base de datos relacional de TJ II Guia del Usuario Por otra parte al independizar el software de acceso de la estructura interna quedan enmascarados en gran medida de cara al usuario los detalles de organizaci n interna pudi ndose modificar la estructura interna de la base de datos si se requiere por ampliaciones por ejemplo sin que ello afecte al software de acceso a los datos que usa el cliente ni a sus programas Cada campo de cada tabla representa una magnitud fisica relevante para los experimentos de TJ II y tiene un nombre que permite identificar a qu se refieren los datos de este campo La inserci n de los datos en esta
16. 88 Sanchez01 E Sanchez J Vega C Cr my and A Portas Review of Scientific Instruments 72 1 2001 525 529 Sanchez02 E Sanchez A Portas and J Vega Fus Eng amp Design 60 2002 341 346 SQLRes ver por ejemplo http www sql org donde se pueden encontrar referencias sobre el lenguaje SQL Vega00 J Vega C Cr my E Sanchez A Portas J A F bregas R Herrera Fusion Engineering and Design 47 2000 69 79 XDR87 XDR External Data Representation Specifications Sun Microsystems Inc DARPA RFC 1014 June 1987 49 Librer a de acceso a la base de datos relacional de TJ II Guia del Usuario 8 ndice de materias __Sstdeall directiva de compilacion 15 autoexec bat A hinge ad Wane see 12 AUTOT ZACI N tica 8 base de datos organizaci n de la base de datos 6 tablas de la base de datos 6 vistas de la base de datos 6 ce compadres 13 cliente servidor ceecee 4 9 convenio de llamada 14 15 17 convenios de llamada 16 A AR ee 4 enlace din mico occonooncncnncnnannnns 13 14 A A 14 15 librer a Configuraci n de la librer a 11 Enlazar un programa con la librer a Instalaci n de la librer a cliente10 14 LIM COUL ii variables de entorno para la librerial 1 linker 5i MORE aid ona 10 A E a 4 5 ONC RPG dmca 4 10 14 permisos A nape inei 6 solicitar permisos de acceso
17. DBGERR int char int int main char Msg 512 int tamano code tamano 512 printf Introducir el c digo de error n fflush stdout scanf d amp code fflush stdin if TIZRDBGERR amp code Msg amp tamano 0 printf nCodigo de error d gt s n code Msg fflush stdout return 0 else printf n d s n code Msg fflush stdout fflush stdout return 1 return 0 39 Librer a de acceso a la base de datos relacional de TJ 11 Gu a del Usuario 5 7 La funci n TI2RDBGETSZ Esta funci n permite conocer el tama o preestablecido para almacenar los nombres y valores de columnas de la base de datos que se pasan a las funciones TJ2RDBUP y TJ2RDBDEL Esas funciones asumen por defecto que se usan SIZE COLUMN_DEF 32 octetos para los nombres de las columnas y SIZE VALUE DEF 32 octetos para almacenar los valores de las columnas Estos valores por defecto pueden ser modificados usando la funci n TJ2RDBSETSZ ver 5 8 Por medio de TJ2RDBGETSZ se pueden obtener los valores que est n siendo usados que podr an haber sido establecidos previamente con TJ2RDBSETSZ La funci n TJ2RDBGETSZ devuelve un valor 0 si la ejecuci n se realiza con xito o un valor diferente de O si se produce alg n error durante la ejecuci n de la funci n Todos los argumentos han de ser pasados a la funci n por referencia por compatibilidad con FORTRAN 5 7 1 Descripci n det
18. Informes T cnicos Ciemat 1029 Octubre 2003 Libreria de Acceso a la Base de Datos Relacional de TJ II Guia del Usuario Edilberto S nchez Ana B Portas Jes s Vega Asociaci n EURATOM CIEMAT para Fusi n 88 Departamento de Fusi n y F sica de Part culas Elementales Toda correspondenica en relaci n con este trabajo debe dirigirse al Servicio de Informaci n y Documentaci n Centro de Investigaciones Energ ticas Medioambientales y Tecnol gicas Ciudad Universitaria 28040 MADRID ESPA A Las solicitudes de ejemplares deben dirigirse a este mismo Servicio Los descriptores se han seleccionado del Thesauro del DOE para describir las materias que contiene este informe con vistas a su recuperaci n La catalogaci n se ha hecho utilizando el documento DOE TIC 4602 Rev 1 Descriptive Cataloguing On Line y la clasificaci n de acuerdo con el documento DOE TIC 4584 R7 Subject Categories and Scope publicados por el Office of Scientific and Technical Information del Departamento de Energ a de los Estdos Unidos Se autoriza la reproducci n de los res menes anal ticos que aparecen en esta publicaci n Dep sito Legal M 14226 1995 ISSN 1135 9420 NIPO 402 03 005 6 Editorial CIEMAT CLASIFICACI N DOE Y DESCRIPTORES 70 S99 COMPUTER NETWORKS COMPUTER PROGRAM DOCUMENTATION DATA TRANSMISSION DATA ACQUISITION SYSTEMS DATA BASE MANAGEMENT INFORMATION RETRIEVAL DATA COMPILATION FORTRAN TOKAMAK DEVICES L
19. RDBUP invicto 34 O La funcion FJ2RDBPERR it aa 36 5 5 1 Descripci n detallada de TIZRDBPERR cuanta 36 5 5 2 Ejemplos de uso de TJ2RDBPERR andado t os 37 20 La funci n TJZRDBGERR di Aa 31 5 6 1 Descripci n detallada de TIZRDBGERK aaa 37 5 6 2 Ejemplos de uso de TIZRDBGER Ross lili 39 5 7 La unci n 2 RDBGEDSL a a 40 5 7 1 Descripci n detallada de la funci n TJ2RDBGETSZ ee 40 5 7 2 Ejemplos de uso de 112RDBOGELS Las 41 5 8 La foncion VIZ RD BS Bl SZ ind aTa AEE ACE Ae EET 42 5 8 1 Descripci n detallada de la funci n TI2ZRDBSETSZ neeesser 43 5 8 2 Ejemplos de uso de LI2RDBSETSE os sie ci n 43 6 Ap ndice 1 Bases de datos relacionales y consultas con SQL ioocconnicnincnconncos 44 O 44 6 2 Sintaxis b sica de las sentencias de consulta csi 45 NO 49 8 ndice de materias SE Ed ENEE 51 Libreria de acceso a la base de datos relacional de TJ II Guia del Usuario 1 Audiencia y objetivos Este documento est dirigido a personas que necesitan hacer uso de la libreria desarrollada por el Grupo de Adquisici n de Datos GAD del TJ I para el acceso a datos de la base de datos relacional RDB desarrollada para este dispositivo Se dirige tanto a usuarios que necesitan hacer uso de la librer a para leer o integrar datos en dicha base de datos desde sus programas de usuario como a aquellos que necesiten usar las funciones que esta librer a implementa para desarrollar aplicaciones cliente o librer as de m s al
20. SERVER nombreHost ciemat es para shells sh o ksh o bien PROMPT gt setenv TJ2RDB_SERVER nombreHost ciemat es para shells de tipo C csh o tcsh Se puede hacer esto mismo en lugar de hacerlo desde la linea de comandos desde un srcipt de entrada como profile csh_login bash_profile De este modo no es necesario establecer el valor de la variable de entorno manualmente cada vez que se use la librer a En plataformas Windows NT o Windows 2000 se pueden establecer valores para variables de entorno a trav s del panel de control de Sitema secci n Entorno Cabe la opci n de establecer el valor de las variables para todo el sistema todas las cuentas de usuario si se tienen permisos de administrador o bien para la cuenta de usuario en uso En plataformas Windows 95 o Windows 98 Definir las variables de entorno en el fichero autoexec bat PROMPT gt SET TJ2RDB_SERVER das08 ciemat es e Libreria de acceso a la base de datos relacional de TJ II Gu a del Usuario 4 4 Como enlazar un programa con la libreria RDB La libreria se encuentra disponible en diferentes versiones dependiendo de la plataforma La forma de enlazar con la libreria puede ser ligeramente diferente dependiendo de la plataforma del compilador que se use y de la instalaci n de la librer a propiamente dicha el directorio donde se encuentre instalada 4 4 1 1 Plataformas ALPHA AXP UNIX Servidor 8400 de Adquisici n de datos La librer
21. TAB representa un car cter de tabulaci n y RETURN un car cter de nueva l nea Esta cadena de caracteres acabar en un car cter NULL En la variable cNames se recibir n los nombres de las columnas consultadas separados por un car cter de tabulaci n En la variable types se recibir n caracteres indicativos del tipo de dato que contiene cada columna recibida separados por caracteres de tabulaci n C corresponde a un dato de tipo cadena de caracteres F corresponde a un dato de punto flotante I corresponde a un dato de tipo entero Los valores nCols nRows mes pueden ser tiles para permitir a un programa gt p O procesar autom ticamente el resultado de la consulta a la base de datos En realidad una vez que se ha introducido una consulta SELECT en esta funci n se conoce la estructura del resultado El resultado ser una tabla de datos con un n mero de columnas conocido y cuyos nombres son los seleccionados en la sentencia de consulta A pesar de esto se ha dise ado esta funci n de modo que devuelva esa informaci n en las variables nCols cNames y types para facilitar la automatizaci n de consultas SELECT a la base de datos desde programas pudiendo desarrollarse programas interactivos de consulta que procesen consultas SELECT arbitrarias introducidas por el usuario del programa y traten de forma automatizada el resultado obtenido en la consulta a la base de datos para su representaci n 26 Libreria de acceso a
22. Z2RDBDEL szV al Variable entera en la que se pasa el tama o en octetos que se debe asumir para los valores de columnas que se pasan a las funciones TJ2RDBUP y TJ2RDBDEL Argumentos de salida errC Variable de tipo entero en la que se recibe al retorno de la funci n un c digo indicativo del error ocurrido caso de haberse producido alguno 5 8 2 Ejemplos de uso de TJI2RDBSETSZ 5 8 2 1 C digo FORTRAN que usa la funci n TJ2RDBSETSZ Para este ejemplo se remite al lector a la secci n 5 7 2 1 C digo FORTRAN que usa la funci n TJ2RDBGETSZ donde se hace uso tambi n de la funci n TJ2RDBSETSZ 5 8 2 2 C digo C que usa la funci n TJZRDBSETSZ Para este ejemplo se remite al lector a la secci n 5 7 2 2 C digo C que usa la funci n TJ2RDBGETSZ en la cual se muestra un ejemplo de uso de la funci n TJ2RDBSETSZ desde un programa C 43 Libreria de acceso a la base de datos relacional de TJ II Guia del Usuario 6 Ap ndice 1 Bases de datos relacionales y consultas con SQL En este ap ndice se pretende tan s lo dar unas ideas b sicas sobre la organizaci n de informaci n en bases de datos relacionales as como unas ideas b sicas sobre la sintaxis de las sentencias SELECT de SQL para que los usuarios de esta librer a puedan hacer consultas sencillas a la base de datos Para una consulta detallada sobre este tema se sugiere visitar http www sgl org donde se encontrar n multitud de referencias
23. a RDB No se podr usar si el programa desde el que es llamada no tiene una terminal de control asociada AA E TJZRDBPERR Imprimir en pantalla el mensaje de error asociado a un cddigo de error de la libreria RDB TJ2RDBGETSZ Obtener los tama os que se usan para almacenar nombres y valores de columnas de la base de datos en llamadas a funciones TJ2RDBDEL y TJ2RDBUP TJ2RDBSETSZ Establecer los tama os que se usan para almacenar nombres y valores de columnas de la base de datos en llamadas a funciones TJ2RDBDEL y TJ2RDBUP Para facilitar la compatibilidad en diferentes plataformas con programas escritos en C C y FORTRAN sin tener que usar opciones de compilaci n especiales para modificar el modo de resoluci n de s mbolos por defecto todas las funciones se han declarado en cuatro formas MAYUSCULAS MAYUSCULAS minusculas y minusculas As por ejemplo para la funci n TJ2RDBGI se han definido cuatro funciones TJ2RDBGI TJ2RDBGL tj2rdbgi y tj2rdbgi_ Todas estas funciones hacen exactamente lo mismo de hecho tres de ellas llaman a la cuarta que es la que finalmente se ejecuta siempre A lo largo de este texto todas las referencias a una funci n se har n con su nombre en may sculas 19 Libreria de acceso a la base de datos relacional de TJ 11 Guia del Usuario 5 1 La funci n TJZRDBGI El prop sito de esta funci n es obtener informaci n de las vistas de la base de datos acces
24. a cliente de acceso a datos RDB del TJ 0 tj2RdbC dll t 2RdbC lib tj2RdbCMT dll t 2RdbCMT lib Este instalador ha sido 10 Libreria de acceso a la base de datos relacional de TJ II Guia del Usuario desarrollado con InstallShield y se podr obtener del GAD del TJ 1 o en la URL http tjiiws ciemat es Este proceso de instalaci n lo puede llevar a cabo el propio usuario en su ordenador personal con sistema operativo Windows Tras la instalaci n del software ser preciso pedir autorizaci n para inserci n de datos en la base de datos si se desea llevar a cabo ese tipo de operaciones desde un equipo personal ver 3 Organizaci n de la base de datos y pol tica de permisos de acceso 4 3 Configuraci n de la librer a La librer a cliente de acceso a datos RDB del TJ I requiere tan s lo del ajuste de tres par metros de configuraci n Se trata de variables de entorno que permiten modificar algunos aspectos de funcionamiento de la librer a cliente de acceso a datos Tabla 2 Variables de entorno para configuraci n de la librer a TJ2RDB_SERVER Se trata de una variable de entorno que permite establecer el servidor en el que la librer a cliente va a intentar ubicar el servidor RPC de la base de datos cuando se llame a una funci n de la librer a En general la librer a tal como es distribuida por el GAD del TJ IL conoce el servidor con el que debe conectar para buscar datos RDB sin embargo si se produce un tras
25. acceso a la base de datos relacional de TJ II Gu a del Usuario dan unas notas sobre la sintaxis de las sentencias de consulta a la base de datos que se pueden introducir usando esta funci n Esta funci n no permitir la inserci n o modificaci n de datos en la base de datos usando sentencias SQL del tipo INSERT UPDATE o DELETE por ejemplo Si se intenta usar una sentencia de este tipo la ejecuci n de la funci n fallar devolviendo un c digo de error indicativo de lo sucedido 5 2 1 Descripci n detallada de TJ2RDBS int TJ2RDBS char select int sizeSelect int sizeCNames int sizeTypes int sizeData char cNames char types char data int nRows int nCols int errC Argumentos de entrada select sizeSelect sizeCNames variable de tipo cadena de caracteres declarada en el programa que llama a esta funci n en la que se pasa a la funci n la consulta SQL para la base de datos variable de tipo entero en que se pasa a la funci n el tama o en octetos reservado en la memoria del programa que llama a esta funci n para almacenar la consulta SQL El valor de este argumento ha de ser menor o igual que el tama o reservado para la variable select en caso contrario pueden producirse invasiones de memoria o errores inesperados variable de tipo entero en la que se pasa a la funci n el tama o en octetos reservado en la memoria del programa que llama a esta funci n para alm
26. acenar los nombres de las columnas que se reciben como resultado de la consulta argumento cNames E valor de este argumento ha de ser menor o igual que el tama o reservado para la variable cNames en caso contrario pueden producirse invasiones de memoria o errores inesperados Iga Librer a de acceso a la base de datos relacional de TJ II Gu a del Usuario sizeTypes sizeData variable de tipo entero en la que se pasa a la funci n el tama o en octetos reservado en la memoria del programa que llama a esta funci n para almacenar los tipos de datos que contienen las columnas de datos obtenidos como resultado de la consulta a la base de datos argumento types El valor de este argumento ha de ser menor o igual que el tama o reservado para la variable types en caso contrario pueden producirse invasiones de memoria o errores inesperados variable de tipo entero en la que se pasa a la funci n el tama o en octetos reservado en la memoria del programa que llama a esta funci n para almacenar el resultado de la consulta El valor de este argumento ha de ser menor o igual que el tama o reservado para la variable data en caso contrario pueden producirse invasiones de memoria o errores inesperados Argumentos de salida cNames types data nRows nCols variable de tipo cadena de caracteres declarada en el programa que llama a esta funci n con tama o de al menos sizeCNames octetos En esta variable se reciben
27. ado del servidor se puedan modificar los c digos de error para contemplar nuevas situaciones y puedan estar disponibles para el cliente sin necesidad de recompilar ni el servidor ni la librer a cliente que puede estar instalada en diferentes plataformas cliente Por el contrario debido a esta conexi n con el servidor para consultar los mensajes asociados a c digos de errores producidos en el lado del servidor es posible que esta funci n no consiga obtener el mensaje de error asociado a uno de estos c digos de error si se produce un problema de conectividad entre el servidor y el cliente La funci n TJ2RDBGERR retorna 0 cuando consigue obtener el mensaje de error asociado al c digo recibido como argumento o l en caso de que se produzca alg n error que lo impida 3g Librer a de acceso a la base de datos relacional de TJ I1 Gu a del Usuario 5 6 2 Ejemplos de uso de TJ2RDBGERR 5 6 2 1 C digo FORTRAN que usa la funci n TJ2RDBGERR program TESTTJ2RDBGERR parameter tam 512 integer code ierr errc character 512 msg external TI2ZRDBGERR integer TI2ZRDBGERR write Introducir el codigo de error a consultar read 1 code errc TJ2RDBGERR code msg tam if errc eq O then write a i a a codigo code gt msg else write Se produjo un error al consultar el mensaje end if STOP END 5 6 2 2 C digo C que usa la funci n TJ2RDBGERR include lt stdio h gt extern int TJ2R
28. allada de la funci n TI2RDBGETSZ int TI2RDBGETSZ int szCol int szVal int errC Argumentos de entrada szCol Variable de tipo entero en la que se pasa el tamafio en octetos que se debe asumir para los nombres de columnas que se pasan a las funciones TJ2RDBUP y TJ2RDBDEL sz Val Variable de tipo entero en la que se pasa el tama o en octetos que se debe asumir para los valores de columnas que se pasan a las funciones TJ2RDBUP y TJZRDBDEL Argumentos de salida errC Variable de tipo entero en la que se recibe al retorno de la funci n un c digo indicativo del error ocurrido caso de haberse producido alguno 40 Libreria de acceso a la base de datos relacional de TJ 11 Gu a del Usuario 5 7 2 Ejemplos de uso de TI2ZRDBGETSZ 5 7 2 1 C digo FORTRAN que usa la funci n TIZRDBGETSZ PROGRAM testGetsz integer TI2RDBGETSZ TI2ZRDBSETSZ external TJ2RDBGETSZ TJ2RDBSETSZ integer szCols szVals errR errC errR TJ2RDBGETSZ szCols szVals errC if errC eq O then write Los tamanos actuales son write a i nombres de columnas szCols write a i valores de columnas szVals write Introducir los nuevos valores write nombres de columnas read 1 szCols write Valores read 1 szVals errR TJ2RDBSETSZ szCols szVals errC if errC eq O then szCols 0 szVals 0 errR TJ2RDBGETSZ szCols szVals errC if errC eq 0 then wri
29. datos como campos contiene la vista Cada una de estas l neas contiene el nombre del campo un car cter indicativo del tipo de datos que contiene ese campo por ejemplo I para datos de tipo entero F para datos de punto flotante C para caracteres Finalmente se recibe una cadena de caracteres con comentarios sobre el significado del campo en cuesti n Los datos que contiene la l nea de un campo est n separados por el car cter de tabulaci n TAB y la l nea termina con un car cter de nueva l nea c digo ASCII 13 La funci n devuelve un dato de tipo entero indicando si se ejecut con xito 0 o si ocurri alg n problema en la ejecuci n de la funci n distinto de cero En caso de error hay que consultar el valor de la variable errC que ser un c digo de error indicativo de lo sucedido Se puede obtener una descripci n del error a trav s del c digo de error usando las funciones TJ2RDBPERR y TJ2RDBGERR ver 5 5 La funci n TJ2RDBPERR y 5 6 La funci n TI2ZRDBGERR 5 1 2 Ejemplos de uso de TJ2RDBGI 5 1 2 1 C digo FORTRAN que usa la funci n TJ2RDBGI PROGRAM TESTRDBGI implicit none integer nData parameter nData 32767 character 1 data 1 nData integer nTabs errC erri err2 sizeData i integer TI2RDBPERR TI2RDBGI external TI2RDBPERR TI2RDBGI sizeData nData write Programa de prueba de GetInfo write Maximo numero de datos nData errl 1 errl TJ2RDBGI sizeData nTabs da
30. ede ocasionar una invasi n de memoria y resultados inesperados en la ejecuci n posterior del programa Al retorno de la funci n y supuesto que el proceso se ha llevado a cabo satisfactoriamente la variable data contendr una cadena de caracteres con la siguiente estructura TabNamel TAB nFields1 RETURN NameFieldi TAB TypeField1 TAB ComFieldi RETURN NameFieldN TAB TypeFieldN TAB ComFieldN RETURN TabName2 TAB nFields2 RETURN NameFieldi TAB TypeField1 TAB ComFieldi RETURN NameFieldN TAB TypeFieldN TAB ComFieldN RETURN TabNameM TAB nFieldsM RETURN NameFieldi TAB TypeField1 TAB ComField1 RETURN NameFieldN TAB TypeFieldN TAB ComFieldN RETURN Esta cadena de caracteres acabara en el caracter NULL y el significado de los elementos que la componen es el siguiente Libreria de acceso a la base de datos relacional de TJ 11 Gu a del Usuario TabNamel TabName2 son cadenas de caracteres conteniendo el nombre de las tablas vistas de la base de datos accesibles al usuario Para cada vista se recibe una l nea conteniendo el nombre de la vista el n mero de campos que contiene y una cadena de caracteres con comentarios generales acerca del contenido de la vista Estos datos vendr n separados por el car cter de tabulaci n TAB c digo ASCU 9 y al final vendr un car cter de retorno de carro A continuaci n de la l nea correspondiente a cada vista vendr n tantas l neas de
31. ejemplos de uso de las funciones TJ2RDBS TJ2RDBUP y TJ2RDBDEL en programas FORTRAN ejemplos en los que aparecen tambi n llamadas a la funci n TJZRDBPERR 5 5 2 2 C digo C que usa la funci n TJZRDBPERR Para este ejemplo se remite al lector a los ejemplos de uso de las funciones TJ2RDBS TJ2RDBUP y TJ2RDBDEL en programas C ejemplos en los que aparecen tambi n llamadas a la funci n TJZRDBPERR 5 6 La funci n TJ2RDBGERR La funci n TJ2RDBGERR permite obtener en una cadena de caracteres un mensaje descriptivo de una situaci n de error cuyo c digo de error se le pasa como argumento 5 6 1 Descripci n detallada de TJ2RDBGERR int TJZRDBGERR int ierrCo char msg int sizeMsg Argumentos de entrada iErrCo es un argumento de entrada de tipo entero que ha de ser declarado en el programa que llama a esta funci n En este argumento se le pasa a TJ2RDBGERR un c digo de error en general recibido tras la ejecuci n de otra funci n de la librer a t2RdbC msg es una cadena de caracteres que ha de ser declarada en el programa que llama a esta funci n En esta cadena de caracteres la funci n escribir un mensaje de error asociado con el c digo de error ierrCo Ha de ser declarada con una dimensi n suficiente para almacenar el mensaje de error esta dimensi n ha de ser mace Libreria de acceso a la base de datos relacional de TJ 11 Guia del Usuario mayor o igual que el valor que se pasa a la funci n en
32. en el programa principal en la que se indica a la funci n el tama o en octetos reservado en la memoria del programa que llama a esta funci n para recibir los datos resultado de la consulta Argumentos de salida nTabs es una variable de tipo entero declarada en el programa principal donde se recibir al retorno de la funci n el n mero de vistas de la base de datos que son accesibles al usuario 250 Libreria de acceso a la base de datos relacional de TJ II Gu a del Usuario data es una variable de tipo cadena de caracteres donde se recibe al retorno de la funci n el resultado de la consulta conteniendo los nombres de las vistas los nombres de los campos que contiene cada vista el tipo de dato de cada campo y un comentario sobre el significado del campo errC variable de tipo entero en la que se recibir al retorno de la funci n un c digo de error indicativo de los sucedido caso de que se produzca un error en la ejecuci n de la funci n La cadena de caracteres data ha de ser declarada en el programa principal con una dimensi n suficientemente grande como para almacenar el resultado esperado Su dimensi n ha de ser mayor o igual que el valor introducido en la variable sizeData Si la dimensi n fuera menor que la declarada en aquella variable puede darse el caso de que la funci n TJ2RDBGI escriba datos de retorno en posiciones de memoria fuera del espacio reservado para la variable data lo que pu
33. er a se han definido con el convenio de llamada est ndar Este detalle es necesario para poder llamar desde Visual Basic a funciones escritas en C Visual Basic no soporta el uso de las librer as con soporte para m ltiples hilos de ejecuci n por lo que para aplicaciones Visual Basic ser preciso usar la versi n de la librer a sin soporte para m ltiples hilos tj2RdbC dll Para usar las funciones de la librer a en Visual Basic ser preciso declararlas como funciones externas importadas de una librer a de la siguiente forma Public Declare Function TJ2RDBGI Lib tj2RdbC dil sizeData As Long _ nTabs As Long ByVal Data As String errC As Long As Long Se ha probado el uso de esta librer a en programas C en plataformas Windows usando el entorno de programaci n Microsoft Visual Studio 6 LS Libreria de acceso a la base de datos relacional de TJ II Gu a del Usuario Public Declare Function TJ2RDBS Lib tj2RdbC dil ByVal selectCmd _ As String sizeSel As Long sizeCNames As Long sizeTyp As Long _ sizeData As Long ByVal cNames As String ByVal types As String _ ByVal data As String nRows As Long nCols As Long err As Long As Long Public Declare Function TJ2RDBUP Lib tj2RdbC dil ByVal keyNamStr As String ByVal keyNambDStr As String ByVal datoStr As String ByVal _ datoDStr As String errC As Long As Long Public Declare Function TJ2RDBDEL Lib tj2RdbC dil ByVal keyNamStr As Strin
34. es que la librer a proporciona para el usuario est n dise adas de forma que se puedan usar tanto desde c digos C C como FORTRAN 4 2 Instalaci n de la librer a cliente La instalaci n de la librer a cliente de acceso a datos RDB del TJ II se realiza de diferente forma en plataformas UNIX o LINUX y en plataformas Windows Para plataformas UNIX se han desarrollado un conjunto de makefiles que permiten de forma sencilla y casi automatizada la compilaci n del c digo fuente de la librer a en las diferentes plataformas cliente de tipo UNIX ya soportadas ALPHA AXP UNIX CRAY UNICOS ORIGIN IRIS PowerPC Darwin Sparc Solaris e Intel LINUX Tras la compilaci n del c digo la instalaci n se completa con la copia de las librer a en un directorio de acceso p blico del sistema En general esta instalaci n se llevar a cabo por el personal del GAD del TJ I quien realizar la compilaci n si se trata de una plataforma cliente nueva o proporcionar la librer a compilada para la plataforma de destino si se trata de una de las plataformas ya soportadas Para el caso de sistemas operativos MS Windows 9x NT 2000 se ha desarrollado un programa instalador que carga en el sistema las librer as necesarias Este instalador carga tanto las librerias de ONC RPC pwrpe32 lib y pwrpe32 dll proporcionadas por Netbula http www netbula com y que son usadas en este desarrollo como las diferentes versiones para Windows de la libreri
35. g ByVal keyNamDStr As String ByVal datoStr As String ByVal _ datoDStr As String errC As Long As Long Public Declare Function TJ2RDBGERR Lib tj2RdbC dil errCo As Long _ ByVal ErrTxt As String size As Long As Long Llamada a las funciones de la librer a desde programas escritos en FORTRAN Para llamar a funciones escritas en C desde programas FORTRAN y debido a las diferencias entre C y FORTRAN en cuanto los convenios de llamada a funciones y paso de argumentos a estas es preciso proceder con cautela En el entorno de programaci n Visual Fortran para poder llamar a las funciones de la librer a es preciso compilar el programa con la opci n del compilador iface nomixed_str_len_arg Etzel99 Esta opci n permite que la longitud de las cadenas de caracteres que se pasan como argumentos a funciones no se pasen juste despu s de pasar la referencia a la cadena como se har a por defecto en el caso de este compilador sino al final de toda la lista de argumentos de la funci n como se hace en multitud de compiladores FORTRAN entre ellos 77 instalado en el servidor 8400 del sistema de adquisici n de datos del TJ IL El resto de particularidades a tener en cuenta cuando se llama a funciones C en programas FORTRAN quedan resueltas por el hecho de que las funciones se han 16 Libreria de acceso a la base de datos relacional de TJ II Guia del Usuario declarado con el convenio de llamada est ndar _ stdeall Adem
36. ibles al usuario El usuario no accede a las tablas de la base de datos propiamente dichas sino a determinadas vistas que aglutinan datos de diferentes tablas en las que se organiza internamente la informaci n de la base de datos ver 3 Organizaci n de la base de datos y pol tica de permisos de acceso Esto permite independizar el c digo de acceso a la base de datos de la estructura interna de aquella y a la vez simplificar las consultas SQL que el usuario necesita hacer para buscar informaci n no necesitando conocer a priori la estructura interna de tablas estructura que puede ser modificada Esta funci n est dise ada para facilitar el desarrollo de programas interactivos de consulta de la base de datos Usando esta funci n estos programas se pueden desarrollar de forma general e independiente de la estructura de la base de datos Con esta funci n se obtendr a informaci n de las vistas de la base de datos disponibles para el usuario as como de su contenido tipo de datos y significado A partir de esta informaci n b sica el programa puede presentar al usuario en un interfaz amigable opciones para la selecci n de los campos de la base de datos que desea visualizar as como elegir entre diferentes criterios de selecci n de los datos 5 1 1 Descripci n detallada de TJ2RDBGI int TI2RDBGI int sizeData int nTabs char data int errC Argumentos de entrada SizeData es una variable de tipo entero declarada
37. ibrer a de Acceso a la Base de Datos Relacional de TJ 11 Gu a del Usuario S nchez E Portas A B Vega J 52 pp 10 tbls 8 refs Resumen Para almacenar datos con significado f sico de las descargas de TJ II se ha desarrollado una base de datos relacional que complementa la base de datos brutos de TJ II ya existente Esta base de datos reside en un servidor con sistema operativo Windows 2000 Server y es administrada por el gestor SQL Server Se ha desarrollado una librer a de funciones que permite el acceso remoto a estos datos desde programas de usuario ejecut ndose en ordenadores conectados a las redes de rea local de TJ IL v a llamada a procedimientos remotos En este documento se proporciona una descripci n general de la base de datos relacional y su organizaci n as como una descripci n detallada de las funciones incluidas en la librer a y ejemplos de uso de estas funciones en programas escritos en lenguajes FORTRAN y C The TJ II Relational Database Access Library A User s Guide Sanchez E Portas A B Vega J 52 pp 10 tbls 8 refs Abstract A relational database has been developed to store data representing physical values from TJ H discharges This new database complements the existing TJ EI raw data database This database resides in a host computer running Windows 2000 Server operating system and it is managed by SQL Server A function library has been developed that permits remote access to the
38. idor El usuario s lo necesita enlazar su programa con esta librer a y llamar a las funciones que implementa para acceder a los datos Esta librer a est disponible para m ltiples plataformas cliente En esta secci n se describen los detalles acerca del uso de esta librer a y sus funciones 4 1 Plataformas cliente soportadas La librer a cliente se encuentra disponible para las siguientes plataformas arquitectura sistema operativo Tabla 1 Plataformas cliente soportadas ALPHA AXP UNIX Se ha desarrollado y probado esta librer a en True64 UNIX V 4 0 CRAY UNICOS Se ha probado el software en la versi n 10 0 de UNICOS ORIGIN IRIX Se ha probado el software en la versi n 6 5 11 de IRIX en la m quina jen50 del CIEMAT EL Libreria de acceso a la base de datos relacional de TJ II Gu a del Usuario 1 Power PC Darwin Se ha probado el software en la versi n 10 2 5 de Mac OS X Sparc Solaris Probada en Solaris V 4 0 Intel Linux Probada en Mandrake V 6 0 y RedHat 7 0 Intel Windows 95 98 NT Probada en MS Windows 95 Windows 98 y Windows 2000 NT 4 0 Windows 2000 SP3 Desde el punto de vista del usuario la plataforma en la que se instala la librer a es indiferente quedando enmascarados en la librer a la mayor a de los detalles que diferencian unas plataformas de otras y hacen en muchos casos dificil la integraci n de diferentes plataformas Las funcion
39. int nRows nCol errC mierror char select cNames types data szSel 1024 select NULL szTi 40960 cNames NULL szTy 40960 types NULL 28 Libreria de acceso a la base de datos relacional de TJ II Gu a del Usuario szDa 640000 data NULL if select char calloc size_t szSel sizeof char NULL printf Se produjo un error reservando memoria para la consulta n if cNames char calloc size_t szTi sizeof char NULL printf Se produjo un error reservando memoria para los titulos n free select if types char calloc size_t szTy sizeof char NULL printf Se produjo un error reservando memoria para los tipos n free select free cNames if data char calloc size_t szDa sizeof char NULL printf Se produjo un error reservando memoria para el resultado n free select free cNames free types printf Introducir la consulta n fflush stdout fflush stdin fgets select szSel stdin errC 0 mierror 0 mierror TJ2RDBS_ select amp szSel amp szTi amp szTy amp szDa cNames types data amp mRows amp nCol amp errC if mierror 0 printf Se produjo un error en la consulta n TJ2RDBPERR_ amp errC 5 3 La funci n TJ2RDBDEL Esta funci n permite eliminar un valor existente en un campo de la base de datos Para seleccionar el valor a elimi
40. la base de datos relacional de TJ II Guia del Usuario La funci n devuelve un dato de tipo entero para indicar si la operaci n se complet con xito 0 o si ocurri alg n error distinto de cero Nota Si el resultado de la consulta SELECT no cabe en el espacio reservado por el programa que llama a la funci n para recibir el resultado variable data la funci n devolver el resultado de la consulta rellenando la ltima fila que cabe completa en el espacio reservado en data devolviendo adem s un c digo de error que indica que no se reserv espacio suficiente en la variable data para recibir el resultado de la consulta 5 2 2 Ejemplos de uso de TJ2RDBS 5 2 2 1 Codigo FORTRAN que usa la funci n TJ2RDBS PROGRAM TESTRDBS implicit none integer nData sSelect sTypes sCNames parameter nData 32767 sSelect 2048 parameter sTypes 256 sCNames 2048 character 1 data 1 nData character 1 types 1 sTypes character 1 cNames i sCNames character 2048 select integer nTabs iErr erri err2 integer sizeData i integer TJ2RDBPERR TJ2RDBS integer sizeSelect sizeCNames sizeTypes integer nRows nCols external TJ2RDBPERR TJ2RDBS sizeData nData sizeCNames sCNames sizeTypes sTypes sizeSelect sSelect write Programa de prueba de Select write Maximo numero de datos nData octetos write Reservados para los tipos sTypes octetos write Reservados para los titul
41. lado de la base de datos RDB del TJ II a otro servidor cambiando el valor de esta variable de entorno poniendo el nombre del nuevo servidor no se requerir recompilar la librer a para seguir teniendo acceso a los datos TJ2RDB_TIMEOUTI1 Con esta variable de entorno se controla el tiempo en segundos que se espera respuesta del servidor tras una consulta usando las funciones de la librer a todas excepto TJ2RDBGI Por defecto este valor es 25 segundos En funci n de la calidad de la conectividad entre el cliente y el servidor de datos pueden ser recomendables diferentes valores en los tiempos de espera de respuesta por parte del servidor TJ2RDB_TIMEOUT2 Con esta variable de entorno se controla el tiempo en aiie Libreria de acceso a la base de datos relacional de TJ II Guia del Usuario segundos que se espera respuesta del servidor tras una consulta usando la funci n TJ2RDBGI de la librer a Por defecto este valor es 25 segundos En funci n de la calidad de la conectividad entre el cliente y el servidor de datos pueden ser recomendables diferentes valores en los tiempos de espera de respuesta por parte del servidor Para modificar el valor de estas variables de entorno han de seguirse los siguientes pasos dependiendo de la plataforma de la que se trate En sistemas de tipo UNIX o LINUX se procede como es habitual en estos sistemas Desde la l nea de comandos ejecutar PROMPT gt export TJ2RDB_
42. los t tulos de las columnas obtenidas como resultado de la consulta variable de tipo cadena de caracteres declarada en el programa que llama a esta funci n con tama o de al menos sizeTypes octetos En esta variable se reciben los tipos de datos de las columnas de datos obtenidas como resultado de la consulta variable de tipo cadena de caracteres declarada en el programa que llama a esta funci n con tama o de al menos sizeData octetos En esta variable se reciben las columnas de datos obtenidas como resultado de la consulta variable de tipo entero en la que se recibe el n mero de filas de datos obtenidas en la consulta variable de tipo entero en la que se recibe el n mero de columnas de datos obtenidas en la consulta e Libreria de acceso a la base de datos relacional de TJ II Gu a del Usuario errC variable de tipo entero en la que se recibe un c digo de error indicativo de lo sucedido en caso de que se produzca alg n error en la ejecuci n de la funci n El resultado de una consulta de este tipo SELECT es siempre una tabla de datos que se reciben en la variable data como una cadena de caracteres ASCII con una estructura de tabla con nCols columnas y nRows filas tal como la que sigue Dato1_1 TAB Dato1_2 TAB DATO1_N RETURN Dato2_1 TAB Dato2_2 TAB DATO2_N RETURN DatoM_1 TAB DatoM_2 TAB DATOM_N RETURN donde Datoi_j es el dato obtenido para la columna j y la fila i
43. ma general para el acceso a datos desde OTA Libreria de acceso a la base de datos relacional de TJ II Guia del Usuario programas escritos en C Usando esta librer a cada vez que se realiza un conexi n con el servidor ejecutando una de las funciones distribuidas en la librer a se genera un nuevo hilo de ejecuci n que concluye cuando finaliza la ejecuci n de la funci n La librer a tj2RdbC dll es una versi n de la librer a RDB sin soporte para m ltiples hilos de ejecuci n Es similar a la librer a tj2RdbCMT dll pero no se debe usar en aplicaciones que requieran soporte para m ltiples hilos de ejecuci n Se usa esta librer a por ejemplo en aplicaciones desarrolladas en Visual Basic 6 que no tiene soporte para m ltiples hilos de ejecuci n Llamada a las funciones de la librer a desde programas escritos en C C Desde programas C en plataformas Windows no hay problemas para usar las funciones de la librer a Estas funciones est n declaradas como funciones C con el convenio de llamada est ndar directiva __stdcall Estos son los nicos detalles que pueden ser necesarios para compilar un programa C o C Se puede usar tanto la librer a con soporte para m ltiples hilos tj2RdbCMT dll como la librer a sin soporte para m ltiples hilos tj2RdbC dll Llamada a las funciones de la librer a desde programas Visual Basic Para mayor compatibilidad y comodidad de uso las funciones exportadas por la libr
44. n TJ2RDBDEL y 5 4 La funci n TJ2RDBUP No se hace uso de los modos impl citos que los compiladores FORTRAN usan para pasar las longitudes de cadenas de caracteres a funciones sino que en el caso de que esas longitudes sean necesarias se prevee el uso de un argumento extra de tipo entero para enviar esta informaci n a la funci n La mayor a de las funciones de esta librer a comparten una estructura com n retornan un valor de tipo entero que sirve para indicar si la ejecuci n de la funci n se llev a cabo satisfactoriamente o no Todas tienen un argumento de salida de tipo entero en el que se retorna un c digo de error indicativo de lo sucedido en caso de que la ejecuci n de la funci n falle por alguna raz n La librer a RDB adem s de algunas otras de uso interno a la librer a para tareas intermedias contiene las siguientes funciones para el usuario 18 Libreria de acceso a la base de datos relacional de TJ II Gu a del Usuario Tabla 4 Funciones de la librer a Nombre de Cometido de la funci n funci n TJZRDBGI Obtener informaci n general del contenido de la base de datos accesible al usuario TJZRDBS Realizar consultas SELECT sobre la base de datos TJZRDBUP Realizar inserciones o modificaciones de datos en la base de datos relacional TJ2RDBDEL Eliminar datos de la base de datos relacional TJ2RDBGERR Obtener el mensaje de error asociado a un c digo de error de la librer
45. nar habr que especificar el nombre de la columna afectada por la supresi n del valor Para identificar la fila afectada hay que especificar un nombre de columna que se usa como clave y el valor de esta columna para el que se eliminar el dato en la columna afectada En general la columna que se usar como clave para identificar la fila afectada ser el campo NDES n mero de descarga de plasma de TJ II puesto que en esta base de datos la mayor a de datos est n asociados a una descarga de plasma de TJ IL 29 Libreria de acceso a la base de datos relacional de TJ II Guia del Usuario Todos los argumentos se han de pasar por referencia por compatibilidad con c digos FORTRAN 5 3 1 Descripci n detallada de TJ2ZRDBDEL int TJ2RDBDEL char keyNam char keyVal char fieNam int errC Argumentos de entrada keyNam keyVal colNam es una cadena de caracteres acabada en el caracter NULL indicando el nombre de la columna que se usa como clave para seleccionar la fila de la tabla afectada es una cadena de caracteres declarada en el programa que llama a esta funci n en la que se env a el valor de la columna clave para la que se quieren eliminar datos es una cadena de caracteres acabada en el car cter NULL declarada en el programa que llama a esta funci n en la que se identifica el nombre de la columna para la que se quiere eliminar un dato de la fila identificada por los valores de los argumento
46. ndiciones en una sentencia SELECT pueden incluir los operadores relacionales para establecer condiciones sobre campos Tabla 7 Operadores relacionales en SQL Operadores relacionales Y los siguientes operadores l gicos para concatenar condiciones Tabla 8 Operadores l gicos en SQL Operadores l gicos AND OR NOT Para establecer condiciones sobre cadenas de caracteres se puede usar el operador LIKE El uso de LIKE es tal como en este ejemplo SELECT campo3 FROM prueba WHERE campo3 LIKE Esto Esta sentencia nos devolver a Tabla 9 Resultado de una consulta de ejemplo 1 Campo3 Esto es un texto largo 46 Libreria de acceso a la base de datos relacional de TJ II Gu a del Usuario Esto es un texto corto El signo representa cualquier n mero de caracteres cualesquiera Los resultados de la consulta se pueden ordenar usando la sentencia ORDER BY Ejemplo SELECT campol campo4 FROM prueba ORDER BY campo4 Nos dara Tabla 10 Resultado de una consulta de ejemplo II Campo1 Campo4 0 0 1234 s e Libreria de acceso a la base de datos relacional de TJ II Gu a del Usuario 7 Referencias Bloomer92 J Bloomer Power Programming with RPC O Reilly Associates Inc 1992 Etzel99 M Etzel and K Dickinson Digital Visual Fortran Programmers Guide 1999 RPC88 RPC Remote Procedure Call Protocol Specification Version 2 DARPA RFC 1057 June 19
47. odos los datos deben ser de acceso p blico para lectura mientras que el acceso para escritura inserci n o modificaci n de datos debe ser restringido Los datos est n organizados internamente en la base de datos en forma de tablas Cada una de estas tablas contiene una serie de campos que se pueden identificar gr ficamente con columnas de una tabla Cada uno de los campos de una tabla puede contener datos de diferente tipo num ricos enteros num ricos de punto flotante cadenas de caracteres mientras que los datos de un campo columna son siempre del mismo tipo Diferentes campos de diferentes tablas pueden mantener relaciones que permitan hacer b squedas en varias tablas en base a las relaciones definidas entre campos Las b squedas de datos se pueden hacer usando el lengueje SQL Structured Query Language que proporciona gran flexibilidad para realizar b squedas complejas que son interpretadas y procesadas por el motor relacional MS SQL Server en este caso Con el fin de independizar la estructura interna de la base de datos y sus tablas del software de acceso por un lado y por otro de simplificar en la medida de lo posible las sentencias SQL que los usuarios necesiten enviar para buscar datos se ha optado por definir vistas Estas vistas son a todos los efectos iguales que otras tablas de la base de datos y est n organizadas en campos que representan magnitudes f sicas como aquellas El usuario s lo tiene acceso a las
48. os sCNames octetos write Reservados para la select sSelect octetos write write a Introducir la consulta read 5 a select White 4 SPER RAR EER ERASERARA EEE EA errl 1 errl TJ2RDBS select sizeSelect sizeCNames sizeTypes sizeData cNames types data nRows nCols Err err2 1 if errl ne 0 then a AY ae Libreria de acceso a la base de datos relacional de TJ II Gu a del Usuario err2 TJ2RDBPERR iErr else i 1 write Recibidas write nRows filas write nCols columnas write write TITULOS de las columnas write dowhile cNames i ne char 0 and i It sizeCNames write A1 cNames i i l write write write TIPOS de datos write f dowhile types i ne char 0 and i It sizeCNames write A1 types i i i 1 enddo i 1 write write o write DATOS write dowhile data i ne char 0 and i lt sizeData write A1 data i i i 1 enddo end if Maie Gra o a a AREA EA STOP END 5 2 2 2 C digo C que usa la funci n TJ2RDBS include lt stdio h gt include lt malloc h gt extern int TIZRDBS_ char int int int int char char char int int int extern int TJZRDBPERR_ int main int szSel szTi szTy szDa
49. rcione un nombre de usuario y una clave que permitan identificar al cliente El control de los accesos a la RDB se basa en la identificaci n del usuario en la m quina cliente desde la que se intenta acceder a la base de datos Es decir se conf a en el sistema de seguridad de la estaci n cliente desde la que se introducen datos en la que el usuario cliente ha tenido que abrir una sesi n de usuario Este mecanismo de identificaci n permite que la integraci n de datos se pueda realizar de forma automatizada desde c digos de an lisis por ejemplo siempre que con Ra Librer a de acceso a la base de datos relacional de TJ II Guia del Usuario anterioridad se haya solicitado permiso al GAD del TJ II para integrar datos en la RDB desde una estaci n cliente Antes de poder introducir datos en esta base de datos desde cualquier estaci n cliente ser preciso solicitar permiso de acceso al GAD del TJ II proporcionando informaci n sobre el usuario y grupo experimental del TJ H en nombre del cual se va a insertar datos en la RDB qu datos se pretende introducir desde qu estaci n o estaciones cliente de la red y con qu usuario o usuarios se har n las operaciones de adici n modificaci n de datos Se necesita uma autorizaci n para cada estaci n cliente y usuario que se pretenda utilizar para agregar o modificar un dato En caso de no tener esta autorizaci n las funciones de lectura de informaci n TJZ2RDBGI TJ2RDBS
50. re que sigue el modelo cliente servidor y usa ONC RPC Open Network Computing Remote Procedure Call para las comunicaciones entre cliente y servidor usando XDR eXternal Data Representation XDR87 para la transferencia de datos entre ambos Libreria de acceso a la base de datos relacional de TJ IJ Gu a del Usuario Un proceso servidor controla los accesos a la base de datos en el servidor Microsoft Windows que gestiona la base de datos y manipula la base de datos localmente usando una conexi n local ODBC Open Data Base Connectivity Los programas de usuario o del sistema de adquisici n de datos act an como clientes de este programa servidor enviando consultas al gestor de base de datos a trav s de este programa Para tener un programa cliente de la base de datos del TJ II se necesita enlazar el programa con la librer a de acceso a datos del TJ II y llamar a las rutinas que esta librer a desarrollada por el GAD proporciona En este documento se describe con detalle c mo enlazar un programa con esta librer a c mo usar las rutinas que proporciona as como algunos detalles relativos a los permisos de acceso a los datos de la base de datos relacional del TJ II Libreria de acceso a la base de datos relacional de TJ II Gu a del Usuario 3 Organizaci n de la base de datos y pol tica de permisos de acceso La politica general de permisos de acceso a los datos de la base de datos relacional del TJ IL es la siguiente t
51. relacionadas con el tema 6 1 Tablas En una base de datos relacional los datos se almacenan en tablas Se puede representar de forma aproximada una tabla de la base de datos de la siguiente forma Tabla prueba Tabla 5 Ejemplo de tabla de una base de datos Esto es un texto largo Esto es un texto corto Un texto 1234 Dentro de la tabla las columnas se conocen como campos de la tabla Los datos de una columna son siempre del mismo tipo pudiendo diferentes columnas almacenar datos de diferente tipo En el ejemplo el Campol es de tipo punto flotante mientras que el Campo2 es un texto y el Campo4 es de tipo entero Normalmente en cada tabla de la base de datos existe un campo que es clave primaria esto implica entre otras cosas que sus valores no se pueden repetir en diferentes filas de la tabla Normalmente la informaci n en una base de datos relacional se almacena en diferentes tablas para disminuir el espacio de disco requerido para guardar la informaci n y agilizar los accesos a la informaci n aiis Libreria de acceso a la base de datos relacional de TJ II Gu a del Usuario Diferentes tablas dentro de la base de datos pueden estar relacionadas entre si Las relaciones entre tablas se establecen a trav s de las claves primarias 6 2 Sintaxis b sica de las sentencias de consulta Para extraer informaci n de una base de datos relacional se usa el lenguaje SQL Se env an de alg
52. s keyNam y keyVal Argumentos de salida errC es una variable de tipo entero declarada en el programa principal en el que se recibe al retorno de la funci n un c digo de error indicativo de lo sucedido en caso de error Se puede obtener una descripci n de la situaci n asociada a un c digo de error usando la funci n TIZRDBGERR Como el resto de funciones retorna un n mero entero para indicar el xito o no de la operaci n sobre la base de datos Cuando se produce alg n error en la manipulaci n de la base de datos esta funci n retorna un valor diferente de cero y cero en caso contrario Notas 30 Libreria de acceso a la base de datos relacional de TJ II Guia del Usuario En los valores de la clave no se pueden usar meta caracteres como el para representar varios valores de clave Una llamada a esta funci n que contenga el car cter ie ed en el valor de keyVal fallar Tanto los nombres como los valores de las columnas de vistas de la base de datos se tratan para mayor generalidad como cadenas de caracteres por esta funci n aunque los valores de algunas columnas de la base de datos ser n datos num ricos enteros o de coma flotante Habr que hacer las oportunas conversiones de datos antes de llamar a esta funci n 5 3 2 Ejemplos de uso de TI2RDBDEL 5 3 2 1 C digo FORTRAN que usa la funci n TJI2RDBDEL PROGRAM TESTRDBDEL implicit none integer sC sV parameter sC
53. se data from user programs running in computers connected to TJ II local area networks via remote procedure cali In this document a general description of the database and its organization are provided Also given are a detailed description of the functions included in the library and examples of how to use these functions in computer programs written in the FORTRAN and C languages Tabla de contenidos No bo Audiencia VOD CULV OSes oncactsntieareciers nts caalexeileeyany eUracaids tat adem na a aa 3 Ns A O alien Eaa aa detainee 4 Organizaci n de la base de datos y politica de permisos de acceso ceeeeee 6 Librer a de acceso a la base de datos relacional cion ota 9 4 1 Plataformas cliente SOPOriad A ii 9 4 2 Instalaci n de la librer a cliente A til 10 4 3 Configuracion dela Da dia 11 4 4 Como enlazar un programa con la librer a RDB onnnnnnninnnonnnncccnnnnncnninnonos 13 B iciones dela ibrerta DBA ds 18 SI La tuncion TIZRDBG din 20 5 1 1 Descripci n detallada de TI2ZRDBO Lamina 20 5 1 2 Ejemplos de uso de 1 ROBO oa tan 22 52 La funci n TJ2ZRDB S A oda 23 5 2 1 Descripci n detallada de TIZRDBS ura rada 24 5 2 2 Ejemplos de uso de T IZRDBS id 27 50 La funcion 112RDBDBL td iaa 29 5 3 1 Descripci n detallada de TIZRDBD Pida 30 5 3 2 Ejemplos de uso de TIZRDBDE Lia aia acatar 31 5 4 La funci n NERDBUI Ps pea ae 32 5 4 1 Descripci n detallada de TI2Z2RDBUP comio ios 33 5 4 2 Ejemplos de uso de TIZ
54. ta errC White 4 4 FSS EFEREAASEE AS ERA EAE RAE if erri ne 0 then 0D Libreria de acceso a la base de datos relacional de TJ II Gu a del Usuario err2 TJ2RDBPERR errC else i 1 dowhile data i ne 0 and i lt sizeData write A1 data i i itl enddo end if Write FFE FEA TERRES ERE SEER EE EAE STOP END 5 1 2 2 C digo C que usa la funci n TJ2RDBGI include lt stdio h gt include lt malloc h gt extern int TJ2RDBGI_ int int char int int main char data int sizeData nTabs errC merrCor Se define el tama o en Octetos de datos que se pueden recibir sizeData 100000 data NULL if data char calloc size_t sizeData sizeof char NULL printf Se produjo un error reservando memoria para la informacion de la base de datos n return 0 Se envia la consulta al servidor de datos merrCor TJ2RDBGI_ amp sizeData amp nTabs data amp errC if merrCor O printf Se produjo un error en la consulta n TI2RDBPERR amp errC else printf s data fflush stdout t free data fflush stdin return 0 5 2 La funci n TJ2RDBS El prop sito de esta funci n es enviar una consulta al gestor de base de datos Permite enviar una consulta de tipo SELECT arbitraria y recibir el resultado en forma de tabla de datos En el Ap ndice 1 Bases de datos relacionales y consultas con SOL se s23 Libreria de
55. te Los tamanos actuales son write a i nombres de columnas szCols write a i valores de columnas szVals else write Se produjo un error en la consulta end if endif else write Se produjo un error en la consulta end if STOP END 5 7 2 2 C digo C que usa la funci n TJZRDBGETSZ include lt stdio h gt extern int TI2ZRDBGETSZ int int int extern int TI2ZRDBSETSZ int int int int main int szCols szVals errR errC errR 0 errR TJ2RDBGETSZ amp szCols amp szVals amp errC if erR 0 41 Libreria de acceso a la base de datos relacional de TJ II Gu a del Usuario printf Los tamanos actuales son n tpara nombres de columnas d n tpara valores d szCols szVals fflush stdout printf n nIntrocudir los nuevos valores npara los nombres de columnas scanf d amp szCols printf npara los valores scanf d amp szVals errR TJ2RDBSETSZ amp szCols amp szVals amp errC if errR 0 errR TJ2RDBGETSZ amp szCols amp szVals amp errC if errR 0 printf Los tamanos actuales son n tpara nombres de columnas d n tpara valores d szCols szVals fflush stdout ES t else printf Se produjo un error fflush stdout J 5 8 La funci n TJ2RDBSETSZ La funci n TJ2RDBSETSZ permite modificar el tama o reservado para almacenar los nombres y valores de columnas de la base de da
56. teres acabada en el car cter NULL indicando el nombre de la columna que se usa como clave para seleccionar la fila de la tabla afectada es una cadena de caracteres declarada en el programa que llama a esta funci n en la que se env a el valor de la columna clave para la que se quieren introducir datos es una cadena de caracteres acabada en el car cter NULL y declarada en el programa que llama a esta funci n en la que se identifica el nombre de la columna para la que se quiere modificar o a adir un dato en la fila identificada por los valores de los argumentos keyNam y keyVal es una cadena de caracteres acabada en el car cter NULL y declarada en el programa que llama a esta funci n en la que se identifica el valor que se quiere introducir modificar en la columna identificada por el argumento campo y la fila identificada por keyNam y keyVal Argumentos de salida 33 Libreria de acceso a la base de datos relacional de TJ II Gu a del Usuario errC es una variable de tipo entero declarada en el programa principal en la que se recibe al retorno de la funci n un c digo de error indicativo de lo sucedido en caso de error Se puede obtener una descripci n de la situaci n asociada a un c digo de error usando la funci n TI2RDBGERR Como el resto de funciones retorna un n mero entero para indicar el xito o no de la operaci n sobre la base de datos Cuando se produce alg n error en la manipulaci n
57. to nivel El objetivo de este documento es proporcionar la informaci n necesaria para el uso de las funciones que la librer a cliente de acceso a datos implementa No se pretende una descripci n exhaustiva desde un punto de vista t cnico del software desarrollado para el acceso a datos RDB del TJ II Una descripci n m s detallada de este software incluyendo la librer a cliente se hace en un documento aparte dirigido a los programadores encargados de su mantenimiento Comentarios sugerencias o correcciones al respecto de este documento al respecto de la librer a y su uso as como errores detectados en su funcionamiento pueden ser enviados a la direcci n de correo electr nico edi sanchez ciemat es Libreria de acceso a la base de datos relacional de TJ II Guia del Usuario 2 Introducci n Con el prop sito de almacenar datos con significado f sico sobre las descargas del TJ II se ha desarrollado una nueva base de datos Sanchez02 que complementa a la base de datos brutos ya existente Vega00 En esta base de datos se almacenan datos relacionados con los experimentos llevados a cabo en el dispositivo TJ I Se pretende que esta base de datos contenga datos con relevancia f sica independientes de los detalles locales de dise o de sistemas de diagn stico particulares Se trata de una base de datos relacional que reside en un servidor con sistema operativo Windows 2000 Server y es gestionada por Microsoft SQL Server
58. tos que se pasan a las funciones TJ2RDBUP y TJ2RDBDEL como argumentos de entrada Esas funciones suponen por defecto tama os de SIZE_COLUMN_DEF 32 octetos para los nombres de las columnas y SIZE_VALUE_DEF 32 octetos para almacenar los valores de las columnas Por medio de esta funci n se pueden especificar otros valores si es necesario de modo que s lo hay que especificar estos tama os una vez y no en cada llamada a una de las funciones TJ2RDBUP y TJ2RDBDEL Los valores establecidos por esta funci n se guardar n como variables de entorno del proceso de modo que s lo se necesita llamar a esta funci n una vez para ajustar los tama os necesarios por cada ejecuci n del programa cliente aunque despu s de la llamada a esta funci n se produzcan varias llamadas a las funciones TJ2RDBDEL y TJ2RDBUP La funci n TJ2RDBSETSZ devuelve un valor 0 si la ejecuci n se realiza con xito o un valor diferente de 0 si se produce alg n error durante su ejecuci n Todos los argumentos han de ser pasados a la funci n por referencia por compatibilidad con FORTRAN 42 Librer a de acceso a la base de datos relacional de TJ II Guia del Usuario 5 8 1 Descripci n detallada de la funci n TI2RDBSETSZ int TI2RDBSETSZ int szCol int szVal int errC Argumentos de entrada szCol Variable entera en la que se pasa el tamafio en octetos que se debe asumir para los nombres de columnas que se pasan a las funciones TJ2RDBUP y TJ
Download Pdf Manuals
Related Search
Related Contents
TROFOLIN DATABASE USER MANUAL Cradlepoint COR IBR350 Manual HP NVIDIA Quadro K4000 3GB 1st GFX NVIDIA Quadro 4000 3GB アロマミストポッドICHIRIN華美 USER MANUAL Library Manual Ch. 7 TECHNICAL PROCESSING bausch proxima star ii gebruikershandleiding X1 Ranging Module Pro Copyright © All rights reserved.
Failed to retrieve file