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