=
cursorsetprop('buffering',5,lctabla) && al comienzo=tableupdate
(1,.t.,lctabla) && al terminar, para descargar los cambiosb) Yo suelo crear una tabla auxiliar similar a la tabla que quiero actualizar, algo asi como en el entorno de datos crear el auxiliar
lctabla = 'C:\TEMPORALES\AUXCLIENTE'
sele clientes.* from clientes into dbf (lctabla) where .f.
append blank
De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de ricardo peña
Enviado el: Jueves, 17 de Marzo de 2011 05:43 a.m.
Para: publice...@googlegroups.com
Asunto: RE: [vfp] se infringe la unicidad del indice.. AYUDAAAA
-----Mensaje original-----
De: publice...@googlegroups.com
[mailto:publice...@googlegroups.com] En nombre de jcarlos
Enviado el: miércoles, 16 de marzo de 2011 10:03 p.m.
Para: Comunidad de Visual Foxpro en Español
Asunto: [vfp] se infringe la unicidad del indice.. AYUDAAAA
|
Si usas este código deberías sumarle al idcliente una unidad mas para que se diferencia de la que ya está.
debería ser así.
varcliente = val(thisform.idclientetxt.value) + 1 replace clientes.idcliente with varcliente |
replace clientes.nombre with thisform.nombretxt.value replace clientes.apaterno with thisform.apaternotxt.value replace clientes.amaterno with thisform.amaternotxt.value replace clientes.dir with thisform.dirtxt.value replace clientes.tel with thisform.teltxt.value thisform.grid1.refresh() |
Eso lo resuelves con integridad referencial, de tal manera que si el registro de un cliente tiene registros relacionados en otras tablas el mismo motor de base de datos no te va a permitir eliminarlo. En ese caso el siguiente paso sería aplicar lo que mencionas. Filtrar los índices es buena práctica, pues los hace más compactos al no haber referencia a los registros que no cumplen la condición.
De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de Irlandes 1960
Enviado el: jueves, 17 de marzo de 2011 02:40 p.m.
Para: publice...@googlegroups.com
Asunto: Re: [vfp] se infringe la unicidad del indice.. AYUDAAAA
Si estas con registros deleteados, antes que filtrar los indices te conviene visibilizar esos registros con el set deleted on/off
y nunca usar el deleted para eliminar un registro, sino condiciones de bajas con campos que sean a su vez indices, ya sea un campo logico o una fecha de baja.
en tus entornos de datos, cuando agregas la tabla al formulario, le indicas la condicion de filtro con empty(baja) para que en el formulario no se vean esos registros marcados como bajas.
Considera que cualquier registros incorporado en una tabla de configuracion o padron, como es el caso del cliente, puede tener una historia de registros en otras tablas, por ejemplo facturas y recibos, por lo cual no puede ser eliminado fisicamente, sino solo marcado como que esta en desuso.
es más, muchos de mis generadores de informes, en la pantalla de filtros, suelen tener un doble combo de seleccion, con los activos y con los dados de baja, ya que a veces justamente lo que se quiere encontrar es una historia de algo que ya no esta.
Suerte , y larga vida al zorro.
El desencadénate que da ese error es cuando se define dentro del la tabla una llave de índice primario o candidato eso es bueno si se desea controlar que no se entren o creen
Registros con un campo duplicado
para que eso no pase define en la tabla un campo ID de tipo integer y Autoincrement , ese si se puede definir como llave única y permitirá eu nunca tengas un registro duplicado
jairo
AHORA TENGO OTRO OTRO PROBLEMITA
CON EL SET DEFAULT TO
LO PASA ESQUE GUARDE CADA COSA EN UNA CARPETA (LA BD EN UNA CARPETA,
LAS TABLAS EN OTRA CARPETA, LOS FORM EN OTRA CARPETA.. ETC)
y no reconce la ruta que yo le estoy especificando
ES UN FORM DE ACCESO
este es el codigo del form_load:
set echo off
set talk off
set date to mdy
set default to C:\Archivos de programa\Microsoft Visual
Studio\Vfp98\PVUjed\Bd\tablasPV
public _idusuario,_usuario,_contraseña
_idusuario=space(5)
_usuario=space(20)
_contraseña=space(20)
select usuarios
use usuarios order tag idusuario
y este el de el boton aceptar (ACEPTARBTN):
*verificar informacion
select usuarios
use usuarios order tag idusuario
index on idusuario to idusuario
_idusuario=alltrim(thisform.idusuariotxt.value)
*busca un dato en un campo clave
set order to tag idusuario
seek _idusuario
* funcion para saber si la busque fue exitosa
if found()
use usuarios
_usuario=alltrim(thisform.usuariotxt.value)
seek _usuario
if found()
*verificar clave
_contraseña=alltrim(thisform.contraseñatxt.value)
if alltrim(usuarios.contraseña)=_contraseña
*dejar entrar al sistema
release thisform
else
wait window "clave incorrecta" nowait
endif
*no existe usuario
else
wait window "usuario no existe" nowait
endif
*no existe idusuario
else
wait window "no exite id de usuario" nowait
endif
++++++++++++++++++++++++++++++++++++++++
YASE QUE ESTOY ABUSANDO PERO ME ES MUY DIFICIL ENTENDER SI EL PROFE NO
EXPLICA NADA, AUNQ ESTOY APRENDIENDO MEJOR YO SOLO.
GRACIASS... ESPERO ME AYUDEN
UN TUTO DE ABM EN FOX?????
El 17/03/11, Jairo Miranda <ja...@vidapanama.com> escribió:
> thisform.dirtxt.value replace clientes.tel <http://clientes.tel/> with
Carlos que bueno seria que ademas de dar GRACIAAAAsssss nos contaras como lo
solucinaste.????????
Ivan Martinez von Halle
>>>-----Mensaje original-----
>>>De: publice...@googlegroups.com
>>>[mailto:publice...@googlegroups.com] En nombre de juan
>>>carlos caballero huerta
>>>Enviado el: Jueves, 17 de Marzo de 2011 08:06 p.m.