* EjemploADO.prg
* Algunos ejemplos de uso de ADO desde VFP
* Jose M. Marcenaro - 2001/11/12
* -------------------------------------------
* Para tener intellisense de estos objetos (VFP 7)
* agregué previamente la Type Library de ActiveX Data Objects
* al Intellisense Manager (Solapa Types / Type Libraries)
LOCAL loConn AS ADODB.CONNECTION
LOCAL loCmd AS ADODB.COMMAND
LOCAL loRs AS ADODB.Recordset
LOCAL lcConnString AS STRING
* conexion por seguridad integrada de Windows
lcConnString = "Provider=SQLOLEDB;Data Source=(local);Initial Catalog=Northwind;Integrated Security=SSPI"
* conexion por usuario / password de SQL Server
* lcConnString = "Provider=SQLOLEDB;Data Source=MSSQL;Initial Catalog=Northwind;User Id=sa;Password=pass;"
* abro la conexion
loConn = CREATEOBJECT("ADODB.Connection")
loConn.CursorLocation= 3 && adUseClient
loConn.OPEN(lcConnString)
* realizo un select simple
loRs = loConn.Execute("SELECT * From Products")
MostrarRecordset( loRs)
loRs.CLOSE
* creo un stored procedure para poder invocarlo despues
ON ERROR xx=0 && ignorar si ya existe el SP
loConn.Execute( "";
+"create procedure Probar (@Inicial varchar(10)) as ";
+" select * from Products where ProductName like @Inicial+'%'")
ON ERROR
* invoco al SP recien creado
loRs = loConn.Execute("exec Probar 'M'")
MostrarRecordset( loRs)
loRs.CLOSE
* lo invoco mediante un objeto Command (acceso a coleccion parámetros)
loCmd = CREATEOBJECT("ADODB.Command")
loCmd.ActiveConnection = loConn
loCmd.CommandText = "Probar"
loCmd.CommandType = 4 && adCmdStoredProc
loCmd.PARAMETERS.REFRESH && obtiene parametros del SP
loCmd.PARAMETERS.ITEM(";@Inicial") = 'L'
loRs = loCmd.Execute()
MostrarRecordset( loRs)
loRs.CLOSE
RETURN
********************************************************
PROCEDURE MostrarRecordset( loRs AS ADODB.Recordset)
LOCAL ln, li, lcStr
lcStr = ""
FOR ln = 1 TO 10 && primeros 10 registros como máximo
IF loRs.EOF then
EXIT FOR
ENDIF
FOR li=1 TO MIN(loRs.FIELDS.COUNT, 3) && primeros 3 campos como máximo
lcStr = lcStr+TRANSFORM(loRs.FIELDS.ITEM(li).VALUE)+","
NEXT
lcStr = lcStr+CHR(13)
loRs.MoveNext
NEXT
MESSAGEBOX(lcStr)
ENDPROC
Jose MarcenaroMicrosoft MVP
da Vinci - Argentina
No hay comentarios. :
Publicar un comentario
Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.