![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Puedes hacerlo de dos maneras, o a lo borrico o de forma algo pulida
1.- Forma borrico: lanzas una query sobre esa tabla capturando errores 2.- A lo pulido Creo que todo componente Database tiene el método GetTableName que te pone en un TStrings las tablas que tiene el sistema Espero que te sirva
__________________
Si no tienes algo que decir más importante que el silencio, cállate |
|
#2
|
||||
|
||||
|
También puedes hacer los siguiente
Código:
with Query.SQL do begin
Add( 'CREATE TABLE IF NOT EXISTS facturas'+FormatDateTime('yyyy', Now)+'( ' );
Add( 'aqui insertas los campos que quieras' );
Add( 'y aqui insertas las claves que utilices' );
Add( '); ';
end;
Query.ExecSQL;
Saludos |
|
#3
|
||||
|
||||
|
¿No prefieres tener una sola tabla con un campo que identifique el año contable?
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
|
|
#4
|
|||
|
|||
|
Pues no, prefiero tener cada año contable por separado.
Gracias las respuestas anteriores puedo detectar si la tabla existe o no y, si no existe crearla (muchas gracias a los dos por las respuestas), pero ahora me surge una duda, y es la manera de crear mediante la sentencia sql el campo Id de las facturas, que es un campo autonumerico que se incrementa automaticamente con cada nuevo registro, que creo que es lo unico que me falta. El resto de campos no son problema, pero nunca antes habia tratado con campos autonumericos en SQL, asi que no se si existe algun tipo de datos definido para estos casos. Un saludo. |
|
#5
|
||||
|
||||
|
Ok, no es una práctica que recomiende. Por otro lado, si se puede averiguar, por ejemplo el Jet tiene métodos para recuperar una colección con los objetos de la base de datos... ¿Cómo te conectas a la base de datos?
PD: Accediendo directamente al diccionario de datos, podrías hacer algo así:
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
|
|
#6
|
|||
|
|||
|
La conexion la hago mediante Tquery y ADOQuery en cada momento, todos ellos configurados para que accedan mediante un alias creado en el sistema que apunta a la base de datos.
Ademas, todo esto viene a raiz de que trabajo sobre una base de datos ya creada que tenia un colega y a la que estoy haciendo una pequeña interfaz, pero se empeña en que no quiere variar NINGUN campo de la base de datos, ni añadir, ni eliminar ni modificar, asi que por eso trabajo con una tabla para cada año contable en lugar de añadir un campo que sea dicho año (esto no se lo cuentes a nadie, que es secreto ).En cuanto a lo que me comentas del diccionario de datos, no te entiendo bien (se nota que no soy precisamente una maquina de bases de datos en delphi xD). Si pudieses ser un poco mas explicito te lo agradeceria mucho. Un saludo. |
|
#7
|
||||
|
||||
|
Cita:
Cita:
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Última edición por delphi.com.ar fecha: 18-06-2004 a las 20:40:54. Razón: Corrección de las Etiquetas |
|
#8
|
||||
|
||||
|
Cita:
![]() Código:
with Query.SQL do begin
Add( 'CREATE TABLE IF NOT EXISTS facturas'+FormatDateTime('yyyy', Now)+'( ' );
Add( ' `id_registro` INT NOT NULL AUTO_INCREMENT, ' );
Add( ' ... resto de campos separador por comas ...' );
Add( ' PRIMARY KEY (`id_registro`)' );
Add( '); '); //----> final del añadir clausulas SQL
end;
Query.ExecSQL;
|
|
#9
|
|||
|
|||
|
Pues la clausula AUTO_INCREMENT no me la acepta como sintaxis valida de SQL para Create Table (recordemos que trabajamos con una base de datos access) en el query.
Un saludo |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|