Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Sobre COM+, WIN 2000 y Transacciones
Message
 
 
À
14/08/2003 18:40:21
Information générale
Forum:
Visual FoxPro
Catégorie:
COM/DCOM et OLE Automation
Divers
Thread ID:
00820277
Message ID:
00820460
Vues:
25
Hola, Carlos.

Sólo un tip al poner código en los mensajes. Enciérralo dentro del tag < PRE > (sin los espacios), y UT se encarga de aplicarle colores como en VFP.

Este tag además hace que los espacios en blanco se respeten, y el código no pierda legibilidad.

Abrí y cerré el tag PRE sobre un fragmento de tu código para que lo veas.

Un abrazo,
Martín

>Actualiza Transacción (Cliente Servidor)
>
>TRY
>	m.llRetorno=.F.
>
>***********/cursor que almacena las conecciones /******************
> CREATE CURSOR c_conecciones (DATABASE c(100), coneccion c(100), handle N(4),ODBCH N(10), SOURCETYPE N(2))
>=CURSORSETPROP("Buffering", 3, "c_conecciones")
>FOR i= 1 TO 100
>	x="THISFORM.DATAENVIRONMENT.cursor"+ALLT(STR(i))
>	Y="THISFORM.DATAENVIRONMENT.cursor"+ALLT(STR(i)+".BufferModeOverride"
>		z=x+".alias"
>		IF TYPE("&x")="O"
>			m.lcTable=&z
>			SELEC &lcTable
>			m.lnSourceType=CURSORGETPROP('SourceType',lcTable)
>			IF m.lnSourceType=2 OR m.lnSourceType=4
>			   m.lcDataBase=CURSORGETPROP('Database',lcTable)
>			   m.lcConeccion=CURSORGETPROP('ConnectName',lcTable)
>			   m.lnHandle=CURSORGETPROP('ConnectHandle',lcTable)
>			   m.lnODBCH=SQLGETPROP(m.lnHandle,"ODBChdbc")
>			   SELECT c_conecciones
>			    IF ALLTRIM(m.lcConeccion) <> ALLTRIM(c_conecciones.coneccion)
>				APPEND BLANK
>				REPLACE c_conecciones.DATABASE WITH  ALLTRIM(m.lcDataBase)
>				REPLACE c_conecciones.coneccion WITH ALLTRIM(m.lcConeccion)
>				REPLACE c_conecciones.handle WITH m.lnHandle
>				REPLACE c_conecciones.ODBCH WITH m.lnODBCH
>				REPLACE c_conecciones.SOURCETYPE WITH m.lnSourceType
>			ENDIF
>		       ENDIF
>		ENDIF
>	ENDFOR
>	SELECT c_conecciones
>	******************************/ /******************
>	SCAN
>		SQLSETPROP(c_conecciones.handle, 'Transactions', 2)
>		IF THISFORM.Tipo_vista='SQL'
>			SQLExec(c_conecciones.handle, 'BEGIN TRANSACTION' )
>		ENDIF
>	ENDSCAN
>
>	******************************/ Actualizar tablas /*******************************
>	m.lcNombreTablas=''
>	m.lnModified=0
>	FOR i= 1 TO 100
>		x="THISFORM.DATAENVIRONMENT.cursor"+ALLT(STR(i))
>		Y="THISFORM.DATAENVIRONMENT.cursor"+ALLT(STR(i))+".BufferModeOverride"
>		z=x+".alias"
>		IF TYPE("&x")="O"
>			m.lcTable=&z
>			SELEC &lcTable
>			IF &Y=5
>				IF NOT TABLEUPDATE(1,.T.,m.lcTable)
>					= AERROR(aErrorArray)
>					IF aErrorArray[1]=1526
>						THROW aErrorArray[3]+"(1) El error se originó actualizando: "+m.lcTable
>					ELSE
>						THROW aErrorArray[2]+"(1) El error se originó actualizando: "+m.lcTable
>					ENDIF
>				ENDIF
>			ENDIF
>		ENDIF
>		SELECT &lcTable
>	ENDFOR
>
>
>	SELECT c_conecciones
>	SCAN
>		IF THISFORM.Tipo_vista='SQL'
>			m.lnCommit=SQLExec( c_conecciones.handle, 'IF @@TRANCOUNT > 0 COMMIT' )
>		ELSE
>			m.lnCommit=SQLCOMMIT(c_conecciones.handle)
>		ENDIF
>		IF m.lnCommit=-1
>			THROW "Transacción no se pudo actualizar"
>		ENDIF
>	ENDSCAN
>
>	m.llRetorno = .T.
>
>
>CATCH TO loException
>	SELECT c_conecciones
>	SCAN
>		IF THISFORM.Tipo_vista='SQL'
>			=SQLExec( c_conecciones.handle, 'IF @@TRANCOUNT > 0 ROLLBACK' )
>		ELSE
>			=SQLROLLBACK(c_conecciones.handle)
>		ENDIF
>	ENDSCAN
>	MESSAGEBOX(Exception_Error(loException),0+16,THISFORM.CAPTION)
>	m.llRetorno = .F.
>
>FINALLY
>	SELECT c_conecciones
>	SCAN
>		=SQLSETPROP(c_conecciones.handle, 'Transactions', 1)
>	ENDSCAN
>ENDTRY
>
>RETURN m.llRetorno
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform