PDA

Ver la Versión Completa : Crear un nuevo campo en una tabla


torito
03-06-2003, 17:10:10
Saludos a Todos:

Tengo un problema, deseo adherir un nuevo campo a una tabla tipo dbf, he leido que existe esta opción "ALTER TABLE TABLA ADD NOMBRECAMPO TIPODATO()" pero me marca que la variable alter no fue definida, si alguien me pudiera auxiliar se lo agradeceria mucho, ya sea explicando este codigo o con otro....
de antemano muchas gracias
:rolleyes:

andres1569
03-06-2003, 18:46:12
Hola:

Esta pregunta encajaría mejor en el foro de SQL. ¿Metes el código en un TQuery? ¿le pones esas comillas que aparecen en tu mensaje?

Un saludo

torito
03-06-2003, 20:31:45
NO, no le pongo esas comillas, y por mas que trato me envia que no encuentra ese archivo, no se si alguien pudiera enviarme un pequeño ejemplo o el codigo correcto y se lo agradecere mucho, por su atención, muchas gracias

andres1569
03-06-2003, 20:39:25
Hola:

Si el error te indica que no encuentra ese archivo debe ser porque la propiedad DatabaseName de la Query no apunta al lugar indicado. Puedes probar también de indicarle el nombre de la tabla y su ubicación en la sentencia misma:

ALTER TABLE "d:\Datos\Clientes.dbf' ADD NUMCASAS SMALLINT

A ver si así pirula

Un saludo

torito
03-06-2003, 21:00:28
en si el error dice esto:
name not unique in this context. File or directory does not exist.

y se me hace raro ya que si le doy un select * from tabla si me lo hace correctamente, ¿no será que el query de delphi no soporta este comando??

jhonny
03-06-2003, 21:06:59
Ey torito...

Dinos una cosa, solo por curiosidad...

A donde estas apuntando la propiedad DatabaseName del Tquery?...que tienes alli escrito?

Solo es una corazonada;)

jhonny
03-06-2003, 21:09:30
Ahh y se me olvidaba...

Por supuesto que el Tquery de Delphi, si soporta este Comando SQL:cool: , yo personalmente lo he usado varias veces

torito
03-06-2003, 21:09:53
tengo escrito la carpeta donde se encuentra mi tabla
en este caso la carpeta se llama africa y mi tabla se llama africancountries, por lo tanto tengo en mi dataset
c:\africa

:D

torito
03-06-2003, 21:11:33
perdon el DatabaseName es igual a c:\africa

y lo que pasa es que cuando hago un select * me realiza bien todo pero si cambio a este comando para crear el dato me manda los errores

:(

jhonny
03-06-2003, 21:12:22
A que bien, Y otra pregunta...

Con que comando estas ejecutando el query?

Con Open?

o con ExecSql?

Si es con Open, trata de hacerlo Con ExecSql y nos cuentas que paso

torito
03-06-2003, 21:14:50
lo hacia con el ExecSql pero ni siquiera me deja activar el query, me manda el error asi que no puedo ejecutarlo

andres1569
03-06-2003, 21:15:59
Hola:

El error "name not unique in this context" indica que dicho campo ya existe en esa tabla (o un índice con ese mismo nombre).

Un Saludo

torito
03-06-2003, 21:19:23
no, no tengo ese campo en la tabla y le pongo otros nombres ficiticios que tampoco existen y, no se deja

torito
03-06-2003, 21:21:52
ahora ya me cambio el error

INVALID FIELD TYPE. FILE OR DIRECTORY DOES NOT EXIST.

y este es mi codigo:

alter table africancountries add limba varchar(10)

andres1569
03-06-2003, 21:56:29
Pues debe tratarse de un virus, porque va mutando de tipo de error. :) ; )

La sentencia me parece correcta. Lo siento pero no sé por donde ayudarte.

Un Saludo

torito
03-06-2003, 21:58:28
oye Andres, ya probe con el drop y si me borra bien el archivo, ya la cheque de virus, ahora si no se que pueda ser

delphi.com.ar
03-06-2003, 22:53:40
Posteado originalmente por torito
INVALID FIELD TYPE


No creo que en DBase exista el tipo VarChar, ¿porqué no pruebas con Char?

andres1569
03-06-2003, 23:21:03
Hola de nuevo:

Torito, sí tenías bastante razón en que da unos problemas muy extraños. Acabo de hacer pruebas con una tabla dBase desde el Database Desktop y me saltan esos errores INVALID FIELD TYPE aunque el tipo sea válido (SMALLINT, CHAR, VARCHAR ... los he probado todos).

Lo CURIOSO es que me ha funcionado cuando he escrito el nombre de la tabla entre comillas (quizás el intérprete de SQL local necesite saber el tipo de tabla para modificarla). Prueba esto:

alter table "africancountries.dbf" add limba varchar(10)

Saludos

andres1569
03-06-2003, 23:24:59
Hola de nuevo:

El truco está en que al ponerlo entre comillas le indiques la extensión .dbf, de esa forma sí se aclara. Si realizas la operación 2 veces , a la segunda te saltará el error: NAME NOT UNIQUE IN THIS CONTEXT, porque la primera se realizó con éxito.

Saludos

torito
04-06-2003, 01:05:13
SI!!!, esa era la razón, muchas gracias a todos, ya la tengo trabajando
:D :D :D :D :D :D :D