Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Consulta mediante ADO a un VFP
Message
 
To
06/04/2006 11:24:03
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Environment versions
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP SP2
Network:
Windows 2000 Server
Database:
Visual FoxPro
Miscellaneous
Thread ID:
01111011
Message ID:
01111358
Views:
14
Hola Alexis, los parametros necesarios para ejecutar un SP son algo diferentes a un recordset normal. Aqui está el código que utilizo para devolver un recordset (si el SP solo devuelve un valor y no un RS, el código es diferente).
*--------------------------------------------------------------------------------
* Método para ejecutar SP de SQL Server
* Parámetros:
*			 cConnString : String De Conección
*			 cComando    : Comando donde se especificará el
*						 : procedimiento a ejecutar junto con
*						 : los parámetros necesarios
*            lcParam     : Parámetros pasados al procedimiento
*            nBuffer     : Buffer Mode
*--------------------------------------------------------------------------------

LPARAMETERS cConnString As String ,cComando As String, lcParam As String

	oConn 	 = CREATEOBJECT("ADODB.Connection")
	oRS 	 = CREATEOBJECT("ADODB.Recordset")

	oConn.Connectionstring = cConnString
	oConn.Open

	IF TYPE("lcParam")="U"
		lcParam=""
	ENDIF 

	cEjecuta = [oConn.]+cComando+[(]+lcParam+[,oRs)]
	&cEjecuta
	oConn = Null
	oComando = Null 
RETURN oRS
La ventaja que tienes con esta forma es que puedes pasar los parámetros como una cadena de caracteres en vez de crear un objeto parameter para cada uno de los parametros que necesites pasar al RS. La desventaja es que el RS retorna como readonly por lo que solo te util para datos de consulta.

Espero te sirva de algo

Enmanuel

>buen dia yo molestando otra ves por estos lares.
>Tengo el siguiente inconveniente, esta ves es con una base de datos VFox.
>
>Tengo una base de datos con datos y quiero hacer una consulta mediante ado pero me devuelve .t., ningun otro valor, el Sp dentro de la base de datos es el siguiente.
>
>PROCEDURE buscar_tbl
>PARAMETERS param001
>
>SELECT * FROM detalles WHERE numero = param001
>
>ENDPROC
>
>no se si estoy bien ya que nunca he trabajado con una bd de fox, siempre Sql :(
>
>el proceso donde se ejecuta el sp es el siguiente.
>
>
>cRuta = "c:\pruebabdfox\PRUEBA.DBC"
>#Define C_VFPCOMCLASS 'vfpcom.comutil'
>oVFPCOM = Createobject(C_VFPCOMCLASS)
>Ll_error = .F.
>Note: Inicio Busqueda del Sql........
>TRY
> cadenal2 = 'exec buscar_tbl 93202'
> WAIT windows cadenal2
> conSQl = "Provider=VFPOLEDB.1;Data Source=" + cRuta + ";Mode=ReadWrite"
> oconeccion = Createobject("adodb.connection")
> oconeccion.connectionstring = conSQl
> oconeccion.Open()
> orecordset=Createobject("adodb.recordset")
> orecordset.Open(cadenal2,oconeccion)
> If !orecordset.Eof()Then
> nError = oVFPCOM.RSToCursor(orecordset, "cur_all")
> ENDIF
> orecordset.Close
> oconeccion.Close()
> Release orecordset
> Release oconeccion
> RELEASE oVFPCOM
>Catch To oerror
> MESSAGEBOX(oerror.Message)
>Endtry
>
>
>estoy utilizando el vfpcom para cambiar los Record set a Cursores
>
>el valor que me devuelve esto es:
>return_value: nombre del campo que devuelve el proceso
>.t. : Valor en el Campo
>
>saludos...
I'm a mixture of Albert Einstein and Arnold Schwarzenegger. The only trouble is that I got Einstein's body and Schwarzenegger's brain
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform