Error al cargar un form

1,229 views
Skip to first unread message

PETACA

unread,
Jun 16, 2010, 6:44:14 PM6/16/10
to Comunidad de Visual Foxpro en Español
Hola a todos. Tengo un form en donde en el entorno de datos abro
tablas las cuales estan relacionadas, y para mostrar el contenido de
estas tablas uso grid1,,.. etc
El problema es que a veces me sale este error: ERROR AL CARGAR EL
ARCHIVO, CARGANDO EL FORMULARIO O EL ENTORNO DE DATOS. EL REGISTRO
ESTA FUERA DEL INTERVALO. La verdad que no encuentro cual puede ser el
problema porque zapeo las tabas, vuelvo a generar los indices, y anda
pero despues de agregar unos 5 registros, vuelve el problema, reindexo
y no se soluciona..
Gracias

marcelobuenosaires

unread,
Jun 16, 2010, 6:57:01 PM6/16/10
to publice...@googlegroups.com
Hola

El problema puede estar en el Entorno de Datos.

Es poco "portable" ya que la ruta de las tablas
no es relativa sino fija.

Si instalas el sistema en otra carpeta
no va a funcionar.

Lo conveniente es utilizar el evento Load del Form
para cargar las tablas que necesites para el Grid.

Creo que "no esta encontrando las tablas"

Saludos

MarceloBuenosAires
Argentina

_____


PETACA escribi�:

Hitiel Hernandez B.

unread,
Jun 16, 2010, 7:38:57 PM6/16/10
to VFP Grupo de Google
Hola Fabian
 
deberías checar tus índices, muchas veces por ahí viene el problema.
otra es que a veces haces relaciones desde el entorno de datos y esos índices ya no existen
o están mal creados porque hicistes alguna modificación en algún campo de alguna de
las tablas que usas, por eso también te puede marcar error.

 
> Date: Wed, 16 Jun 2010 15:44:14 -0700
> Subject: [vfp] Error al cargar un form
> From: fabian...@arnet.com.ar
> To: publice...@googlegroups.com

Discover the new Windows Vista Learn more!

Luis Maria Guayan

unread,
Jun 16, 2010, 7:51:29 PM6/16/10
to publice...@googlegroups.com
Revisa los índices de las tablas, o regenera nuevamente los índices.

Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

Hitiel Hernandez B.

unread,
Jun 16, 2010, 8:03:12 PM6/16/10
to VFP Grupo de Google
si fuera porque no te encuentra las tablas.
prueba usar esto:
entra al entorno de datos, ingresa a las propiedades y selecciona: BeforeOpenTablesEvent
allí escribe el siguiente código:
 
this.cursor1.cursorsource  = _data+'periodo\'+SUBS(STR(_ciclo,4),3)+'\'+'alumnos.dbf'
 
lo que marqué en rojo es la ruta y nombre de la tabla.
cambialo para cada tabla que direcciones.
 
saludos
desde Guatemala!!
 



Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy! Try it!

Hugo C.

unread,
Jun 16, 2010, 10:56:03 PM6/16/10
to Comunidad de Visual Foxpro en Español
Este error puede ser porque alguna tabla del dataenvironment
alguien la tiene abierta en modo exclusivo.
-> ERROR AL CARGAR EL ARCHIVO

Este error puede ser porque a alguna tabla del dataenvironment
alguien la tiene abierta en modo exclusivo.
->
ERROR AL CARGAR EL ARCHIVO

este si es por indices
->
ESTA FUERA DEL INTERVALO

Puede ser que existan relaciones de tablas "rotas".

Saludos.

Juan C. Rivera Rosel

unread,
Jun 17, 2010, 11:00:37 AM6/17/10
to foxseros
La forma que trabajas no es optima, es anticuada.
te explico.

1. Las tablas de vfp son muy debiles y cuando mas datos tengas se hará mas lento tu sistema:
    solucion: utiliza un motor de Bd mas potente (MS Sqlserver, My Sql)

2.Programa tu aplicacion pensando en arquitectura cliente/servidor. (Conectar, extrar datos - desconectar), de tal manera que pueda 
  funcionar en red.



atte.

Ing. Juan Carlos Rivera Rosel
(E) Area Informatica - Universidad de Huanuco -Perú
(062)51-8301 anexo 118

 






> Date: Wed, 16 Jun 2010 19:56:03 -0700
> Subject: [vfp] Re: Error al cargar un form
> From: hcch...@gmail.com
> To: publice...@googlegroups.com

Gilberth Grissom

unread,
Jun 17, 2010, 11:23:05 AM6/17/10
to publice...@googlegroups.com
Aprovecho este caso para la siguiente pregunta:
 
