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 y verificar campos en Paradox (https://www.clubdelphi.com/foros/showthread.php?t=39714)

David 27-01-2007 23:10:16

Crear y verificar campos en Paradox
 
Hola

Tengo una aplicación en la que voy a realizar ciertos cambios y requiero añadir dos campos en una base de datos de paradox . Para ello he pensado hacer una pequeña aplicación para que añada estos campos , se la hago ejecutar el cliente , y luego le mando el ejecutable .

Los campos que quiero añadir serian numericos , IVA y Retención . Pero lo que quiero es que esta aplicación compruebe antes de hacer el cambio que estos campos no existen .

El código seria así :

Añado una TQuery .

Código Delphi [-]

if CamposnoExisten then
begin
Query1.sql.add('Alter table Caja add Iva Numeric default 16');
Query1.ExecSQL;
Query1.Clear;
Query1.SqlAdd('Alter table Caja add Ret Numeric default 5');
Query1.ExecSQL;
End;

Mis dudas , quiero saber si el código es el correcto , quiero añadir 2 campos númericos con un valor por defecto . Y lo que no sé hacer es como comprobar si en una base de datos de paradox un campo existe o no.

Saludos

David 28-01-2007 14:56:49

Aunque nadie ha contestado , tengo otra duda , hay un campo que lo quiero variar , ahora es un String de extensión 5 (un A 5) , quiero convertirlo en un string 10 y también cambiar el valor del default .

Una manera de hacerlo seria borrar el campo y volverlo a añadir (todo por código) , pero claro perderia todos los datos , que tuviera guardado . Esto es un serio problema según veo yo.

Como se puede hacer esto .

marcoszorrilla 28-01-2007 19:14:43

Lo que dices es posible sin que se pierda nada:

1. Creas el nuevo campo dejando el anterior como estaba.
2. Actualizas el nuevo campo con los datos del antiguo.
3. Eliminas el campo antiguo.

Todo ésto puede hacerse utilizando SQL.

marcoszorrilla 28-01-2007 19:48:10

Un ejemplo de como saber si un campo existe o no:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
n:Integer;
bExiste:Boolean;
begin
bExiste:=False;
 For n:=0 to Query1.FieldCount -1 do
 begin
   If (query1.Fields[n].DisplayName) = 'Fecha' then
   bExiste:=True;
 end;

 if bExiste = True then
 ShowMessage('el campo existe no crearlo.');

end;

Un Saludo.

roman 28-01-2007 19:48:15

Aunque luego hay que repetir los pasos 1-3 para obtener el nombre original que hubiera tenido el campo. :)

// Saludos

David 28-01-2007 22:30:38

Lo que no me sale es la sentencia SQL .

funciona :

'Alter table Caja add iva smallint '

pero no funciona al añadir la palabra clave default :

'Alter table Caja add iva smallint default 16 '

alguien sabe como tengo que hacer para añadir un valor por defecto .


Saludos


La franja horaria es GMT +2. Ahora son las 16:39:24.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi