Páginas

jueves, 29 de abril de 2010

Compilar Objetos inválidos en Oracle

Este código le ayudará a compilar los objetos que estén con estado inválido
CREATE OR REPLACE PROCEDURE COMPILAR IS
--- Se Obtiene la Lista de Objetos Inválidos
CURSOR compila IS
SELECT 'alter '||DECODE(object_type,'PACKAGE BODY','PACKAGE',object_type)||' '||owner||'.'||object_name||' compile'||
       DECODE(object_type,'PACKAGE BODY',' BODY','') sentencia, owner, object_type, object_name
FROM ALL_OBJECTS
WHERE status<>'VALID'
ORDER BY DECODE(object_type,'PACKAGE BODY',1,0),1;
BEGIN
FOR C IN compila
    LOOP
EXECUTE IMMEDIATE C.sentencia;
END LOOP;
END;

Obteniendo información de la PC por medio de API’s desde VFP

Origen del Código news2news

CLEAR
#DEFINE MEMORYSTATUS_SIZE  32
DECLARE GlobalMemoryStatus IN kernel32;
    STRING @lpBuffer

PRIVATE cBuffer
cBuffer = REPLI(Chr(0), MEMORYSTATUS_SIZE)
= GlobalMemoryStatus(@cBuffer)
= Writeln("Memoria en USO, % ...................",  5)
= Writeln("Memoria Fisica en bytes ..........",  9)
= Writeln("Memoria Física disponible, bytes ...", 13)

PROCEDURE Writeln(cCaption, nOffs)
    LOCAL nSize
    nSize = buf2dword(SUBSTR(cBuffer,nOffs,4))
    ? cCaption + " " + ALLTRIM(TRANS(nSize, "999,999,999,999,999,999"))

FUNCTION buf2dword(cBuffer)
RETURN Asc(SUBSTR(cBuffer, 1,1)) + ;
    BitLShift(Asc(SUBSTR(cBuffer, 2,1)),  8) +;
    BitLShift(Asc(SUBSTR(cBuffer, 3,1)), 16) +;
    BitLShift(Asc(SUBSTR(cBuffer, 4,1)), 24)

Nuevo Windows Live Messenger

 

Ya está desarrollado el nuevo Windows Live Messenger, se ve interesante, juzguen por ustedes  mismos.

http://video.latam.msn.com/watch/video/nuevo-windows-live-messenger/k630364c

Imágenes sobre el Nuevo Windows Live Messenger

http://www.microsoft.com/presspass/presskits/windowslive/imageGallery.aspx

sábado, 24 de abril de 2010

Que será

Saliendo un poco de la tecnología no se si han escuchado la canción “Que Será” de José Feliciano a muchos les gusta, sin embargo en mi caso esta canción es muy especial ya que me recuerda a mi pueblo natal. Tosagua, un cantón olvidado de Manabí Ecuador… aquí les va la letra.

Pueblo mio, que estas en la colina tendido como un viejo que se muere la pena, el abandono, son tu triste compañia pueblo mio te dejo sin alegria.

Que sera, que sera, que sera que sera de mi vida, que sera si se mucho o no se nada ya mañana se vera, y sera sera, sera lo que sera.

Ya mis amigos, se fueron casi todos y los otros partiran despues que yo. Lo siento porque amaba su agradable compañia mas es mi vida tengo que marchar.

Que sera, que sera, que sera que sera, de mi vida que sera en las noches mi guitarra dulcemente sonara y una niña de mi pueblo llorara.

Amor mio me llevo tu sonrisa que fue la fuente de mi amor primero amor te lo prometo, como y cuando no lo se mas se tan solo que regresare.

 

Ojalá que la Nueva alcalde Elva Gonzales. Saque a mi pueblo adelante.

miércoles, 21 de abril de 2010

Calculadoras Básicas hecha en VFP

Pueden utilizar este pequeño ejemplo para agregarlos a las aplicaciones.

calc

Codigo en Metodo AgregarNumero

LPARAMETERS lcNumero
SET FIXED OFF
IF lcNumero#'.' THEN
    thisform.valortexto = thisform.valortexto + lcNumero
    thisform.Refresh
    nDecimal=LEN(ALLTRIM(thisform.valortexto))-IIF(RAT('.',thisform.valortexto,1)=0,LEN(ALLTRIM(thisform.valortexto)),RAT('.',thisform.valortexto,1)-1)
    thisform.txtpantalla.value=ROUND(VAL(thisform.valortexto)*thisform.factor,nDecimal)
ELSE
    IF NOT ('.'$thisform.valortexto)
        thisform.valortexto = thisform.valortexto + '.'
    ENDIF
ENDIF

 

Còdigo en cada boton de numeros

thisform.agreganumero(ALLTRIM(this.Tag)) && en cada boton la propiedad TAG debe contener el numero

Boton Suma

thisform.procigual
thisform.operacion='+'  && en el metodo procigual se usa macrosustitucion para establecer la operacion

Codigo de metodo PROCIGUAL

IF !EMPTY(thisform.operacion) THEN
    lcSigno=thisform.operacion
    thisform.ultimonumero=thisform.txtpantalla.Value
    thisform.acumulado = thisform.acumulado &lcSigno thisform.ultimonumero
    thisform.txtpantalla.Value=thisform.acumulado
    thisform.valortexto=''
ENDIF

Espero que les haya servido de mucho el ejemplo.

Enmascaramiento por IPTABLES

Esto es necesario para poder leer desde el Outlook Cuentas de gmail.com, pasando por un proxy Linux

iptables -t nat -A POSTROUTING -s 192.168.1.120 -j MASQUERADE

Solo reemplazamos la IP por la que necesitamos, y seguimos los pasos que está en la página de gmail para configurar el outlook.

Envío de Mail desde PL/SQL

CREATE OR REPLACE PROCEDURE EnviarCorreo(ENVIA IN VARCHAR2,
RECIBE IN VARCHAR2,
ASUNTO IN VARCHAR2,
MENSAJE IN VARCHAR2)
IS
mailhost VARCHAR2(30) := ‘SERVIDORSMTP’;
mail_conn utl_smtp.connection;
crlf VARCHAR2( 2 ):= CHR( 13 ) || CHR( 10 );
mesg VARCHAR2( 32767 );
BEGIN
mail_conn := utl_smtp.open_connection(mailhost, 25);
mesg:=-- 'Date: ' || TO_CHAR( SYSDATE, 'yyyy mm  dd  hh24:mi:ss' ) || crlf ||
'From: <'||ENVIA||'>' || crlf ||
'Subject: '||ASUNTO || crlf ||
'To: '||RECIBE || crlf ||
'' || crlf || MENSAJE;
utl_smtp.helo(mail_conn, mailhost);
utl_smtp.mail(mail_conn, ENVIA);
utl_smtp.rcpt(mail_conn, RECIBE);
utl_smtp.data(mail_conn, mesg);
utl_smtp.quit(mail_conn);
END;