FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Error con ADO y MySql
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Error con ADO y MySql
Posted: Fri Apr 18, 2008 08:37 PM
Amigos del foro:

En el siguiente c贸digo:

TRY
	oRsCxp	:=	TOleAuto():New("adodb.recordset")
CATCH oError
	MsgStop( "No se ha podido crear el RECORDSET de CUENTAS POR PAGAR !", oApp:cAplicacion)
	RETURN(.F.)
	oRsCxp	:=	NIL
END

oRsCxp:CursorLocation	:= adUseClient
oRsCxp:LockType			:= adLockOptimistic
oRsCxp:CursorType			:= adOpenDynamic
oRsCxp:Source				:= "SELECT * FROM carcxp;"
oRsCxp:ActiveConnection(oCon)

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

MsgInfo(oRsCxp:RecordCount())
//oRsCxp:MoveFirst()
DO WHILE !  oRsCxp:EOF()
	cCmdSql	:= "UPDATE proyecto SET PRO_IMA = ROUND(PRO_IMA + " + ;
					STR(oRsCxp:Fields("CAR_NET"):Value,10,2) + ;
					",2) WHERE PRO_PRO = " + "'" + oRsCxp:Fields("CAR_PRO"):Value + "'" + " ;"
	TRY
		oCon:Execute(cCmdSql)
	CATCH oError
		MsgInfo("No pude ejecutar el comando " + cCmdSql,oApp:cAplicacion)
		RETURN(.F.)
	END
	oRsCxp:MoveNext()
ENDDO
oRsCxp := NIL


Me tira un error en la l铆nea de c贸digo oRsCxp:MoveFirst(), por eso la tengo comentada, tal parece que la tabla no tuviera registros pero s铆 los tiene pues abro la tabla con el administrador y veo los registros sin embargo el c贸digo me dice que esta vacia.

El error que me tira es el siguiente:

Error description: Error adodb.recordset/16389 E_FAIL: MOVEFIRST
Args:

Tengo varios RECORDSET antes y despues del trozo de c贸digo que les meustro y esos funcionan bien.

Que podr谩 ser ?

Saludos
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
Posts: 1144
Joined: Mon Feb 05, 2007 07:15 PM
Error con ADO y MySql
Posted: Fri Apr 18, 2008 09:18 PM

Armando amigo como estas,,

oyes el punto y coma que tienes en el qry. que significa?

oRsCxp:Source := "SELECT * FROM carcxp;"

saludos....

Cesar Cortes Cruz

SysCtrl Software

Mexico



' Sin +- FWH es mejor "
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Error con ADO y MySql
Posted: Fri Apr 18, 2008 09:28 PM

Que pasa ?, paisano:

Mira el punto y coma es irrelevante, diria yo que hasta innecesario, solo que me he quedado con la costumbre pues todos los comandos SQL deben terminar con ; , pero en el caso de la sentencia SELECT no es necesario.

Saludos

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
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Error con ADO y MySql
Posted: Sat Apr 19, 2008 08:17 AM
Armando,

Te pongo el c贸digo que uso:


memvar oRs

oRs := TOleAuto():New("adodb.recordset")
oRs:CursorLocation := 3 // adUseClient
oRs:LockType := 3 // adLockOptimistic
oRs:CursorType := 1 // adOpenKeyset
oRs:Source := 'SELECT * FROM EMPLOYEES ORDER BY LAST_NAME'
oRs:ActiveConnection(oCon)
TRY
oRs:Open( )
CATCH oError
AdoError(oCon, oError) // funcion mcn32.lib
RETURN nil
END

IF oRs:EOF .or. oRs:BOF
msgstop ("Fichero vacio")
oRs:CLOSE()
oRS:=Nil
RETURN nil
ENDI

oRs:MoveFirst()



Veo solo diferencias en las dobles comillas de la orden SELECT y en el CURSORTYPE.
Un saludo



Manuel
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Error con ADO y MySql
Posted: Sat Apr 19, 2008 12:58 PM

Manuel:

Te agradezco la respuesta pero nop :-(

He cambiado mi c贸digo a la forma en como lo tienes t煤 pero ni as铆 funca.

Le agregue estas lineas
IF oRs:EOF .or. oRs:BOF
MsgInfo("La tabla esta vacia !")
ENDIF

Y me muestra el mensaje de que esta vacia, sin embargo estoy seguro de que la tabla tiene registros pues los he visto con el administrador.

Me hace pensar que la tabla este da帽ada, sin embargo el resto de la aplicaci贸n la lee sin problemas, ya le corr铆 los procesos de revisi贸n que me permite el ADMINISTRADOR de MySql pero no, no hay de pi帽a.

Un abrazo

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

Continue the discussion