FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Procedimiento almacenado adolib
Posts: 19
Joined: Mon Dec 06, 2010 06:35 PM
Procedimiento almacenado adolib
Posted: Thu Sep 22, 2022 01:59 AM

Hola,
Alguien que me pueda ayudar y comentar utilizando la lib de Capel/Rafa adolib c贸mo ejecutar un procedimiento almacenado pasando par谩metros y obtener los resultados.

Aqu铆 en el foro s贸lo encontr茅 esto:

viewtopic.php?f=6t=13743p=70536hilit=TAdoStoreProcsid=f9808f9ed88f38c9f5cbd91f3512e05b#p70536

pero a煤n no s茅 c贸mo devolver los resultados.

Saludos,
Javier

&&&&

Posts: 114
Joined: Fri Nov 24, 2006 09:03 PM
Re: Procedimiento almacenado adolib
Posted: Mon Oct 03, 2022 09:56 PM

Para leer datos desde un Procedimiento en SQL-Server, si deseas leer de otro tipo de BAse de datos, solo tienes que cambiar la cadena de conexi贸n.


Include "Fivewin.ch"

Static Cnx

// ***[ JACGSOFT ]******* //

Function Main()
Local Fe1,Fe2,Cnx,Rds,Arayx:={},Imp,Tpr,Obs

Fe1:=20220101
Fe2:=20220131

Connect_sql(@Cnx,'Usuario','Clave')

Get_sql_detalle(Cnx,@Rds,Fe1,Fe2)

Do While !Rds:Bof() .And. !Rds:Eof()

  _Imp_:=_Rds_:Fields('Precio'):Value
  _Tpr_:=_Rds_:Fields('Tipo'):Value
  _Obs_:=_Rds_:Fields('Observa'):Value


  Aadd(Arayx,{_Rds_:Fields('Documento'):Value, ;
              _Rds_:Fields('Apellido'):Value, ;
              _Rds_:Fields('Nombre'):Value, ;
              _Rds_:Fields('Sexo'):Value})

   _Rds_:MoveNext()
Enddo

_Rds_:Close()   
_Cnx_:Close()

Return(Nil)

// ***[ JACGSOFT ]******* //

Function Connect_Sql(Cnx,Usu,Cla)
Local Cadena,Lg:=.T.

Cadena:='Provider=sqloledb;Data Source=168.1.0.80;'+ ;
'Network Library=DBMSSOCN;'+ ;
'Initial Catalog=BD_PRUEBA;User Id='+Usu+ ;
';Password='+Cla+';'

Cnx:=Toleauto():New("ADODB.Connection")
Cnx:Open(Cadena)

Return(Lg)

// ***[ JACGSOFT ]******* //

Static Function Get_sql_detalle(Cnx,Rds,Fe1,Fe2)
Local oCmd,oPar

oCmd:=TOleAuto():New("ADODB.Command")
oCmd:ActiveConnection:=Cnx
oCmd:CommandType:=4
oCmd:CommandText:="dbo.PA_get_detalle"
oCmd:CommandTimeout:=0

oPar:=oCmd:CreateParameter("Fecini",3,1,8,Fe1)
oCmd:Parameters:Append(oPar)
oPar:=oCmd:CreateParameter("Fecfin",3,1,8,Fe2)
oCmd:Parameters:Append(oPar)

Rds:=oCmd:Execute()

Return(Nil)

// ***[ JACGSOFT ]******* //

Continue the discussion