Como puedo saber si tengo un campo en una base de datos.

Post Reply
colthop
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Como puedo saber si tengo un campo en una base de datos.

Post by colthop »

Hola amigos:

Tengo un problema ya que tengo un programa que tengo hace tiempo y o usan varias personas y estoy actualizando una de las opciones. Mi problema es el siguiente como puedo saber si una base de datos ya creada tiene un campo determinado por ejemplo en la base de CLIENTES el campo APELLIDOS y si no existe poder crearlo.

Un saludo

Carlos
Garbi
Posts: 250
Joined: Wed Nov 02, 2005 3:28 pm

Post by Garbi »

Con afields() obtienes _ del fichero:

LOCAL aNombresCampo, aTipos, aAnchuras, aDecimales
USE Ventas NEW
//
aNombresCampo := Ventas->(ARRAY(FCOUNT()))
aTipos := Ventas->(ARRAY(FCOUNT()))
aAnchuras := Ventas->(ARRAY(FCOUNT()))
aDecimales := Ventas->(ARRAY(FCOUNT()))
//
Ventas->(AFIELDS(aNombresCampo, aTipos, ;
aAnchuras, aDecimales))
Despues buscas si existe el campo en la tabla.

Despues con CREATE puedes crear el fichero o copiarlo , ya depende como lo prepares.
colthop
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Post by colthop »

Gracias Garbi, por tu ayuda lo que practicamente me faltaba era conseguir cual era el ultimo dato de un array y tu me lo has solucionado con fCount(), que me dice la cantidad de campos de un fichero, ya que hay una funcion que hace lo mismo que tu me indicas pero en una sola linea y muy facil, es

aFileds : DBStruct()

con esto consigues lo mismo.

Un saludo y gracias.
User avatar
Manuel Valdenebro
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Post by Manuel Valdenebro »

Asi es como yo lo hago:

IF FIELDPOS("APELLIDOS") = 0
// el campo no existe
FUNCION_ACTUALIZAR_ESTRUCTURA()
ENDI
Un saludo

Manuel
Post Reply