la fuente (font) del editor de WD es horrible.
Lo mejor es cambiarla cuanto antes. Lo puedes hacer desde options:


la fuente (font) del editor de WD es horrible.
Lo mejor es cambiarla cuanto antes. Lo puedes hacer desde options:


Como todavía estoy trabajando con la versión 20, pongo aquí el link de las novedades en Español: https://www.pcsoft-windev-webdev.com/WX20-Features_ES.pdf
Cuando estás en desarrollo, en el Analisis sueles tener tablas como:
– product
– customer
– order
etc…
Pero el cliente cuando ha instalado la base de datos le ha puesto una extensión por ejemplo: ph_
Y así el cliente tiene las tablas como:
– ph_product
– ph_customer
– ph_order
Tu aplicación dará error, cuando la corra el cliente salvo que al principio del proyecto hagas.
DB_ext is string = "ph_" HChangeName(product, DB_ext + "product") HChangeName(customer, DB_ext + "customer") HChangeName(order, DB_ext + "order")
iDestination(iPrinter,"Imprimiendo Documento de venta") iCreateFont(1, 9, iNormal, "Times New Roman", iBlack, 0) iPrint(iFont(1)+iXPos(0,False)+ "Vendedor: " ) iPrint(iFont(1)+iXPos(0,False)+"Fecha: "+ " Hora: "+TimeSys() ) iPrint(iFont(1)+iXPos(0,False)+"Cliente: " ) iPrint(iFont(1)+iXPos(0,False)+"NIF: " ) iPrint(iFont(1)+iXPos(0,False)+"Direccion: ") iPrint() iEndPrinting()
Si haces una consulta a una tabla con espacios en vez de:
Select * from `mi tabla`
es
Select * from [mi tabla]
Esto me parece que lo han cambiado en la version 22 y ya se puede poner con comillas
Las librerias del MySql las puedes poner en el proyecto (las correspondientes de 32 y 64 según el tipo de aplicación).
pero, hay un sitio mejor que sirve para todas las aplicaciones que hagas:
C:\WinDev 20\Programs\Framework\Win32x86 (para las de 32)
C:\WinDev 20\Programs\Framework\Win64x86 (para las de 64)
Ahí las tendrás siempre disponibles para todos los proyectos.
Al entregar el ejecutable al cliente tienes que adjuntarle las librerías correspondientes.
En el ejemplo anterior se creaba un cursor partiendo de una tabla existente.
En este caso se crea totalmente desde 0 el cursor:
CRES is Data Source
AFile is File Description
AnItem is Item Description
// Nombre y descripcion del cursor
AFile..Name = "CRES"
AFile..Type = hFileNormal
AFile..FicCryptMethod = hCryptStandard
// Campo tipo texto
AnItem..Name = "TITULO"
AnItem..Type = hItemText
AnItem..Size = 40
HDescribeItem(AFile, AnItem)
// Campo numerico
AnItem..Name = "IMPORTEd"
AnItem..Type = wlNumeric
AnItem..Size = 10
HDescribeItem(AFile, AnItem)
// Validates the description of the data file
HDescribeFile(AFile)
// Nos situamos en un directorio de temporales para crear el cursor fisico
HChangeDir(CRES, "C:\TEMP\")
// Se crea el fichero. Lo crea con ese nombre y la extension *.FIC
HCreation( CRES )
// vinculamos temporalmente el cursor al analisis
HDeclareExternal("C:\temp\CRES.fic", "cCursor")
lqQry is Data Source
lcSQL is string
// Preparamos cursor
lcSQL = "Select * from tabla1 where 1 = 0"
HExecuteSQLQuery(lqQry, lcSQL)
// borramos ficheros anteriores
fDelete("C:\temp\tmp.fic")
fDelete("C:\temp\tmp.ndx")
// guardamos el resultado en un fichero
IF HToFile(lqQry, "C:\temp\tmp.fic") = True THEN
Trace("si")
END
// vinculamos temporalmente el cursor al analisis
HDeclareExternal("C:\temp\tmp.fic", "cCursor")
// A continuacion se puede hacer una relacion con el cursor lcSQL = "Select
* from tabla2 left join tabla2.campo1 = cCursor.Capo1"
HExecuteSQLQuery(lqQry, lcSQL)
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
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