Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   crear campo graphic (https://www.clubdelphi.com/foros/showthread.php?t=17279)

JoseQ 03-01-2005 09:56:57

crear campo graphic
 
Buenas, estoy intentando crear una tabla de paradox desde delphi a traves de una sentencia sql, esta tabla contiene un campo Graphic, pero al ejecutar la query me devuelve un error de tipo de campo invalido, ¿ como puedo definir un campo Graphic o equivalente ? y un campo memo ?

Neftali [Germán.Estévez] 03-01-2005 12:03:52

¿Cómo es la sentencia que estás utilizando? ¿Estás utilizando parámetros?

JoseQ 03-01-2005 12:23:47

no los utilizo

Código SQL [-]
 size="1">
 
create table privfotost(
 
Nombre varchar (255),
 
size="1">imagen graphic,
 
size="1">Sel varchar (2),
 
Nuevo varchar (2),
 
Codpro integer,
 
Codnmo varchar(4),
 
Fecha date,
 
Anotaciones Blob(50),
 
Tipo integer,
 
Orden integer,
 
NumFoto integer,
 
Primary Key (Nombre)
 
); 
 

el campo anotaciones es un memo, el tipo memo, no lo acepta i el tipo blob si lo coge, aunk despues no me deja modificarlo

Neftali [Germán.Estévez] 03-01-2005 15:44:46

La tabla Biolife.db de la Base de Datos DBDEMOS que viene de muestra con el BDE tiene un campo GRAPHIC (de tipo Graphic) y un campo NOTES (de tipo MEMO) y se crea de la siguiente forma:

Código SQL [-]
 CREATE TABLE biolife.db (
    Species No FLOAT NULL,
    Category CHAR(15) NULL,
    Common_Name CHAR(30) NULL,
    Species Name CHAR(40) NULL,
    Length (cm) FLOAT NULL,
    Length_In FLOAT NULL,
    Notes MEMO NULL,
    Graphic GRAPHIC NULL
 )

JoseQ 03-01-2005 16:23:26

nada, me dice que invalid field type, i si ademas le pongo el null en la misma linea no lo coge, asink a alguien se le ocurre algo ?

JoseQ 03-01-2005 17:48:30

nada, al final lo e echo x codigo i iasta, un saludo

roman 03-01-2005 18:14:06

Código SQL [-]
create table biolife(
  notas blob(240, 1), /* memo */
  foto blob(240, 5)   /* graphic */
)

El Sql local no acepta modificadores como null en la definición de columnas.

// Saludos

JoseQ 03-01-2005 19:56:08

gracias roman, aunk ia lo ice x codigo en delphi, aunk se me presenta otro problema, al crear los campos x codigo cuando hay que definir el tipo de campo no existe el tipo ftnumer, existe el ftinteger, io tengo k acer una copia temporal de una tabla ia existente, cuyos campos numericos son tipo number y que si defino integer luego me falla en las relaciones, alguna sugerencia ?

roman 03-01-2005 20:22:16

Cita:

Empezado por JoseQ
alguna sugerencia ?

Sí. No te compliques la vida y usa una componente BatchMove para copiar la tabla:

Código Delphi [-]
Table2.TableName := Table1.TableName;

BatchMove1.Source := Table1; // tabla a copiar
BatchMove1.Destination := Table2; // para la copia
BatchMove1.Mode := batCopy;
BatchMove1.Execute;

De cualquier forma, para ver cómo debes definir los campos basta que conectes un TTable a la tabla origen, la actives y examines su propiedad FieldDefs.

// Saludos

marcoszorrilla 03-01-2005 21:43:26

A ver si con este ejemplo de la ayuda te vale:
Código SQL [-]
 CREATE TABLE "employee.db"
     (
     LAST_NAME CHAR(20),
     FIRST_NAME CHAR(15),
     SALARY NUMERIC(10,2),
     DEPT_NO SMALLINT,
     PRIMARY KEY(LAST_NAME, FIRST_NAME)
     )

Un Saludo.

JoseQ 04-01-2005 09:47:12

Cita:

Empezado por roman
Sí. No te compliques la vida y usa una componente BatchMove para copiar la tabla:

el problema esk la tabla de origen esta en uso x otro programa en el momento en que la necesito y si intento acceder a ella el otro programa se queda colgado, es una rayada, ia lo explique en otro post

JoseQ 04-01-2005 10:48:06

el problema viene de ahi todo, io ia tenia la tabla creada, i todo el programa montado sobre esa tabla practicamente, y cuando implemente el programa en el otro me daba conflictos con esa tabla, x eso ahora lo que estoi intentando es generar una tabla identica al principio del programa i cambiar la propiedad tablename del componente ttable x el nombre de la tabla temporal,
ia e conseguido hacer una copia exacta, x sentencia sql, despues le defino los indices secundarios, a traves de codigo delphi, xo al abrir la tabla en runtime me dice que falta un indice
uso este codigo(la clave principal la defino en la sentecia sql)
Código Delphi [-]
with dm.privfotos.IndexDefs do begin
      with AddIndexDef do begin
        Name := 'ordenfecha';
        Fields := 'orden;fecha';
      end;
      with AddIndexDef do begin
        Name := 'solocodpro';
        Fields := 'Codpro;Fecha';
      end;
      with AddIndexDef do begin
        Name := 'solofecha';
        Fields := 'Fecha;Orden';
      end;
  end;

me dice que falta el indice 'ordenfecha'


La franja horaria es GMT +2. Ahora son las 03:36:20.

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