Hola Javier,

Javier Aguado escribió:
Hola. Estoy comenzando a usar OpenOffice y no sé si es a esta dirección que
debo dirigir mi duda. Mi duda es la siguiente:
Tengo creada una tabla en Base. Cuando la edito -lo que en Access sería
Vista Diseño-, no veo como puedo crear un campo nuevo entre dos
anteriormente creados. Cuando selecciono una fila -que en modo edición es
como se llama a los campos de la tabla- y en el menú contextual pincho
insertar fila, me la pone al final de todas los campos que forman la tabla;
ni antes ni después del campo seleccionado.
Gracias de antemano por la ayuda.
Javier.

por defecto, nuevos campos se agregan tras los existentes, existe un
pedido para implementar esta característica (RFE 43528
http://www.openoffice.org/issues/show_bug.cgi?id=43528) pero es del 2005
y sólo tiene 2 votos.

Para lograr insertar un campo/columna en un tabla ANTES/DESPUÉS de uno
existente, debes emplear SQL, en la medida en que lo permita
la base de datos (el RDBMS). Las instrucciones SQL se ejecutan en el
diálogo del menú "Herramientas" - "SQL". Tras ejecutar el comando, debes
seleccionar el menú "Ver" - "Refrescar tablas".

Si estás empleando un archivo de OOo Base con la base de datos
incrustada/embebida dentro del archivo [es decir, el archivo ES a su vez
la base de datos], entonces el RDMS que empleas es HSQLDB
(http://hsqldb.org).

En este caso, para agregar un campo, debes emplear la instrucción ALTER
TABLE, cuya sintaxis encontrarás en
http://hsqldb.org/doc/guide/ch09.html#alter_table-section

ALTER TABLE <tablename> ADD [COLUMN] <columnname> Datatype
    [(columnSize[,precision])] [{DEFAULT <defaultValue> |
    GENERATED BY DEFAULT AS IDENTITY (START WITH <n>[, INCREMENT BY
<m>])}] |
    [[NOT] NULL] [IDENTITY] [PRIMARY KEY]
    [BEFORE <existingcolumn>];


En su versión más simple, para tu caso:

ALTER TABLE <nombre_de_la_tabla> ADD COLUMN <nombre_de_la_NUEVA_columna>
<tipo_de_datos_a_almacenar_en_el_campo> [(tamaño[,precisión])] BEFORE
<nombre_de_la_columna_existente>;

Ejemplo:

ALTER TABLE CLIENTES
        ADD COLUMN EMAIL_2 VARCHAR (50)
        BEFORE FECHA_NACIMIENTO;

Agrega en la tabla CLIENTES el nuevo campo EMAIL_2, antes del campo
FECHA_NACIMIENTO; el campo EMAIL_2 almacena datos de tipo VARCHAR, con
un tamaño de 50 caracteres.

Para evitar errores, puedes pasar los nombres de tablas, campos, etc.
entre comillas; pues si no empleas comillas el RDBMS interpreta todo en
mayúsculas (si escribes Mi_Tabla, interpretará MI_TABLA, y en tu base
datos debe existir una tabla llamada MI_TABLA).

Como consejo: prueba/practica en una copia de tu archivo, hasta que
logres insertar el campo tal como lo deseas.


Saludos
Ariel.

PD: aprovecho a agradecer a aquellos que se han preocupado por mi
ausencia en estas listas; y de paso pido disculpas por no haber podido
contestar personalmente; se me han juntado el trabajo, las vacaciones,
asuntos personales, tiempo libre dedicado a testear OOo
(http://www.openoffice.org/issues/show_bug.cgi?id=92508
http://dba.openoffice.org/servlets/BrowseList?list=dev&by=thread&from=2099228
); todo junto ha acumulado ca. 700 mails en mi casillas, que no podré
contestar.

--
Ariel Constenla-Haile
La Plata, Argentina

[EMAIL PROTECTED]
[EMAIL PROTECTED]

http://www.ArielConstenlaHaile.com.ar/ooo/



"Aus der Kriegsschule des Lebens
                - Was mich nicht umbringt,
        macht mich härter."
                Nietzsche Götzendämmerung, Sprüche und Pfeile, 8.





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Responder a