Problema Recorset oRs:RecordCount() (SOLUCIONADO)

Post Reply
User avatar
leandro
Posts: 958
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Problema Recorset oRs:RecordCount() (SOLUCIONADO)

Post by leandro »

Buenos días para todos, hoy me salió un error al momento de intentar contar la cantidad de registros que tiene un recorset. La consulta que estoy haciendo contiene la clausula LEFT JOIN, no se si sea por eso, lo raro es que tengo muchas de las consultas en la aplicación tienen esta clausula y funcionan bien.

La consulta:

Code: Select all

//CONSULTA DEL RESUMEN DE LAS FACTURAS POR CAJA Y FECHA
cQry:="SELECT FAC.ll_cajare,ll_fechas,"+;
"IFNULL(SUM(MOV.mm_subtot),0) AS subtotal,"+;
"IFNULL(SUM(MOV.mm_basiva),0) AS base,"+;
"IFNULL(SUM(MOV.mm_valiva),0) AS iva,"+;
"IFNULL(SUM(MOV.mm_totale),0) AS total "+;
"FROM ("+oLamcla:tFact+" FAC) "+;
"LEFT JOIN "+oLamcla:tMofa+" MOV ON FAC.ll_docume=MOV.mm_docume AND FAC.ll_consec=MOV.mm_consec "+;
"WHERE FAC.ll_cajare='"+alltrim(cCjaActiva)+"' AND FAC.ll_fechas='"+dtos(dFechaDia)+"' AND FAC.ll_anulad<>'A'"
oRs := FW_OPENRECORDSET(oCnCja,cQry,adLockOptimistic,adOpenKeyset)
NrEG := oRs:RecordCount()
 
El error:

Code: Select all

Application
===========
   Path and name: C:\DLYMA\dlyma.exe (32 bits)
   Size: 6,552,576 bytes
   Compiler version: xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613)
   FiveWin  version: FWH 19.09
   C compiler version: Borland/Embarcadero C++ 7.3 (32-bit)
   Windows version: 6.2, Build 9200 

   Time from start: 0 hours 0 mins 29 secs 
   Error occurred at: 25/01/2021, 10:14:45
   Error description: Error ADODB.RecordSet/6  DISP_E_UNKNOWNNAME: RECORDCOUNT
   Args:

Stack Calls
===========
   Called from:  => TOLEAUTO:RECORDCOUNT( 0 )
   Called from: z:\prg\R32_caja.prg => PCIERRE( 1614 )
   Called from: z:\prg\R32_caja.prg => (b)FOPCIONCAJA( 908 )
   Called from: .\source\classes\BTNBMP.PRG => TBTNBMP:CLICK( 704 )
   Called from: .\source\classes\BTNBMP.PRG => TBTNBMP:LBUTTONUP( 990 )
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT( 1791 )
   Called from: .\source\classes\BTNBMP.PRG => TBTNBMP:HANDLEEVENT( 2030 )
   Called from: .\source\classes\WINDOW.PRG => _FWH( 3559 )
   Called from:  => WINRUN( 0 )
   Called from: .\source\classes\WINDOW.PRG => TMDIFRAME:ACTIVATE( 1097 )
   Called from: z:\prg\R32_menu.prg => VTNAPRINCIPAL( 550 )
   Called from: z:\prg\R32_menu.prg => MAIN( 90 )
 
Si cambio la consulta sin la relación LEFT JOIN si me devuelve correctamente el valor 0

Code: Select all

cQry:="SELECT * FROM tbl_fact WHERE ll_consec='777777777'"
 
De antemano gracias
Last edited by leandro on Mon Jan 25, 2021 4:12 pm, edited 1 time in total.
Saludos
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
User avatar
leandro
Posts: 958
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: Problema Recorset oRs:RecordCount()

Post by leandro »

Parece que ya encontre la solución, el problema es que el recorset que devuelve tiene en el primer campo un registro null.

Image

Lo solucione de la siguiente manera:

Code: Select all

SELECT IFNULL(FAC.ll_cajare,''),IFNULL(ll_fechas,''),"+;
"IFNULL(SUM(MOV.mm_subtot),0) AS subtotal,"+;
"IFNULL(SUM(MOV.mm_basiva),0) AS base,"+;
"IFNULL(SUM(MOV.mm_valiva),0) AS iva,"+;
"IFNULL(SUM(MOV.mm_totale),0) AS total "+;
"FROM ("+oLamcla:tFact+" FAC) "+;
"LEFT JOIN "+oLamcla:tMofa+" MOV ON FAC.ll_docume=MOV.mm_docume AND FAC.ll_consec=MOV.mm_consec "+;
"WHERE FAC.ll_cajare='"+alltrim(cCjaActiva)+"' AND FAC.ll_fechas='"+dtos(dFechaDia)+"' AND FAC.ll_anulad<>'A'
 
Saludos
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
Post Reply