Muchas Gracias a todos por vuestras ideas y colaboraciones, con toda la información que he ido recopilando estos días he llegado a la conclusión que vamos a convivir con ficheros creados vía DDS y SQL, me estoy planteando si abandonamos las DDS y creamos los nuevos ficheros desde SQL, me pareció muy interesante y sorprendente el tema del rendimiento que salió en alguno de los mails.
Os mando un par de direcciones de internet que a mí me han sido muy útiles: IBM sobre la API QSQGNDDL. http://publib.boulder.ibm.com/html/as400/v5r1/ic2924/index.htm?info/apis/qsqgnddl.htm . Mandato GENDDL, fuentes para crear este mandato que permite recuperar el fuente SQL de distintos tipos de objetos. http://www.itjungle.com/mgo/mgo060502-story01.html De nuevo gracias a todos, Jordi. ----- Original Message ----- From: <forum.help400@combios.es> To: <forum.help400@combios.es> Sent: Monday, January 16, 2006 5:52 PM Subject: Re: Campo autoincremental, o DDS versus SQL. Hola Fernando: Tienes razón. Pero nosotros utilizamos un estándar antiguo, aunque últimamente se está poniendo de moda, de manera que en cada programa los ficheros se utilizan mediante LF, ya sea ficheros lógicos o Vistas SQL, de forma que solamente contengan los campos relacionados con ese programa. De esta forma, cuando añadimos o modificamos un campo a un fichero sólo es necesario considerar, modificar y recompilar los programas afectados y no es necesario preocuparse por el resto de ficheros lógicos ni programas. Saludos, --------------------------- Santiago Martí Dusen, S.A. --------------------------- Fernando Pérez <[EMAIL PROTECTED] m> Para Enviado por: forum.help400@combios.es forum.help400-adm cc [EMAIL PROTECTED] Asunto Re: Campo autoincremental, o DDS 16/01/2006 16:37 versus SQL. Por favor, responda a [EMAIL PROTECTED] bios.es A nosotros los índices nos funcionan bien con las funciones tradicionales de acceso a datos de RPG. A las tablas creadas con SQL (o sea, todas las nuevas), les creamos índices, y a las que ya exisitían con DDS's les seguimos creando lógicos. Eso sí, que yo sepa, no hay equivalente SQL a un lógico de unión ordenado. Saludos. Fernando Pérez Cerámica Saloni. Dpto. Sistemas Santiago G Martí escribió: Nosotros estamos cambiando poco a poco. Los ficheros físicos los creamos con SQL, porque tienen mucho mejor rendimiento que los creados con DDS. Sobre estas tablas creamos Ficheros Lógicos con DDS, para poder utilizarlos con las sentencias tradicionales de RPG CHAIN, READ etc. En los programas sólo utilizamos LF. Saludos, --------------------------- Santiago Martí Dusen, S.A. --------------------------- Vicente García <[EMAIL PROTECTED] om> Para Enviado por: forum.help400@combios.es forum.help400-adm cc [EMAIL PROTECTED] Asunto Re: Campo autoincremental 13/01/2006 09:18 Por favor, responda a [EMAIL PROTECTED] bios.es En cuanto a que no te gusta tener ficheros sin DDS, ¿es por que te gusta tener los fuentes de los ficheros de datos? Si es por eso con SQL sigues teniendo los fuentes tanto de la tabla en si como de índices, vistas, restricciones,... y la potencia que te da el SQL no tiene comparación a las DDS. Desde estos fuentes SQL con RUNSQLSTM creas las tablas, índices, vistas,... igual que ahora haces con CRTPF o CTRLF (opción 14 de PDM). Incluso es posible desde los ficheros que tienes ahora (incluso sin tener el fuente DDS) generar las sentencias DDL de SQL que les corresponden, mediante iSeries Navigator o mediante el API QSQGNDDL. Y de todas maneras se pueden tener conviviendo juntas tablas creadas desde DDS e ir creando las nuevas desde SQL. Saludos Vicente García Valero Departamento Sistemas Cerámica SALONI, S.A. Jordi Parera wrote: Hola Foro, Estoy intentado crear un fichero con un campo autoincremental vía DDS, creo que es imposible, me lo podrían confirmar. Mediante SQL ningún problema, aunque no me gusta excesivamente tener ficheros sin DDS. Me he encontrado con una situación como mínimo sorprendente, si creo un fichero vía SQL y posteriormente intento añadir un campo autoincremental con una sentencia de este estilo: ALTER TABLE Fichero ADD COLUMN campo INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE NO CYCLE NO ORDER CACHE 20) , me lo crea sin ningún problema. Pero si intento hacer lo mismo contra un fichero creado con DDS, sin ningún campo clave me da el siguiente error: Mensaje . . . . : Sólo se permite una columna ROWID o IDENTITY para la tabla Fichero de Biblioteca. Causa . . . . . : La columna "campo" no puede crearse en la tabla "Fichero" de "Biblioteca" ya que la columna *N ya se ha definido. Puede haber como máximo una columna IDENTITY y una columna ROWID que estén definidas en una tabla. Recuperación . : Elimine una de las columnas o bien cambie los atributos de modo que sólo una columna esté definida como ROWID o como una columna IDENTITY. Intente de nuevo la petición. Alguien me podría decir porque o si estoy haciendo algo incorrectamente, muchas gracias a todos por vuestra ayuda. __________________________________________________ Forum.HELP400 es un servicio más de NEWS/400. © Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es _____________________________________________________ Para darte de baja visita la siguente URL: http://coyote.combios.es/mailman/listinfo/forum.help400 __________________________________________________ Forum.HELP400 es un servicio más de NEWS/400. © Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es _____________________________________________________ Para darte de baja visita la siguente URL: http://coyote.combios.es/mailman/listinfo/forum.help400 (See attached file: fperez.vcf) __________________________________________________ Forum.HELP400 es un servicio más de NEWS/400. © Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es _____________________________________________________ Para darte de baja visita la siguente URL: http://coyote.combios.es/mailman/listinfo/forum.help400