Ven algun error ?

Ven algun error ?

Postby Armando » Sat May 17, 2008 9:23 pm

Amigos:

tengo el siguiente código

Code: Select all  Expand view
oRsOdc:CursorLocation   := adUseClient
oRsOdc:LockType         := adLockOptimistic
oRsOdc:CursorType         := adOpenDynamic
oRsOdc:Source            := "SELECT hdr_odc,hdr_fde,hdr_nom,hdr_pro,hdr_tou,hdr_imp FROM HdrOdc WHERE " + ;
                           "YEAR(HDR_FDE) = " + "'" + STR(nAmo,4,0) + "'" + " ORDER BY hdr_odc"
oRsOdc:ActiveConnection(oCon)

TRY
   oRsOdc:Open()
   oRsOdc:MoveFirst()
CATCH oError
   MsgStop( "No se ha podido abrir el RECORDSET !", oApp:cAplicacion)
   RETURN(.F.)
END


Y funciona bien porque el SELECT obtiene registros para crear el RecordSet, pero cuando modifico el valor de nAmo para hacer que el select no encuentre registros me aparece el mensaje "No se ha podido crear el RECORDSET !", que hay de error en mi código ?

Saludos y gracias por el soporte
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3070
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Postby Adolfo » Sat May 17, 2008 11:55 pm

Armando...

Tienes un recordset VACIO, por eso te genera un error la Linea

oRsOdc:MoveFirst()

Antes de hacer un movefirst() debes preguntar si es (BOF y EOF) o si el ::oRcs:RecordCount() te devuelve 0

Un vez capturado ese error, sigues sin problemas.

Desde Chile
Adolfo
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1650
User avatar
Adolfo
 
Posts: 846
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile

Postby Adolfo » Sun May 18, 2008 12:02 am

P.D.

Se me olvidaba, pero tengo curiosidad....

Porque los nombres de tus campos son tan iconograficos...

hdr_odc,hdr_fde,hdr_nom,hdr_pro,hdr_tou,hdr_imp

Cuando puedes perfectamente usar, fechavence, nombre, producto etc etc
Yo recuerdo que en los primeros tiempos de Clipper, por alla con el SUMMER 86, era una necesidad para determinar de que dbf venian esos campos y distinguirlos al programar, pero con el uso del ALIAS, eso se dejo de lado.
Es mas facil leer CLi->Nombre y Prov->nombre que cli_nom y prov_nom, y de hecho con SQL tambien y mejor.

"select CLIENTES.RUT, CLIENTES.RAZON from CLIENTES" o...

"select DET.DOC, DET.NUMERO, DET.CANTIDAD, DET.UNITARIO, DET.TOTAL from DETVENTA as DET "

Un consejo... eso..
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1650
User avatar
Adolfo
 
Posts: 846
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile

Postby Armando » Sun May 18, 2008 3:01 am

Adolfo:

Muchas gracias por el tip, problema solucionado.

Efectivamente saque el MoveFirst y santo remedio.

Porque los nombres de tus campos son tan iconograficos...



Jejejeje, ya me descubriste, por lo que has comentado todo mundo se ha dado cuenta que tal vez soy el más viejo del foro (58 años, bien vividos) y pues ta te daras cuenta que solo es la fuerza de la costumbre utilizar los nombres de los campos así.

Para mi las tres primeras letras me indican el nombre de la tabla de donde estoy tomando el campo, las últimas tres letras son el nombre del campo y el guíon bajo es el separador.

En mis inicios, por ahi de 1969, Los maestros nos insistieron mucho en esa forma de nombrar los campos, me incie con los MainFrame de IBM, S/360, S3/10, S/32, luego el S/34, S/36, hasta el actual AS/400, empece armando tableros para la tabuladora IBM/407, pase por las tarjetas perforadas de 80 columnas, despues salieron las de 96 columnas pero casí la mitad de tamaño de las de 80 columnas, despues los disquetes de 8", posteriormente los disquetes de 5 1/4", los de 31/2" y ahora los CDs, DVDs, etc etc, que tiempos aquellos !, snif snif :cry: , estoy llorando.

Pero eso no te quita razón, tomaré en cuenta tus recomendaciones.

Saludos y gracias por el apoyo
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3070
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 8 guests