Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Consulta mediante ADO a un VFP
Message
 
À
06/04/2006 11:24:03
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Versions des environnements
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP SP2
Network:
Windows 2000 Server
Database:
Visual FoxPro
Divers
Thread ID:
01111011
Message ID:
01111358
Vues:
13
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
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform