Script para crear tablas
Hola a todos.
He creado un IBScript para crear unas tablas que no existe en mi aplicacion y para agrgar unos campos nuevos en tablas existentes.
El script se ejecuta perfectamente pero cuando abro la aplicación, parece que no se ha refrescado la base de datos y me da un error de tabla no existe o campo no existe y no me ejecuta el Update. Si salgo y vuelvo a entrar, las tablas estan ahí sin mayor problema. En la accion básica de la Transaction tengo TACommit, he probado con TACommitRetaining y tampoco se actualiza. Alguien me puede ayudar para hacer que se refresquen los datos en la base de datos? Si ejecuto el script desde IBConsole, no da ningun error pero las tablas tampoco se actualizan al momento tengo que salir y entrar. Saludos |
Seguramente lo que tienes que mirar es el programa, no la base de datos.
Por ejemplo, los campos persistentes de los datasets, las sentencias sql de los mismos, etc. |
Gracias Antonio.
Si despues del script hago un Base.Close; Base.Open; funciona bien, pero bajo mi poca experiencia me parece un poco "chapuza", no se... Saludos |
Cita:
Saludos. |
Por cierto, yo no soy partidario de poner los nombres de los campos entre comillas porque entonces estás obligado a ponerlo siempre tal y como lo has escrito entre comillas.
Sin embargo si lo pones sin comillas entonces podrás usarlo después como quieras. Me explico: Luego tienes que hacer:
Sin embargo, si lo declaras así: Entonces puedes luego poner como quieras, mayúsculas/minúsculas y sin comillas, ejemplo:
En fin, es más propicio a equivocarse de tu manera y hay que teclear más, las comillas, no olvidando mayúsculas/minúsculas, mientras que la forma que lo hago yo puedes olvidarte de todo eso :) |
Gracias a todos.
Si os parece que es correcto el close-open pues lo dejo asi. Lo de las comillas es porque yo tenia entendido que debia hacerse así, si puedo declarar los campos sin comillas pues en un futuro lo haré de este modo. (Hoy me acuesto sabiendo una cosa nueva, jejeje) Saludos |
Y otra duda con el IBScript, se puede crear una descripción de una tabla desde el script?
DESCRIBE TABLE BOM0002G 'Grup de Classificació'; Gracias de nuevo Josep |
Hola...
Al final de tu script, pon un commit;, con esto ya deberías poder ver tu tabla desde una transacción nueva (no desde una que ya esté abierta). Saludos... |
Posiblemente el fallo venía por aquí al tener la base de datos abierta esta no se actualizaba hasta que la cerraba y la volvía a abrir, por esto efectuo el close-open.
Si pongo un commit, se quedaba igual al tener la transaccion abierta, ya lo probé. SAludos |
Respecto al concejo de no usar los nombres entre comillas ("") que te dio casimiro te recomiendo que lo tomes y que lo apliques hacia atrás, además de no usar nombres de campos o tablas con acentos, eñes, separadas o algo que así... te lo digo por experiencia, yo "herede" una base de datos con varias de estas características que te comente (especialmente nombres entre "" con eñes o nombres compuestos, ej "usuarios por sede") y si que tuve bastantes problemas con eso... entre otras cosas y la que al final me hizo buscar todos los campos así fue que no podía hacer bkup (entonces solo hacia mis bkups con copiar y pegar del archivo .fdb con todo lo malo que esto puede traer) por culpa de unas tablas que tenían acentuación en el nombre de sus campos.
|
La franja horaria es GMT +2. Ahora son las 05:01:15. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi