FoxPro/Visual FoxPro - Ayuda por favor RECUPERAR DATOS

 
Vista:

Ayuda por favor RECUPERAR DATOS

Publicado por LUIS CISTERNAS (15 intervenciones) el 25/10/2004 23:38:16
hola:
como puedo pararme directamente en un registro despues de una consulta sql , conecte visual fox pro 6 con acces pero no puedo recuperar los datos despues de haber ingresado un dato en una caja de texto para una busqueda,he probado de dos formas pero no me resulta

1.- SQLEXEC(MiConexion2,'SELECT nombre FROM persona where rut=text1')
2.-SQLPREPARE(MiConexion2,'SELECT * FROM persona;
where persona.rut=?text1')
= SQLEXEC(MiConexion2)
¿como lo hago para recuperar los campos de la tabla con respecta al where de la consulta?
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

RE:Ayuda por favor RECUPERAR DATOS

Publicado por Roman Suazo (2723 intervenciones) el 25/10/2004 23:55:41
Tenes que mandar el resultado del SELEC a un cursor, Checa el SELECT en la ayuda del fox...
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

ayudame por fvor

Publicado por luis cisternas alvarez (15 intervenciones) el 27/10/2004 16:14:26
hola :
Tengo un problema entre visual fox pro 6.0 y acces,
al realizar un "select" siempre me devuelve el mismo registro en Vfp6 pero copio la misma
consulta en acces y me devuelve el registro correcto.
el problema es que tube que concatenar 2 variables para poder ejecutar la consulta por el largo del string
ya que si ocupaba un solo string y agregaba otro campo que nesecitaba seleccionar en la consulta
se me cae el programa por el largo del string nesecito una variable de tipo string como en visual basic.
¿como puedo resetear las variables o declarar un variable como en visual basic
que me aguante un largo ilimitado para un consulta ?,incluso habro la conexion y la cierro
de nuevo pero igual me muestra el mismo registro


private a as string
a=""
b""
a="'SELECT t1.dvcnumdocto,t1.CliRut,t2.prorut "
a=a+" ,t2.prosucdescripcion,t2.prosucnumero,t2.prosucdireccion FROM dbo_VenT_DoctoVentaCar t1 "
b=" inner join dbo_prot_sucursal t2 on t1.CliRut=t2.prorut "
b=b+" and t1.clisucnumero=t2.prosucnumero where t1.dvcnumdocto=?text1')"
=SQLPREPARE(MiConexion,&a+&b)
SQLEXEC(MiConexion)
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:ayudame por fvor

Publicado por Roman Suazo (2723 intervenciones) el 27/10/2004 17:43:20
No creo que el problema este en la variable, ya que las variables string en Fox pueden alcanzar un tamaño de 16 megas (millones de caracteres) y tu sentencia no me parece larga, donde puede estar el error es como creas la sentencia ya que la variable que le añades al selec no debe ir entre comillas ni con el simbolo de interrogacion deberia ir sumada a la sentencia, algo asi:

b=b+\" and t1.clisucnumero=t2.prosucnumero where t1.dvcnumdocto=\"+text1

Checa bien tu sentencia puede haber varios errores...
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:ayudame por fvor

Publicado por Roman Suazo (2723 intervenciones) el 27/10/2004 17:46:54
Las \ no deden ir en la sentencia fueorn añadidas por la pagina en si ... prueba ocn snetnecia como estas:

b=b+" and t1.clisucnumero=t2.prosucnumero where t1.dvcnumdocto="+text1

o

b=b+" and t1.clisucnumero=t2.prosucnumero where t1.dvcnumdocto="+&text1

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:ayudame por favor2

Publicado por luis cisternas (15 intervenciones) el 27/10/2004 19:10:38
hola:
sabes que probe de otra forma con un cursor,pero me resulta ,me trae el dato correcto etc pero tengo un problema si en el select de la consulta le aggrego otro campo mas se me cae por el largo de caracteres ¿no hay tipo de varible q ue me aguante mas caracteres ?¿como me puede limitar tanto vfp?

&&&Se me cae si le agrego otro campo en el select &&&&&&&&&&

text1=thisformset.form1.text1.value
*SQLEXEC(MiConexion,\'select t1.dvcnumdocto,t1.CliRut,t2.prorut,t2.prosucdescripcion,t2.prosucnumero,t2.prosucdireccion FROM dbo_VenT_DoctoVentaCar t1 inner join dbo_prot_sucursal t2 on t1.CliRut=t2.prorut and t1.clisucnumero=t2.prosucnumero where t1.dvcnumdocto=?text1\',\'MiCursor\')
if !eof()
thisformset.form1.text2.value=MiCursor.clirut
thisformset.form1.text6.value=MiCursor.prosucdescripcion
thisformset.form1.text3.value=MiCursor.prosucdireccion
thisformset.form1.text4.value=Micursor.dvcnumordenc
else
=messagebox( \'Nota de Venta no Existe\',48,\'Mensaje Error\')
thisformset.form1.text1.value=\' \'
thisformset.form1.text2.value=\' \'
thisformset.form1.text3.value=\' \'
thisformset.form1.text1.setfocus
endif
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
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:ayudame por favor2

Publicado por Roman Suazo (2723 intervenciones) el 27/10/2004 20:17:07
Primero pon todo el select en una sola variable y checas el valor de la variable par ver si te agarra todo el SELEC (todo esto en un PRG de prueba o con el debug). Algo asi:

MiSelect="selec * from Mitabla where ;
miCampo"+thisform.text.value+"and; micampo2="+thisform.text2.value+"into cursor MiCursor"
?Miselect

*la sentencia anterior podras ver el selec en pantalla y ver si es correcta *la sentencia
*Fijate como pego las variables a la sentencia y el uso de los " ; " para indicar que el comando continua en la siguiente linea

SQLEXEC(MiConexion,&Miselect)
selec miCursor
browse
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:ayudame por favor3

Publicado por luis cisternas (15 intervenciones) el 27/10/2004 22:20:22
hola:
me puedes decir si esta es la forma correcta de una busqueda donde el resultado de la consulta 1
realizo una consulta 2 ,me vi en la obligacion de dividir la consulta en dos si hago una pura consulta con inner join se me cae
por el largo del string

text1=thisformset.form1.text1.value
1.-SQLEXEC(MiConexion,'select dvcnumdocto,CliRut from dbo_VenT_DoctoVentaCar where dvcnumdocto=?text1','MiCursor')
if !eof()
thisformset.form1.text2.value=MiCursor.clirut
Numero=MiCursor.clirut
2.- Consulta="select prosucdescripcion,prosucdireccion,prosucdireccion from dbo_prot_sucursal where prorut=&Numero"
SQLEXEC(MiConexion,'&Consulta','MiCursor2')
if !eof()
thisformset.form1.text6.value=MiCursor2.prosucdescripcion
thisformset.form1.text3.value=MiCursor2.prosucdireccion
endif
else
=messagebox( 'Nota de Venta no Existe',48,'Mensaje Error')
endif
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:ayudame por favor3

Publicado por Roman Suazo (2723 intervenciones) el 28/10/2004 00:33:27
Haz lo siguiente en el SQLEXEC, pon la sumatoria de dos o mas variables que con formen tu SELECt o pon el SELEC por partes, algo asi:

SQLEXEC(Miconexion, "selec * from mitabla where Campo="+thisform.text.value+;
" AND campo2="+thisform.text2.value+" into cursor Micursor")

procura guardar los espacios correspondientes entre las variables o string para que el selec sea correcto. El SQLEXEC solo puede aceptar 255 caracteres por variable, peor puedes pasar el selec en partes, como en el ejemplo...
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:Ayuda por favor RECUPERAR DATOS

Publicado por Richieeeeeeeeeeeeeee (1 intervención) el 22/11/2004 17:26:20
no se nada jodete puesssssssssssss
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