1. Entre a formar parte de un equipo que desarrolla en Visual Basic con SQL Server 2005, como es logico mis aplicaciones estan hecha en VFP 9, mi pregunta es: ¿existira conflicto al momento en que grabaran al mismo tiempo a la BD desde los clientes VB y VFP?.
 
2. he revisado la base de datos del SQL server y veo que no tiene ninguna restriccion al momento de grabar como el BEGIN TRANS....solo los clasicos Insert, Update, Delete ¿puede causar algun problema con el trafico hacia la red al momento que graba?
 
3. Mi cliente VFP, se conecta via ODBC con la base de datos de SQL Server, aqui la gente de VB dice que no es la manera correcta y lo hace via OLE DB, he probado con OLE DB, pero estoy en la nada?, mi conexion via ODBC, funciona bacan, el problema es que no se si consumira toda el ancho de banda de la red?
 
 
4. Cuales serian los archivos de deberia instalar en el cliente para que reconozca el ejecutable de VFP, ya que antes por tener pocos clientes, me daba el tiempo de instalar todo el VFP?
 
espero que puedan asesorarme en esto
 
saludos
 
Grisson
--
Grissom

Luis Mata

unread,
Jun 17, 2010, 6:25:40 AM6/17/10
to publice...@googlegroups.com
Ningun problema.
- La librerias yo las empaqueto con el Installshield o mejor dicho creo los instaladores con el install shield
 
Luis

Luis Mata

unread,
Jun 17, 2010, 6:26:36 AM6/17/10
to publice...@googlegroups.com
Apoyo a Juan C.
 
Trabajar con entorno de datos es una jarana me a dado mas de un dolor de cabeza.
 
Luis Mata
----- Original Message -----
Sent: Thursday, June 17, 2010 10:00 AM
Subject: RE: [vfp] Re: Error al cargar un form

La forma que trabajas no es optima, es anticuada.
te explico.

1 Las tablas de vfp son muy debiles y cuando mas datos tengas se hará mas lento tu sistema:

Juan C. Rivera Rosel

unread,
Jun 17, 2010, 11:51:25 AM6/17/10
to foxseros
1. no existe ningun clonflicto, yo tengo aplicacion en vfp, en basic, asp.net, powerbuilder. el motor de base de datos se encarga de gestionar todo eso.

2. tbn se puede usar begin transc, pero dentro de los procedimientos almacenados, eso siempre que quieras controlar y hacer rollbacks,
pero por lo general no lo uso mucho.

3. Ole Db, encapsula odbcs temporales para hacer sus procesos, pero ambas funcionan bien, solo que el odbc hay q configurar antes en windows

4. en vfp 6.00 VFP6ESN.DLL, VFP6R.DLL, VFP6RENU.DLL, VFP6RESN.DLL, VFPODBC.DLL.

en el vfp 9 tengo q instalarlo.


Ing. Juan Carlos Rivera Rosel
(E) Area Informatica - Universidad de Huanuco -Perú
(062)51-8301 anexo 118

 

 






Date: Thu, 17 Jun 2010 10:23:05 -0500
Subject: Re: [vfp] Re: Error al cargar un form
From: griss...@gmail.com
To: publice...@googlegroups.com

Luis Mata

unread,
Jun 17, 2010, 6:58:43 AM6/17/10
to publice...@googlegroups.com
Disculpa..
 
Que hay que configurar en el ODBC?
 
Luis
----- Original Message -----

Gilberth Grissom

unread,
Jun 17, 2010, 12:01:34 PM6/17/10
to publice...@googlegroups.com

con respecto a los casos:
 
1. existira algun problema con la cantidad de clientes, es decir si son 90 clientes VB y 5 clientes VFP?
 
4. en que carpeta especifica se deben grabar los archivos que mencionas?.
 
 
gracias por sus respuestas...
 
 
saludos
 
Grissom
--
Grissom

Juan C. Rivera Rosel

unread,
Jun 17, 2010, 12:04:37 PM6/17/10
to foxseros


Ing. Juan Carlos Rivera Rosel
(E) Area Informatica - Universidad de Huanuco -Perú
(062)51-8301 anexo 118

 

 







Subject: Re: [vfp] Re: Error al cargar un form
Date: Thu, 17 Jun 2010 05:58:43 -0500
odbc.JPG

Juan C. Rivera Rosel

unread,
Jun 17, 2010, 12:06:35 PM6/17/10
to foxseros
1. para nada, eso ya depende de la liciencia del sql, q es flexible.
2. los dll's deben ir en la carpeta principal del programa, donde se encuentra tu ejecutable.


