FoxPro/Visual FoxPro - UPDATE, Ayuda, Jose Gamboa o Quien Pueda!!!!

   
Vista:

UPDATE, Ayuda, Jose Gamboa o Quien Pueda!!!!

Publicado por Pablo (argentina) (433 intervenciones) el 09/06/2009 19:23:34
Hola Amigo Jose o Quien este leyendo y me pueda ayudar. Otra vez yo con mis problemas en SQL con las instrucciones de UPDATE y ahora con DELETE FROM.

Le cuento por las dudas, tengo un grid con un campo logico que Valido por T o F el pago o no de facturas, para todo esto ya hice el select y todo los demas en lo que se refiere a filtrado

Bueno despues que selecciono las facturas que me pagaron que pueden ser varias hago esto

UPDATE altashabi SET pagada = .T. WHERE sinaplicar.solicitud = altashabi.solicitud

Altashabi es la tabla principal de clientes
SinAplicar es el cursor que creo con el Select en el INIT

Bueno despues para refresacar el grid y que me queden solamente las que estan en F hago esto

DELETE FROM sinaplicar WHERE PAGADA = .T.
thisform.grid1.Refresh()

Pero siempre me saca del grid la ultima que registre como T y no todas las marcadas ¿alguna idea?

POR LO QUE ESTUVE PROBANDO, LO QUE HAGO MAL Y POR ESO NO ME GRABA TODAS LAS QUE SELECCIONE ES QUE ESTOY UTILIZANO MAL EL UPDATE.

Me pueden decir como seria el codigo para que me valide todas las que seleccione como T

Yo probe pondiendo Update altashab set pagada = .T. from sin aplicar where sinaplicar.solicitud = Altashabi.solicitud.

Pero ese update que uso asi me pone en T las que no quiero tambien.

O sea, Estoy re perdido con el tema del Update y creo que debe ser mas sancillo de lo que creo.

Alquien me puede decir como hago el Update para que me grabe todas las que seleccione en la tabla Altashabi desde el cursor Sinaplicar y se refresque el grid co las que quedaron en F.

Todo me parecia que funcionaba bien, hasta que mire bien en el grid, y solamente me esta GUARDANDO una sola de todos las que puse en T en el grid y no varias como seleccione , ¿me explico?, en como que el UPDATE no funionara para todas o no se que esta mal, ya lo comprobe haciendo un browse a la tabla y me guarda siempre el ULTIMO que selecciono. ¿porque sera?

Arriba ya me explique un poco mejor como es el tema.

Si me pueden ayudar Por Favor!!!!!!!!!!!, se los agradezco mucho

Pablo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Mauricio

UPDATE, Ayuda, Jose Gamboa o Quien Pueda!!!!

Publicado por Mauricio (1368 intervenciones) el 09/06/2009 19:32:49
Pablo, sucede que el currsor te queda en el ultimo, podrias usar un truco, al primero que actualizas guardas el no. de registro en una variable y cuando hayas terminado de modificar el grid y vas al boton de actualizar, envialo al primer registro que modifiicaste.....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:UPDATE, Ayuda, Jose Gamboa o Quien Pueda!!!!

Publicado por Pablo (Argentina) (433 intervenciones) el 09/06/2009 21:12:45
Hola mauricio o jose a al que este leyendo, perdon por no saber bien a quien dirigirme.

Mauricio, disculpa mi ignorancia pero no se como hacer lo que decis, no me doy cuenta. Asi que hice esto y funciona pero resulta que ahora al reves, jajajajaja, me guarda todo menos el ultimo que marque. En La tabla queda bien o sea esta grabado, pero en el refresco del grid no lo saca o sea salgo de una y me meto en otra.

scan for pagada = .T.
update altashabi set pagada = .T. where sinaplicar.solicitud = altashabi.solicitud
endscan
delete from sinaplicar for pagada = .F.
thisform.grid1.refresh

No se que hacer. ¿Alguna otra idea?

Muchas Gracias por el aguante y la ayuda

Pablo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:UPDATE, Ayuda, Jose Gamboa o Quien Pueda!!!!

Publicado por Mario (199 intervenciones) el 09/06/2009 21:38:42
Fijate si funciona agregando a cada campo su tabla correspondiente, es decir, donde dice .... set pagada = ..... escribí ... set tabla.pagada=..... ya que si los campos de las tablas que estás usando se llaman igual puede ser que haya problemas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauricio

UPDATE, Ayuda, Jose Gamboa o Quien Pueda!!!!

Publicado por Mauricio (1368 intervenciones) el 09/06/2009 21:57:01
Puedes probar algo asi, pero tienes que cambiar algo de las preguntas, te lo muestro:

vsolicitud = sinaplicar.solicitud && o lo que haga unico el SCAN, porque puede suceder && en el proceso que pones antes que no todas tienen T por lo que el SCAN se && sale al encontrar una con F
scan for no_factura = vfactura
IF pagada && por ser logico, aca pregunta si es T
update altashabi set pagada = .T. where sinaplicar.solicitud = altashabi.solicitud
ENDIF
endscan
delete from sinaplicar for pagada = .F.
thisform.grid1.refresh
*
Prueba asi Pablo y si no ya veremos que se puede hacer.....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:UPDATE, Ayuda, Jose Gamboa o Quien Pueda!!!!

Publicado por Pablo (Argentina) (433 intervenciones) el 09/06/2009 23:14:45
mauricio, Mira aparentemente funciono!!!!!!, te explico el porque por ahi yo me olvide de postear algo, yo cuando hago el select en el init del form, lo hago para que en el grid me muestre entre determinadas fechas no se si influye o no pero se ve que ahora anda o no se todo lo que hicce fue

scan for pagada = .T.
update ......
endscan
delete from.....
thisform.grid1.refresh

parece que anda porque me graba los datos y refesca el grid aunque no me quedo seguro asi que voy a seguir probando y cualquier cosa te consulto nuevamente.

Muchas Gracias por el aguante y la ayuda brindada.

Pablo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:UPDATE, Ayuda, Jose Gamboa o Quien Pueda!!!!

Publicado por Jose Gamboa (33 intervenciones) el 10/06/2009 23:44:06
Disculpame por no haberte podido ayudar con este tema
y que gusto que Mauricio ya te ha ayudado, justamente la instruccon que te comentaba en algun post anterior era esa SCAN sobre la tabla secundaria
Mil disculpas apenas algunos dias que visitaba el foro y empeze a hechar la mano a algunos y pues no habia entrado hasta hoy.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:UPDATE, Ayuda, Jose Gamboa o Quien Pueda!!!!

Publicado por Pablo (Argentina) (433 intervenciones) el 11/06/2009 00:34:24
Gracias Igual jose, tu ayuda me sirvio para darme cuenta de usar el scan, igual si tenias otra forma publicala que siempre por ahi sino me es util a mi por ahi a alguien mas siempre le sirve.

Gracias por todo

Pablo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar