SoloCodigo

Programación General => Visual FoxPro => Mensaje iniciado por: Widark en Jueves 18 de Agosto de 2005, 23:26

Título: Tableupdate() Y Tablerevert()
Publicado por: Widark en Jueves 18 de Agosto de 2005, 23:26
Como les baila :D?

Sucede lo siguiente, carga en tiempo de ejecucion una tabla cualquiera (la que selecciona el usuario)  así que no tengo una tabla en el Dataenvironment. Cuando quiero utilizar Tableupdate() o TableRevert() aparece un mensaje de error algo con el buffer. Este es el código que utilizo para abrir la tabla:
Código: Text
  1. CLOSE DATABASES
  2. strRuta = GETFILE('DBF','','Abrir',0,'Conectar con...')
  3. IF LEN(strRuta) > 0
  4.   strTabla = '"' + strRuta + '"'
  5.   USE &strTabla IN 0
  6.   PosicionB = RATC("\",strRuta) && Posicion del primer backslash de derecha a izquierda
  7.   Extencion = LEN(ALLTRIM(strRuta)) - (PosicionB + 4) && Para quitar la extencion con su punto
  8.   strTablaActiva = SUBSTR(strRuta,PosicionB + 1,Extencion)
  9.   &strTablaActiva.BufferMode = 1
  10.   ThisForm.chkAparece.ControlSource = strTablaActiva + ".aparece"
  11.   ThisForm.txtEtiqueta.ControlSource = strTablaActiva + ".etiqueta"
  12.   ThisForm.txtNomcampo.ControlSource = strTablaActiva + ".nomcampo"
  13.   ThisForm.txtTamcampo.ControlSource = strTablaActiva + ".tamcampo"
  14.   ThisForm.txtTipcampo.ControlSource = strTablaActiva + ".tipocampo"
  15.   ThisForm.txtposicion.ControlSource = strTablaActiva + ".posicion"
  16.   ThisForm.cmbTipcontrol.ControlSource = strTablaActiva + ".Tipcontrol"
  17.   ThisForm.edtDescripcio.ControlSource = strTablaActiva + ".descripcio"
  18.   ThisForm.lstCampos.RowSource = "nomcampo"
  19.   ThisForm.lstCampos.RowSourceType = 6
  20.   ThisForm.lstCampos.ControlSource = strTablaActiva
  21.  
  22.   ThisForm.cmdCargar.Enabled = .T.
  23. ENDIF
  24.  
La pregunta es como hago para que pueda utilizar TableUpdate() y TableRevert()?. Algun comentario o sugerencia se los agradeceria mucho.
Título: Re: Tableupdate() Y Tablerevert()
Publicado por: scorpio en Viernes 19 de Agosto de 2005, 16:10
si no me equivoco en el dataeviroment la opcion 1 y cero no te almacena tablas temporales para lo que quieres hacer por lo que en sus proiedades en la opcion buffermodeOverrrite tienes que seleccionar la opcion 2 o 4

haber si funciona....suerte....
Título: Re: Tableupdate() Y Tablerevert()
Publicado por: Widark en Viernes 19 de Agosto de 2005, 17:43
Gracias por tu respuesta scorpio, lo cambie a 2 pero me sigue apareciendo el mismo error: "Function requires row or table buffering mode. Campos" (Campos es la tabla).
Título: Re: Tableupdate() Y Tablerevert()
Publicado por: scorpio en Viernes 19 de Agosto de 2005, 19:12
esta instruccion te regresa el buffer a modo 1

&strTablaActiva.BufferMode = 1

pon el buffer en modo 4 y comenta la instruccion

&strTablaActiva.BufferMode = 1

o si lo prefieres en lugar de 1 ponle 4

&strTablaActiva.BufferMode = 4
Título: Re: Tableupdate() Y Tablerevert()
Publicado por: Widark en Viernes 19 de Agosto de 2005, 22:43
Qu más scorpio?

con ninguna de las opciones funciona sigue apareciendo el mismo mensaje de error. Gracias por tu intencion.
Título: Re: Tableupdate() Y Tablerevert()
Publicado por: el capo en Sábado 20 de Agosto de 2005, 01:51
DEBES PONER EL  MODO DE BUFFER  EN 5
PRUEBA ASI QUE ANDA.
Título: Re: Tableupdate() Y Tablerevert()
Publicado por: Widark en Domingo 21 de Agosto de 2005, 03:05
Gracias por sus respuestas. El problema estaba con por que las tablas actualmente no tienen buffer, medijo otro programador y la solucion estaba con

SET MULTILOCKS ON
CURSORSETPROP("Buffering", 5, strTablaActiva)

Muchas gracias por todo :D