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�:
Luis María Guayán Tucumán, Argentina _________________________ http://www.PortalFox.com Nada corre como un zorro _________________________
Ing. Juan Carlos Rivera Rosel
(E) Area Informatica - Universidad de Huanuco -Perú
(062)51-8301 anexo 118
----- Original Message -----From: Juan C. Rivera RoselTo: foxserosSent: Thursday, June 17, 2010 10:00 AMSubject: RE: [vfp] Re: Error al cargar un formLa 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:
Ing. Juan Carlos Rivera Rosel
(E) Area Informatica - Universidad de Huanuco -Perú
(062)51-8301 anexo 118
----- Original Message -----From: Juan C. Rivera RoselTo: foxseros
Ing. Juan Carlos Rivera Rosel
(E) Area Informatica - Universidad de Huanuco -Perú
(062)51-8301 anexo 118
Ing. Juan Carlos Rivera Rosel
----- 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
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 DNSSent: Thursday, June 17, 2010 11:04 AM
----- Original Message ----- From: Juan C. Rivera Rosel
To: foxseros
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ú
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
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
Azael Allan
Azael Allan
|
*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
|
!No progresas mejorando lo que ya esta hecho, sino esforzandote por lograr lo que aun queda por hacer! (K. Gibran)