atte


Ing. Juan Carlos Rivera Rosel


 






Date: Thu, 17 Jun 2010 11:01:34 -0500

Luis Mata

unread,
Jun 17, 2010, 7:13:50 AM6/17/10
to publice...@googlegroups.com
Bueno eso es si quieres trabajar con DNS pero si quieres puede usar el
SQLStringConnect y t evitas el trabajo de ir pc por pc creando los DNS

----- Original Message -----
From: Juan C. Rivera Rosel
To: foxseros
Sent: Thursday, June 17, 2010 11:04 AM
Subject: RE: [vfp] Re: Error al cargar un form

Ing. Juan Carlos Rivera Rosel

(E) Area Informatica - Universidad de Huanuco -Per�
(062)51-8301 anexo 118


From: lm...@cclf.com.pe
To: publice...@googlegroups.com
Subject: Re: [vfp] Re: Error al cargar un form
Date: Thu, 17 Jun 2010 05:58:43 -0500


Disculpa..

Que hay que configurar en el ODBC?

Luis
----- Original Message -----
From: Juan C. Rivera Rosel
To: foxseros
Sent: Thursday, June 17, 2010 10:51 AM
Subject: RE: [vfp] Re: Error al cargar un form


1. no existe ningun clonflicto, yo tengo aplicacion en vfp, en basic,
asp.net, powerbuilder. el motor de base de datos se encarga de gestionar
todo eso.

2. tbn se puede usar begin transc, pero dentro de los procedimientos
almacenados, eso siempre que quieras controlar y hacer rollbacks,
pero por lo general no lo uso mucho.

3. Ole Db, encapsula odbcs temporales para hacer sus procesos, pero ambas
funcionan bien, solo que el odbc hay q configurar antes en windows

4. en vfp 6.00 VFP6ESN.DLL, VFP6R.DLL, VFP6RENU.DLL, VFP6RESN.DLL,
VFPODBC.DLL.

en el vfp 9 tengo q instalarlo.


Ing. Juan Carlos Rivera Rosel

(E) Area Informatica - Universidad de Huanuco -Per�
(062)51-8301 anexo 118

saludos

Grisson

escribi�:

La forma que trabajas no es optima, es anticuada.
te explico.

1. Las tablas de vfp son muy debiles y cuando mas datos tengas se har� mas

lento tu sistema:
solucion: utiliza un motor de Bd mas potente (MS Sqlserver, My Sql)

2.Programa tu aplicacion pensando en arquitectura cliente/servidor.
(Conectar, extrar datos - desconectar), de tal manera que pueda
funcionar en red.

atte.


Ing. Juan Carlos Rivera Rosel

(E) Area Informatica - Universidad de Huanuco -Per�
(062)51-8301 anexo 118


--
Grissom


Gilberth Grissom

unread,
Jun 17, 2010, 2:03:04 PM6/17/10
to publice...@googlegroups.com
En ese caso de todas maneras es necesario instalar el programa cliente de SQL (archivo sqlncli.msi) server en todas las PC, o solo podria funcionar directamente el ejecutable con la cadena de conexion en su interior...
 
otra cosas...puedes enviar un ejemplo de ese comando?
SQLStringConnect?
 
gracias...
 
Grisson
 


 
El 17 de junio de 2010 06:13, Luis Mata <lm...@cclf.com.pe> escribió:
Bueno eso es si quieres trabajar con DNS pero si quieres puede usar el
SQLStringConnect y t evitas el trabajo de ir pc por pc creando los DNS


----- Original Message ----- From: Juan C. Rivera Rosel
To: foxseros
Sent: Thursday, June 17, 2010 11:04 AM

Subject: RE: [vfp] Re: Error al cargar un form





Ing. Juan Carlos Rivera Rosel
(E) Area Informatica - Universidad de Huanuco -Perú

(062)51-8301 anexo 118








From: lm...@cclf.com.pe
To: publice...@googlegroups.com
Subject: Re: [vfp] Re: Error al cargar un form
Date: Thu, 17 Jun 2010 05:58:43 -0500


Disculpa..

Que hay que configurar en el ODBC?

Luis
----- Original Message ----- From: Juan C. Rivera Rosel
To: foxseros
Sent: Thursday, June 17, 2010 10:51 AM
Subject: RE: [vfp] Re: Error al cargar un form


1. no existe ningun clonflicto, yo tengo aplicacion en vfp, en basic, asp.net, powerbuilder. el motor de base de datos se encarga de gestionar todo eso.

2. tbn se puede usar begin transc, pero dentro de los procedimientos almacenados, eso siempre que quieras controlar y hacer rollbacks,
pero por lo general no lo uso mucho.

