Conexión a MySQL

Como sabes hay 2 formas de conectarse.

Con

– HDescribeConnection (la base de datos debe estar en el análisis)
– SQLConnect (no hace falta que la base de datos esté en el análisis)

Si te conectas al Mysql con SQLConnect pero la base de datos está en otro puerto tienes que ponerle el parametro del final acabado en ;

nHandle is int
nHandle = SQLConnect(DBHostName, DB_USERNAME, lcPassword, db_database,»MySQL»,»»,»Server Port=3307;»)

IF nHandle < 0 THEN Info("Imposible conectarse") RETURN END

Invocar Objetos COM

WHEN EXCEPTION IN
    oCom is object OLE dynamic
    oCom = GetActiveObject(“SYStree.fls_sysfunc”)
    IF oCom=Null THEN
        Error("No se ha podido instanciar el objeto SYStree.fls_sysfunc")
        EndProgram()
    END
DO
    Info(oCom>>cPathDAtos + " " + oCom>>cPathRaiz)
    oCom = Null
END

Creación de controles en tiempo de ejecución

Tasa is Control
y is int = 567
WHILE NOT HOut
   //Crear el control
   Tasa <- ControlCreate(dsTasas.name, typNum, 66, y, 200, 25)
   
   //Darle Valor
   Tasa = (EDT_SubTotal * dsTasas.rate)/100
   //Maquetacion del control
   Tasa..Caption = dsTasas.name
   Tasa..Style = EDT_ID..Style
   Tasa..CaptionWidth = 150
   Tasa..HorizontalAlignment = haRight
   Tasa..InputMask = "9.999,99"
   Tasa..State = DisplayOnly
   //Ubicacion del siguiente control
   y+=30
   HReadNext(dsTasas)
END

Enviar mails

// Start an SMTP session
MySession is EmailSMTPSession
MySession..ServerAddress = "mail.mihost.com"
MySession..Name="micuenta@mihost.com"
MySession..Password="clave"
EmailStartSession(MySession)

// Build an email
MyMessage is Email
MyMessage..Sender ="micuenta@mihost.com"
Add(MyMessage..Recipient, "micuenta@mihost.com")
MyMessage..Message = "hola"
MyMessage..Subject = "asunto"

// Send the message
IF EmailSendMessage(MySession, MyMessage) = False THEN
     Error()
END

EmailReset(MyMessage)

Manejo cadenas (comparación con FoxPro)

cadenas

NOTA: Una descripción detallada del uso de funciones de manejo de cadena en Windev, lo puedes ver en: http://help.windev.com/en-US/?20001&name=Extracting_characters_or_words_from_a_string

 

NOTA 2 : En windev, casi todas las funciones suelen tener en parámetros la opción “Options”, que permite “matizar” como se hará la búsqueda o la comparación (ignorando mayúsculas y minúsculas, palabras completas, etc)

hSave

Posiblemente ya lo sepáis, pero Windev tiene los comandos: hadd y hmodify, para salvar un registro nuevo o modificado. Estos dos comandos se pueden unificar con hSave, que modifica o inserta el registro según exista o no en disco

Variables

En Windev, las variables se pasan por defecto por “Referencia” a los procedimientos y métodos (al revés que casi todos los lenguajes).

Para hacer que un procedimiento y/o método reciba el parámetro por valor, se debe hacer así:

PROCEDIMIENTO myProc( LOCAL x is int, LOCAL y is string, z is int)

Las variables “x” e “y” son locales y reciben el dato por “Valor”. La variable “z” recibe el valor por “Referencia”.

NOTA: La llamada no cambia, sería: mProc(var1, var2, var3) (donde var1 y var2 se pasan por valor y var3 por referencia).

NOTA2: Para forzar a pasar una variable por valor en la llamada de un método/función, hay que ponerla entre “dobles paréntesis”, así: mProc(var1, var2, ((var3)) ). Que como ves hace más feo el código que ponerlo en la declaración del método/función!