Error en el tercer intento de un cursor VFP
Buenas nuevas ingeniero, aquí con la pena preguntando anticipadamente a las otras consultas que le hago.
Y en esta ocasión es con los cursores, resulta lo siguiente y como ya bien mencionado tengo 2 tablas relación uno a muchos llave principal --> dbf_empresas(id_empresa) llaves regulares --> dbf_clientes(id_empresa,id_cliente,id_aval)
anteriormente en otros proyectos lo hacia de manera sencilla y a lo que me refiero sencilla es por dar un ejemplo con una tabla clientes y otra facturas uno a muchos relación entre ambas id_cliente la cual filtraba sin ninguna situación, ahora me la quireo complicar un poco mas y para mi al menos para mi esta algo enredoso y creo que las siguientes lineas de código si fueran una imagen parecerían un espagueti y ya veras por que lo digo
lo que deseo hacer es que al momento de añadir cliente no simplemente me reemplace el valor dbf_clientes.id_empresa con dbf_empresas.id_empresa para hacer la relación uno a muchos sino que también tenga un consecutivo de cada cliente es decir un ejemplo
si tengo
TABLA DBF_EMPRESA
id_empresa Empresa
1 PATITO
2 PATITO 2
TABLA DBF_CLIENTES
id_empresa id_cliente nomCliente
1 1 WOLVERINE
1 2 SUPERMAN
1 3 BATMAN
2 1 LA MUJER TARAVILLA
2 2 ROBIN
2 3 LINTERNA VERDE
2 4 EL CHAPULIN COLORADO :)
pero lo estoy intentando de la siguiente manera funcionando hasta los 2 primeros registros añadidos de cada empresa ya sea PATITO O PATITO 2 pues al tercer intento para añadir un nuevo registro sea cual sea de las empresas me manda error "index tag is not found"
hay alguna manera mas sencilla de hacer lo que intento hacer? O si este es el método que estoy haciendo mal en mi espagueti?
a continuación el código que emplee en un command button no sin antes hacerte mención que primeramente en un combobox esta la lista de las empresas para lo cual primeramente selecciono la empresa y ya luego clickeo en el command button para que haga lo siguiente:
&&Con la intención que me seleccione el ultimo registro filtrado por id_empresas con la finalidad que al añadirlo con el append from copie solo un registro
SELECT TOP 1 id_cliente FROM dbf_clientes ;
where id_empresa = dbf_empresas.id_empresa INTO CURSOR temporal NOFILTER READWRITE;
order by id_cliente DESC
&& selecciono el cursor temporal para indexarlo, ordenarlo por id_cliente y añadirle el valor consecutivo tomado de la tabla cliente filtrado por dbf_empresas.id_empresa
SELECT temporal
INDEX ON id_cliente to temporal
SET ORDER TO id_cliente
GO BOTTOM
INSERT INTO temporal (id_cliente);
values (id_cliente + 1)
RECNO()
&&ahora si selecciono nuevamente la tabla clientes y le añado lo que contiene el cursor
SELECT dbf_clientes
APPEND FROM DBF ("temporal")
replace dbf_clientes.id_empresa WITH dbf_empresas.id_empresa
SELECT temporal
USE IN ("temporal")
thisform.Refresh
y si funciona bien como te digo en los dos primeros intentos para añadir un registro al tercero el error me lo marca en la linea SET ORDER TO id_cliente
que hago?? Me podrías ayudar Ingeniero: te estaré enormemente agradecido.
saludos y bendiciones