3. Ole Db, encapsula odbcs temporales para hacer sus procesos, pero ambas funcionan bien, solo que el odbc hay q configurar antes en windows

4. en vfp 6.00 VFP6ESN.DLL, VFP6R.DLL, VFP6RENU.DLL, VFP6RESN.DLL, VFPODBC.DLL.

en el vfp 9 tengo q instalarlo.


Ing. Juan Carlos Rivera Rosel
(E) Area Informatica - Universidad de Huanuco -Perú

(062)51-8301 anexo 118








Date: Thu, 17 Jun 2010 10:23:05 -0500
Subject: Re: [vfp] Re: Error al cargar un form
From: griss...@gmail.com
To: publice...@googlegroups.com


Aprovecho este caso para la siguiente pregunta:

1. Entre a formar parte de un equipo que desarrolla en Visual Basic con SQL Server 2005, como es logico mis aplicaciones estan hecha en VFP 9, mi pregunta es: żexistira conflicto al momento en que grabaran al mismo tiempo a la BD desde los clientes VB y VFP?.

2. he revisado la base de datos del SQL server y veo que no tiene ninguna restriccion al momento de grabar como el BEGIN TRANS....solo los clasicos Insert, Update, Delete żpuede causar algun problema con el trafico hacia la red al momento que graba?


3. Mi cliente VFP, se conecta via ODBC con la base de datos de SQL Server, aqui la gente de VB dice que no es la manera correcta y lo hace via OLE DB, he probado con OLE DB, pero estoy en la nada?, mi conexion via ODBC, funciona bacan, el problema es que no se si consumira toda el ancho de banda de la red?


4. Cuales serian los archivos de deberia instalar en el cliente para que reconozca el ejecutable de VFP, ya que antes por tener pocos clientes, me daba el tiempo de instalar todo el VFP?

espero que puedan asesorarme en esto

saludos

Grisson










El 17 de junio de 2010 10:00, Juan C. Rivera Rosel <jc_ge...@hotmail.com> escribió:

La forma que trabajas no es optima, es anticuada.
te explico.

1. Las tablas de vfp son muy debiles y cuando mas datos tengas se hará mas lento tu sistema:

  solucion: utiliza un motor de Bd mas potente (MS Sqlserver, My Sql)

2.Programa tu aplicacion pensando en arquitectura cliente/servidor. (Conectar, extrar datos - desconectar), de tal manera que pueda
 funcionar en red.



atte.


Ing. Juan Carlos Rivera Rosel
(E) Area Informatica - Universidad de Huanuco -Perú



--
Grissom

Yvan GMAIL

unread,
Jun 17, 2010, 2:14:08 PM6/17/10
to publice...@googlegroups.com

1.      No necesitas instalar el sqlncli.msi, Windows ya viene con los drivers de SQL

2.      Aquí va una función.

3.       

FUNCTION Conectar()

               dbSystem = SQLSTRINGCONNECT("driver={SQL Server};Server=192.168.1.90;Database=VENTAS;uid=yvan;pwd=okkey;")               

               = SQLSETPROP(dbSystem, "DispLogin",3)                                                                                                                                                   

               IF dbSystem <= 0             

                  = MESSAGEBOX("fallo en la conexión", 0+48, "Error de conexión SQL")

                  nValor_Retorno = -1                                                                                                                                  

               ELSE

                             = SQLSETPROP(dbSystem, "ConnectTimeOut",1200)                                      

                             = SQLSETPROP(dbSystem, "asynchronous", .F.)

                             =  SQLSETPROP(dbSystem, 'Transactions', 1) && Automático

                 ENDIF                              

                 Return nValor_Retorno

ENDFUNC

Luis Mata

unread,
Jun 17, 2010, 9:54:22 AM6/17/10
to publice...@googlegroups.com
El driver de sql server en XP Ya viene instalado, SO superior tambien

Solo cambia esto:

Para 2005
cscom = SQLStringConnect("Driver={SQL
Server};Server=10.0.1.100;Database=bdcho;Uid=userall1;Pwd=xxxxxxxx;")
cscom = SQLStringConnect("Driver={SQL Native
Client};Server=10.0.1.100;Database=bdcho;Uid=userall1;Pwd=xxxxxxxx;")

para 2008

cscom = SQLStringConnect("Driver={SQL Server Native Client
10.0};Server=10.0.1.100;Database=bdcho;Uid=userall1;Pwd=xxxxxxxx;")

Fijate en tus Origenes de Datos ODBC que driver tienes instalado (SQL) y
cambias el driver lo que esta entre llaves

