Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Ayuda para crear tabla con ado (https://www.clubdelphi.com/foros/showthread.php?t=86329)

grandzon 21-07-2014 07:32:08

Ayuda para crear tabla con ado
 
Hola.

Un saludo a todos, soy nuevo en el foro, inicié con la programación en delphi puesto que pienso que su lenguaje es muy flexible y agiliza mucho el desarrollo de aplicaciones. Mis motivaciones para registrarme en la página es que leí usuarios con algunas dudas en las que puedo ayudar, no soy un experto pero en algunos asuntos básicos de programación puedo ayudar, otra motivación fue ver que hay muchos expertos aquí y tengo un problemilla en el que quizá puedan darme una mano:

estoy usando adocommand para crear una tabla en tiempo de ejecución en access, necesito crear tablas con nombres que no se repitan, como puede haber varias transacciones en un mismo día, pero no de la misma persona, he pensado en crear una tabla con el nombre de la persona y la fecha de la transacción tipo ana_10/10/2014 para lo que uso el siguiente código:

Código Delphi [-]
ADOCOMMAND1.CommandText:='CREATE TABLE '+FORM2.Edit1.Text+'_'+DATETOSTR(DATETIMEPICKER2.DateTime)+' ( '+
      'CODIGO CHAR(10),'+
      'CUOTA_ORDEN CHAR(20),'+
      'CUOTA_MONTO CHAR(20),'+
      'CUOTA_CONDICION CHAR(20),'+
      'PRIMARY KEY (CODIGO)'+
      ');';
ADOCOMMAND1.Execute;

pero al ejecutar la aplicación me salta el error: syntax error in create table statement... sería alguien tan amable de decirme qué estoy haciendo mal y qué hacer para resolverlo, gracias de antemano.

olbeup 21-07-2014 11:21:34

Cita:

Empezado por grandzon (Mensaje 479210)
Hola.

Un saludo a todos, soy nuevo en el foro, inicié con la programación en delphi puesto que pienso que su lenguaje es muy flexible y agiliza mucho el desarrollo de aplicaciones. Mis motivaciones para registrarme en la página es que leí usuarios con algunas dudas en las que puedo ayudar, no soy un experto pero en algunos asuntos básicos de programación puedo ayudar, otra motivación fue ver que hay muchos expertos aquí y tengo un problemilla en el que quizá puedan darme una mano:

estoy usando adocommand para crear una tabla en tiempo de ejecución en access, necesito crear tablas con nombres que no se repitan, como puede haber varias transacciones en un mismo día, pero no de la misma persona, he pensado en crear una tabla con el nombre de la persona y la fecha de la transacción tipo ana_10/10/2014 para lo que uso el siguiente código:

Código Delphi [-]
ADOCOMMAND1.CommandText:='CREATE TABLE '+FORM2.Edit1.Text+'_'+DATETOSTR(DATETIMEPICKER2.DateTime)+' ( '+
      'CODIGO CHAR(10),'+
      'CUOTA_ORDEN CHAR(20),'+
      'CUOTA_MONTO CHAR(20),'+
      'CUOTA_CONDICION CHAR(20),'+
      'PRIMARY KEY (CODIGO)'+
      ');';
ADOCOMMAND1.Execute;

pero al ejecutar la aplicación me salta el error: syntax error in create table statement... sería alguien tan amable de decirme qué estoy haciendo mal y qué hacer para resolverlo, gracias de antemano.

Hola grandzon,

No puedes usar signos especiales en la creación de una tabla que son /*-+, etc, lo que puedes hacer es en vez de "/" usa "_" que la tabla se quedaría como: ana_10_10_2014

Código Delphi [-]
...
with ADOCommand1 do
begin
  CommandText :=
    'CREATE TABLE ' + Form2.Edit1.Text + FormatDateTime('_dd_mm_yyyy', DateTimePicker2.DateTime) +
      '(' +
        'CODIGO           CHAR(10)' +
        ',CUOTA_ORDEN     CHAR(20)' +
        ',CUOTA_MONTO     CHAR(20)' +
        ',CUOTA_CONDICION CHAR(20)' +
        ',PRIMARY KEY (CODIGO)' +
      ')';

  Execute;
end;
Un saludo.

Casimiro Notevi 22-07-2014 00:57:49

Y si hay otra ana, ¿qué haces? ;)
Piensa bien la estructura de la base de datos, es lo principal, es como los cimientos de un edificio, si no están bien... el edificio terminará por caer.

grandzon 22-07-2014 02:42:53

Gracias por las explicaciones y los consejos chicos, los tomaré muy en cuenta, pues me doy cuenta que aún me quedan cosas por acotar :)

ozsWizzard 22-07-2014 09:51:57

Yo, como consejo, te diría que eso de ce crear tablas dinámicamente queda "muy chulo" pero no lo veo práctico, aunque pueda parecerlo.

Considero que es mejor crearse 4 tablas:
  1. Tabla de tipos de tablas
  2. Tabla de campos por tipo de tabla
  3. Tabla de "Tablas"
  4. Tabla de valores de campos

En caso de que los campos siempre sean los mismos, se puede hacer con sólo dos tabas, las dos de abajo y esquematizadas de otra forma.

De todas formas, esto es sólo una forma de verlo.

Un saludo


La franja horaria es GMT +2. Ahora son las 11:19:16.

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