FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Ayuda con ADODB
Posts: 158
Joined: Tue Oct 11, 2005 03:10 PM
Ayuda con ADODB
Posted: Thu Aug 01, 2013 12:18 AM
Buenas noches.

Estoy tratando de armar un comando para ADODB, con el siguiente código:
Code (fw): Select all Collapse
oCmd:=TOleAuto():New( "ADODB.Command" )
      oCmd:ActiveConnection:=oContable:oConn
      oCmd:CommandType:=adCmdStoredProc
      oCmd:CommandText:="sp_CONTABLE_UPDATE"  // Strored Procedure Name

      //Se Crean los parametros antes de ser enviados al Stored Procedure
      oParam := oCmd:CreateParameter( "gsid", adChar, adParamInput )  //Columna para el "update ..... where id = ....
      oCmd:Parameters:Append( oParam )   ----------------------------------------------------------------------------------------------------->>> AQUI ME DA EL ERROR
      oParam := oCmd:CreateParameter( "gsfechafin", adDate, adParamInput )
      oCmd:Parameters:Append( oParam )
      oParam := oCmd:CreateParameter( "gshorafin", adChar, adParamInput )
      oCmd:Parameters:Append( oParam )
      oParam := oCmd:CreateParameter( "gsatendidos", adInteger, adParamInput )
      oCmd:Parameters:Append( oParam )
      oParam := oCmd:CreateParameter( "gscefectivo", adInteger, adParamInput )
      oCmd:Parameters:Append( oParam )
      oParam := oCmd:CreateParameter( "gsefectivo", adDecimal, adParamInput )
      oCmd:Parameters:Append( oParam )
      oParam := oCmd:CreateParameter( "gsccredito", adInteger, adParamInput )
      oCmd:Parameters:Append( oParam )
      oParam := oCmd:CreateParameter( "gscredito", adDecimal, adParamInput )
      oCmd:Parameters:Append( oParam )
      oParam := oCmd:CreateParameter( "gsctarjeta", adInteger, adParamInput )
      oCmd:Parameters:Append( oParam )
      oParam := oCmd:CreateParameter( "gstarjeta", adDecimal, adParamInput )
      oCmd:Parameters:Append( oParam )



y obtengo el siguiente error:

Time from start: 0 hours 1 mins 44 secs
Error occurred at: 31/07/2013, 19:00:59
Error description: Error ADODB.Command:PARAMETERS/14 DISP_E_BADPARAMCOUNT: APPEND
Args:
[ 1] = O ADODB.Command:CREATEPARAMETER

Stack Calls
===========
Called from: source\rtl\win32ole.prg => TOLEAUTO:APPEND( 0 )
Called from: Source\PdeVenta.prg => FINVENTA( 669 )

Espero que alguien me pueda ayudar.
Gracias.
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Ayuda con ADODB
Posted: Thu Aug 01, 2013 10:20 AM

For adChar and adVarChar you need to specify the Size as the 4th param.
oParam := oCmd:CreateParameter( "gsid", adChar, adParamInput, nSize )

For adNumeric or adDecimal, you have set Precision and NumericScale properties of the Paramter object before appending.

Regards



G. N. Rao.

Hyderabad, India
Posts: 158
Joined: Tue Oct 11, 2005 03:10 PM
Re: Ayuda con ADODB
Posted: Thu Aug 01, 2013 02:18 PM
nageswaragunupudi

thanks for the help, now presents the following error
when executing the command.

Code (fw): Select all Collapse
TRY
          oCmd:Parameters( "gsid" ):Value        := StrZero( oCaja:id, 2 ) + DToS( Date() ) + StrZero( oSys:nUsuario, 4 )
          oCmd:Parameters( "gsfechafin" ):Value  := StrTran( DToC( Date() ),"/","-")
          oCmd:Parameters( "gshorafin" ):Value   := "'"+Time()+"'"
          oCmd:Parameters( "gsatendidos" ):Value := 1
          IF aGetCobro[1] > 0 //Efectivo
             oCmd:Parameters( "gscefectivo" ):Value := 1
             oCmd:Parameters( "gsefectivo" ):Value  := aGets[01]
          ENDIF
      CATCH oErr
         RETURN lTerminoOk
      END
      oCmd:Execute() ------------------------------------->>>> AQUI EL ERROR


Time from start: 0 hours 0 mins 56 secs
Error occurred at: 01/08/2013, 09:06:10
Error description: Error ADODB.Command/6 DISP_E_UNKNOWNNAME: EXECUTE
Args:

Stack Calls
===========
Called from: source\rtl\win32ole.prg => TOLEAUTO:EXECUTE( 0 )
Called from: Source\PdeVenta.prg => FINVENTA( 743 )
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Ayuda con ADODB
Posted: Thu Aug 01, 2013 08:42 PM

Please keep in mind:

  1. You have to assign values to all parameters. You can not ommit any.
  2. For adDate parameter assign date value ( not character value )
  3. For adChar your string length should exactly match the parameter "size"
  4. For adVarChar, your string length should not exceed the size.

Please check your assignments for each parameter carefully

Regards



G. N. Rao.

Hyderabad, India
Posts: 158
Joined: Tue Oct 11, 2005 03:10 PM
Re: Ayuda con ADODB
Posted: Fri Aug 02, 2013 09:39 PM

nageswaragunupudi :

Excellent thank you very much, was going wrong variable.

Hasta luego/So long! :D

Continue the discussion