Conectar a sql 2005/2008:

cscom = SQLStringConnect("Driver={SQL Server Native Client
10.0};Server=10.0.1.100;Database=bdcho;Uid=userall1;Pwd=xxxxxxxx;")
Consultas:
micod = '123456'
=sqlexec(cscom, "select * from cliente where codigo=?micod")
Insert:
nombre = 'Luis Mata'
=sqlexec(cscom, "insert into cliente(nombre) values(?nombre)"
update
micod = '123456'
apell='Mata'
=sqlexec(cscom,"update cliente set apellido=?apell where codigo=?micod")
delete:
micod = '123456'
=sqlexec(cscom,"delete from cliente where codigo=?micod")
Llamar procedimientos almacenados:
=sqlexec(cscom, "exec traer_lista_cliente","cliente")
PAsando parametros:
micod='123456'
=sqlexec(cscom,"exec solo_traeme_este_cliente ?micod","cliente")
Procedimiento que devuelve un valor
valordevuelto=0
=sqlexec(cscom "exec devuelvemte_la_edad ?@valordevuelto")
?valordevuelto

Aqui las cosas basicas , espero te sirva cualquier consulta nos avisas.

Mas formas de conectar a otras Bases de datos:
http://www.connectionstrings.com/

Luis Mata

Juan C. Rivera Rosel

unread,
Jun 17, 2010, 5:14:06 PM6/17/10
to foxseros
No es necesario el driver, ya viene en xp, y si no hay se instala con el office.

Me haz caido bien, aaqui te mando un ejemplo:

Este ejemplo es simpatico poruqe utiliza un ODBC temporal, no es necesario crearlo en el mismo windows.

** 1. conexion de odbc temporal
Local nCone as Integer
cUser        = "SA"                 && Nombre Usuario
cPass        = "xxxxxx"    && Password
cServer     =  "SERVERBD"        && Nombre Servidor de BD o IP
cDataBase  = "ACADEMICO"            && Nombre Base de Datos
cDSN        = "DSNTEMPORAL"        && Nombre DSN
cDriver="{SQL Server}"            && Driver para realizar Conexion 'SQL Server'
nCone=SQLStringConnect([uid=]+cUser+[;pwd=]+cPass+[;server=]+cServer+[;driver=&cDriver;database=]+cDatabase+[;DSN=cDSN;Trusted_Connection=No])

-- ACA EJECUTAS LA CONSULTA O EL COMANDO DE SQL

    CadSql=" select * from maestro_marcas where <CONDICION> "
    estatus=SQLEXEC(nCone,cadsql,'cMarcas')    && devuelve el resultado a aun cursor, si haces inster no poner
    if estatus < 0
        =AERROR(laErrors)
        =SqlRollBack(nCone)
        MESSAGEBOX ('Número : '+STR(laErrors[1,1]) + CHR(13)+;
          'Descripción : '+laErrors[1,2]+ CHR(13)+;
          'Comuníquese con su administrador para solucionar el problema',;
          0+48,"Error")
        =MessageBox("Error de conexion delete ",0+64,"Setup")
        = SQLDISCONNECT(nCone)
        return .f.
    endif

   && desconectarse
     = SQLDISCONNECT(nCone)
    if reccount('cMarcas')=0
      sele cMarcas
      use
      = MessageBox('No hay Marcaciones para descargar',0+64,'cMarcas')
      return .f.
    endif

   Sele cMarcas
   brow



atte.
Ing. Juan Carlos Rivera Rosel


 

 






Date: Thu, 17 Jun 2010 13:03:04 -0500

Walter R. Ojeda Valiente

unread,
Jun 17, 2010, 7:17:19 PM6/17/10
to publice...@googlegroups.com
Estoy de acuerdo, hace muchísimos años que no utilizo el entorno de datos, causa más problemas de los que resuelve.

Saludos.

Walter.



From: lm...@cclf.com.pe
To: publice...@googlegroups.com
Subject: Re: [vfp] Re: Error al cargar un form
Date: Thu, 17 Jun 2010 05:26:36 -0500


Apoyo a Juan C.
 
Trabajar con entorno de datos es una jarana me a dado mas de un dolor de cabeza.
 
Luis Mata



Hotmail: Trusted email with Microsoft’s powerful SPAM protection. Sign up now.

Azael Allan Malvaez Monterrubio

unread,
Jun 17, 2010, 7:36:55 PM6/17/10
to publice...@googlegroups.com
Que tal comunidad, soy nuevo en esto del fox y hay muchas cosas que desconosco y la verdad me ayudan mucho los correos que leo diariamente, gracias a todos.
 
Tengo un problema apenas realizaron un pequeño sistema en foxpro9 que esta inconcluso y yo lo estoy retomando, no me he podido meter de lleno al codigo pero hice un formulario y estaba funcionando bien, y de que le meti un registro a la tabla ya no me abre el formulario, ya intente jalar el registro de la tabla al form pero nada, me sale este mensaje, si alguien me puede ayudar se lo agradeceria.
 
No se encuentra la etiqueta de indice para el Cursor 'CURSOR1'.
Error 2198
No se encuentra etiqueta de indice para el cursor 'CURSOR1'.
Mthod:embossedform.dataenvironment.OpenTables


Azael Allan




 


Con Hotmail siempre estás conectado con quien quieres

Hitiel Hernandez B.

unread,
Jun 17, 2010, 10:19:19 PM6/17/10
to VFP Grupo de Google
Ok
yo creo que trabajar con el entorno de datos de lo más práctico que pueda existir.
lo que debes hacer es verificar que las relaciones que haces sean con campos existentes en las tablas,
resulta que uno muchas veces hace cambios en las tablas y en el entorno de datos se nos olvida hacer
los cambios.
los errores que pueda darte usando el entorno de datos generalmente también te los daría usando el
modo tradicional, pero de otra forma.


 

From: lm...@cclf.com.pe
To: publice...@googlegroups.com
Subject: Re: [vfp] Re: Error al cargar un form
Date: Thu, 17 Jun 2010 05:26:36 -0500


Explore the seven wonders of the world Learn more!

Luis Mata

unread,
Jun 18, 2010, 12:57:43 AM6/18/10
to VFP Grupo de Google
Los errores propios a entorno de datos no se repiten en otros tipos de manejo de datos, y si el form esta independiente del form cualquier error en campos de la bd no te bloquea el form. a mi se me bloqueaban y tenia que recurrir a copias de seguridad nada que ver no hay nada de practico en usar entorno de datos, ademas que si utilizas en tu entorno las tablas de clientes y articulos y cada table tiene 1000000 de reg  uffffff
 
Luis
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 5205 (20100617) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com

Hitiel Hernandez B.

unread,
Jun 18, 2010, 2:02:22 AM6/18/10
to VFP Grupo de Google
es un problema típico de índices.
Cheque tus índices y la estructura de tus tablas
 
 
saludos desde Guatemala!

From: azael_...@hotmail.com
To: publice...@googlegroups.com
Subject: [vfp] ayuda
Date: Thu, 17 Jun 2010 23:36:55 +0000

Julio Cesar Vente Ruiz

unread,
Jun 18, 2010, 9:12:20 AM6/18/10
to publice...@googlegroups.com
Hola Azael
Lo que yo hago es hacer un chequeo de la base de datos en general, tengo este codigo a lo mejor lo puedes acomodar y te sirve para que lo implementes...
El codigo no es de autoria mia, hace varios años que lo tengo creo que fue de PortalFox que lo saque...

Debes habril la DB en modo exclusive y ejecutar el codigo...


FUNCTION CHECKDB()
    ON ERROR ? "ERROR: "+ALLT(STR(ERROR()))+" "+MESSAGE()
   
    VALIDATA() && VALIDAR BASE DE DATOS
   
    LOCAL mi_tablas[1], i
    CLOSE TABLES
    NTABLES=ADBOBJECTS(mi_tablas, "Table")
    FOR i = 1 to NTABLES
        IF !EMPTY(mi_tablas[i])
            IF !USED(mi_tablas[i])
                USE (mi_tablas[i]) IN 0 EXCL

                ? "Tabla: "+ UPPER(ALLTRIM(mi_tablas[i])) + ".DBF"
                ** si se pudo abrir la tabla
                IF ERROR()>0
                    RETURN .F.
                ENDIF
                SELECT (mi_tablas[i])
                PACK
                REINDEX
                ?? "Compactando... " AT 50
                IF ERROR()>0
                    RETURN .F.
                ENDIF
                ?? "Ok"
            ENDIF
        ENDIF
    ENDFOR
    ? CHR(13)+"Reconstrución de Indices y chequeo a Terminado..."
    RETURN .T.
ENDFUNC
--


Julio Cesar Vente Ruiz

Azael Allan Malvaez Monterrubio

unread,
Jun 18, 2010, 10:31:49 AM6/18/10
to publice...@googlegroups.com
muchas gracias lo intentare y adecuare a mi base, cualquier duda espero puedan ayudarme... gracias

Azael Allan




 

Date: Fri, 18 Jun 2010 08:12:20 -0500
Subject: Re: [vfp] ayuda
From: jvent...@gmail.com
To: publice...@googlegroups.com

Salvador Vega

unread,
Jun 18, 2010, 2:14:31 PM6/18/10
to azael_...@hotmail.com, publice...@googlegroups.com
*Este instrucción combina la información de dos tablas ya sean del tipo dbf o de SqlServer
Do pSeleCamp With 10.1,'','tabla1 a, tabla2 b','rapdescor',;
'a.num_par_do,a.cue_acc_do,a.cve_emp_do,a.fec_com_do,a.ter_seg_do,b.nom_des_ca as nom_emp_do,a.des_seg_do',;
'a.per_tra_do','=',cPerFor,'a.num_fol_do','=',rapdesfol.num_fol_do,'a.num_acc_do','=',1,;
'a.cve_emp_do','=&','b.num_cve_ca','b.num_ide_ca','=',1,'num_inv_do'
 
*Esta instrucción es para conectarte a SqlServer
Function
fConectarSql
Local cConSql,nNumSql
cConSql = "driver=SQL server; server="+(nombre del servidor)+"; uid="+(Usuario)+;
"; pwd="+(Contraseña)+"; DATABASE="+(Base de datos)
nNumSql =
SQLSTRINGCONNECT(cConSql)
Return
nNumSql
 
*Estas instrucciones genera un cursor temporal ya sea para Dbf o para SqlServer, esto lo utilize cuando se migro la aplicación de Dbf a SqlServer
Procedure
pSeleCamp
Parameters nNumOpc,cDbf,cNomTab,cNomCur,cTexCam,cCam001,cSig001,cCam002,;
cCam003,cSig003,cCam004,cCam005,cSig005,cCam006,cCam007,cSig007,cCam008,;
cCam009,cSig009,cCam010,cCam011,cSig011,cCam012,cCam013,cSig013,cCam014,;
cCam015,cSig015,cCam016,cCam017,cSig017,cCam018,cCam019,cSig019,cCam020,;
cCam021,cSig021,cCam022,cCam023,cSig023,cCam024,cCam025,cSig025,cCam026
Local nNumCon,cTextos,nCtrCon,nLenNum,nPosPun,nPriNum,nSegNum,nNumIni,nNumFin,cNewCap,;
cNewNum,cNewNu2,cSigOpe
 
If Len
(cDbf) = 0
nNumCon = fConectarSql()
cTextos = 'select '+cTexCam+' from '+cNomTab
Else
cTextos = ''
nNumCon = 1
EndIf
If
nNumCon < 1
MessageBox('CONEXION, REPORTE',0,'ERROR DE')
Else
If
nNumOpc = 1
cTextos = cTextos+' order by '+cCam001
Else
nLenNum = Alltrim(Str(nNumOpc,8,1))
nPosPun =
AT('.',nLenNum)
If Substr(nLenNum,nPosPun+1,1) = '0'
nLenNum =
Substr(nLenNum,1,nPosPun-1)
nSegNum = nNumOpc%2
nPriNum = nNumOpc - nSegNum
Else
Do Case
Case Len
(nLenNum) = 3
nPriNum =
Substr(nLenNum,1,1)
nSegNum =
Substr(nLenNum,3,1)
Case Len(nLenNum) = 4
nPriNum =
Substr(nLenNum,1,2)
nSegNum =
Substr(nLenNum,4,1)
EndCase
nPriNum = Int(Val(nPriNum))
nSegNum =
Int(Val(nSegNum))
EndIf
nNumIni = 3
nNumFin = 4
cNewCap = 'cCam'
cTextos = cTextos+' where '+cCam001+cSig001+'?cCam002'
Do While nPriNum > 3
cNewNum =
Alltrim(Str(nNumIni))
cSigOpe = 'cSig'+
Replicate('0',3-Len(cNewNum))+cNewNum
cNewNum = cNewCap+
Replicate('0',3-Len(cNewNum))+cNewNum
cNewNu2 =
Alltrim(Str(nNumFin))
cNewNu2 = cNewCap+
Replicate('0',3-Len(cNewNu2))+cNewNu2
If At('&',&cSigOpe) > 0
&cSigOpe =
Substr(&cSigOpe,1,1)
cTextos = cTextos+' and '+&cNewNum+&cSigOpe+&cNewNu2
Else
cTextos = cTextos+' and '+&cNewNum+&cSigOpe+'?'+cNewNu2
EndIf
nPriNum = nPriNum-2
nNumIni = nNumIni+2
nNumFin = nNumFin+2
EndDo
If
nSegNum > 0
cTextos = cTextos+' order by '
EndIf
Do While
nSegNum > 0
cNewNum =
Alltrim(Str(nNumIni))
cNewNum = cNewCap+
Replicate('0',3-Len(cNewNum))+cNewNum
cTextos = cTextos+&cNewNum
nSegNum = nSegNum-1
nNumIni = nNumIni+1
If nSegNum > 0
cTextos = cTextos+','
EndIf
EndDo
EndIf
If Len
(cDbf) = 0
nCtrCon =
SqlExec(nNumCon,cTextos,cNomCur)
If nCtrCon < 1
MessageBox('GENERO EL CURSOR EN TABLA '+cNomTab,0,'ERROR NO SE')
EndIf
SqlDisconnect
(nNumCon)
Else
cTextos = _Ruta+cNomTab+' '+cTextos
select * from &cTextos into cursor &cNomCur
EndIf
EndIf
Return

Espero que la información te funcione para lo que necesitas
 
Salvador Vega M.
México
 

--- El vie 18-jun-10, Azael Allan Malvaez Monterrubio <azael_...@hotmail.com> escribió:

Alfredo Mendoza

unread,
Jun 18, 2010, 3:07:26 PM6/18/10
to publice...@googlegroups.com
Saludos,

Veo que todos dicen que es mejor trabajar sin el entorno de datos de VFP, en lo particular no soy un super experto, pero desde que conoci o salio la forma de trabajar con el entorno dentro del form, me gusto, y en fin mi pregunta o interrogante companeros es como se trabaja en VFP 9 sin el entorno de datos, me gustaria saber un poco de como es, sobre sus beneficios y demas que me puedan orientar.

Gracias a todos.

AM
Managua, nicaragua


De: Luis Mata <lm...@cclf.com.pe>
Para: VFP Grupo de Google <publice...@googlegroups.com>
Enviado: jue, junio 17, 2010 10:57:43 PM
Asunto: Re: [vfp] Re: Error al cargar un form

Luis Mata

unread,
Jun 18, 2010, 3:21:59 PM6/18/10
to publice...@googlegroups.com
Un problema grave que me pasaba a mi era la corrupcion de datos ya que al tener abierta las tablas, cualquier causa del corte abrupto de la conexion era una posible corrupcion de tablas.
 
Lo ideal es trabajar con Cadena de conexion establecer una conexion a la Base de datos e ir extrayendo, insertando, actualizado, borrando... etc los datos en tu Base de datos.
 
Trata de hacer un sistema CLIENTE / SERVIDOR
 
Luis mata

Hugo Carlos Aguilar Zapata

unread,
Jun 22, 2010, 11:18:24 AM6/22/10
to publice...@googlegroups.com
Si estas frecuentemete haciendo cambios a tus tablas / BD, el entorno de datos se verá afectado con los consecuentes errores.
en experiencia propia y de otros programadores
El entrono de datos es bueno si ya tienes definida tu base de datos y las necesidades de tu sistema son estables, un buena practica es hacer un buen analisis del sistema y diseño de la BD antes de entrar a la interfase.
Esto no es determiniante, hay sistemas y aplciaciones robustas que manejan entrono de datos,

En mi caso particular he decidio no usar entorno de datos, porque los ultimos sistemas que he desarrolloado han sido con constantes solicitudes de cambio, sobre el diseño inicial, los clientes y usuarios en realidad no prestan atención ha lo que uno les solcita para el analisis y al momento en que se entrega la 1a. version, o modulo, se les ocurre algo o preguntan y no hace eso??  =)
Lo practico en esta situacion es es abrir las tablas de tu proyecto, en el programa de inicio, en en le evento init de tus formularios, para objetos donde se muestren mas de un registro,. como grids , listbox, comob box etc. lo ideal es que el origen de datos sea una consulta y no vincluarlo directo a la tabla

Por ultimo como mencion la arquitectura cte/ servidor es una excelente practica para consumo de recuersos

Saludos

Viktor Velazquez

unread,
Jun 22, 2010, 12:14:16 PM6/22/10
to publice...@googlegroups.com
tienen razon, es mejor trabajar sin el entorno. otra igual con tablas libres y la apertura y generacion de indices ya sea despues del seteo.. salduos.

!No progresas mejorando lo que ya esta hecho, sino esforzandote por lograr lo que aun queda por hacer!  (K. Gibran)




 

Date: Tue, 22 Jun 2010 10:18:24 -0500
Subject: Re: [vfp] Error al cargar un form y Como trabajar sin entorno de datos
From: hugocarl...@gmail.com
To: publice...@googlegroups.com

Soy como quiero ser en mi Messenger
Reply all
Reply to author
Forward
0 new messages