domingo, 26 de diciembre de 2010

Feliz Navidad 2010

Amigos,

He dejado de escribir por unos meses, ha sido un año muy difícil. Tanto en lo profesional como en lo personal.

Desde luego, hemos logrado superar algunos problemas y otros espero se estén solucionando.

Espero subir mas novedades con lo que he venido aportando y escribir más seguido.

Les deseo a todos una Feliz Navidad en compañía de todos su seres queridos y que la paz, armonía y unión reinen en esta navidad y en todos los días de su vida.

Saludos
Sinceramente
wmormar

lunes, 5 de julio de 2010

tmysql 20100705

Correcciones menores

Corrección método seek()
Eliminación de tmysqlrow()

Aqui el link de descarga

Saludos

viernes, 2 de julio de 2010

Tmysql build 20100702

Nuevo build de la tmysql.

Novedades:

-- Corregido el uso de seek quedando:
oQry := omysql:query( "select * from clientes" )
? oQry:fieldget(1), oQry:fieldget( "codigo" ), oQry:codigo

oQry:codigo := 102030


? oQry:fieldget(1), oQry:fieldget( "codigo" ), oQry:codigo

hRow := oQry:seek( "codigo=102030",, {"*"} )
? hRow:codigo, hrow:descripcion

hRow := oQry:seek( "codigo=102030",, {"codigo"} )
? hRow:codigo

? oQry:seek( "102030", "codigo" ) // aquí regresa .t. o .f.

-- Se optimizan métodos de tmysqlquery() y tmysqltable

sin tanto preambulo como siempre AQUI LA DESCARGA

saludos

lunes, 28 de junio de 2010

TMYSQL Modificacion build 2010-06-28

Se ha modificado a petición de Ariel (argentina) el comportamiento del método Seek(), quedando de la siguiente manera.

oQry := oServer:Query( "SELECT * FROM clientes" )

Pensando que podemos hacer las busquedas así:

lFound := oQry:seek( "cliente = '20' )
lFound := oQry:seek( "20", "cliente" )

aReturn := oQry:seek( "cliente='20'",, {"nombre", "cliente", "direccion" }

AQUI LA DESCARGA

saludos

pd. servido Ariel

sábado, 26 de junio de 2010

TMYSQL Modificacion build 2010-06-27

Amigos,

Aquí una actualización de la tmysql a la fecha del título, las modificaciones son:

Para ver la fechal del build de la lib
? oServer:cBuild

+ Modificación del método save()
No grababa, tenia un pequeño problema, detectado por Luis

+ Se adiciona la funcion setxbrowseold( oBrw, oQry, aFields )
Para versiones de FWH antigüas

oQry := oServer:Query( "SELECT * FROM clientes" )
El formato de aFields

aFields := { ;
"NAT", ;
{ "codigo", "Mi clave" }, ;
{ "nombre", "Nombre de mi clave" } ;
}

Bueno, espero sea de utilidad.

Como siempre AQUI LA DESCARGA

Quedo pendiente de los comentarios.

saludos

jueves, 17 de junio de 2010

Novedades en :Seek()

Hola a todos,

Dejamos a su disposicion una nueva y rapida forma de verificar un dato dentro de una tabla cualquiera independiente del query en curso.

oServer:Seek( cTable, cQuery ) -> lFound


Ej.

lReto:= oServer:Seek( "clientes", "codigo = 123456" )


Aqui la lib : http://www.box.net/shared/lut1rt9tyc

Espero les sirva.
Saludos.

domingo, 30 de mayo de 2010

Instalación de MySQL

Ante todo doy las gracias a William Morales por permitir contarles mis inicios con MySQL.
En este primer post voy a contar mi experiencia al instalar el servidor en mi notebook con Windows Vista Home Basic.

1°) Baje de la página de MySQL el instalador http://dev.mysql.com/downloads/mysql/
en mi caso, he bajado el archivo zip para Windows (x86,32 bit) y lo descomprimí para luego ejecutar el fichero setup.exe

2°) De las tres opciones para realizar la instalación, elegí la primera de ellas que es la de instalación típica, y luego fui seleccinando las opciones por defecto, hasta llegar a nombre de usuario (root) y password

3°) Para verificar que el servidor esta funcionando, fui a la MySQL command Line Cliente y ahi ingreso el pass
Si todo esta bien veras el prompt de MySQL>




Espero que les sea útil para quienes se quieren iniciar con MySQL, iré subiendo al blog todo lo valla aprendiendo para compartirlo con quienes esten interesados.
Saludos cordiales
Marcelo Roggeri

lunes, 12 de abril de 2010

FWH Generator 1.5

Amigos,

Pos aquí dejando la actualización 1.5 de FWH Generator.

AQUI LA DESCARGA FWHGen1.5.EXE

Sin tanto preámbulo aquí las modificaciones.

+ Se agrega botón para grabado de parámetros
! Se corrige parte del código al recargar la lista de fuentes
+ Se adicionan dos botones para seleccionar
Todo o Ninguno de la lista

Bueno, esperando sea de ayuda por aquí ando por cualquier duda

Saludos
William Morales

PD. Mario no he incluido aún las imágenes que me enviaste, será para la próxima, Gracias

sábado, 27 de febrero de 2010

Y dicen que no se renace...

Bueno amigos,

Como muchos ya habrán leído se ha creado un nuevo motor de base de datos llamado MariaDB (llamado en honor a la hija del "Monty", creador y fundado de MySQL).

Este motor se ha generado por la compra de MySQL por Sun y posteriormente por Oracle.

Estos son los lugares oficiales donde podrán leer información al respecto.

Según las pruebas, instales MySQL o MariaDB su uso es transparente con la TMySQL.

Esperemos haya más información.

MONTY - MARIADB

Saludos

sábado, 6 de febrero de 2010

TmySql Actualización 6.feb.2010

Bueno,

En esta ocasión he actualizado los modulos de respaldo y restauración de información de contenedores y sus respectivas tablas.

AQUI LA DESCARGA

La sintaxis de backup() quedó de la siguiente manera:
oCon:backup( aSelect, cFile, lDrop, .f., oDlgsql )

Y del restore() asi quedó:
oCon:restore( aSelect, cFile, oDlgsql )

La explicación de cada parámetro es explicado en la entrada anterior.

Cualquier duda andamos por el Messenger o por aquí.

Saludos

domingo, 24 de enero de 2010

Impresión directa

Amigos,

He realizado una clase para imprimir directamente a impresoras matriciales (no he checado con otro tipo de impresoras), esto es, sin importar si son Paralelas, Seriales, USB, WIFI u otras, siempre y cuando estén instaladas en windows.

AQUI LA DESCARGA

Sin más preambulo, aquí un ejemplo de uso:

#include

FUNCTION main()
LOCAL oTck
LOCAL nRow := 1

oTck := TDirectPrint():new()
? oTck:cIncos, oTck:cCredits
oTck:nCopy := 1

oTck:say( nRow++, 10, "William morales" )
oTck:say( nRow++, 12, "Gladys sanchez" )
oTck:say( nRow++, 00, "" )
oTck:jump( 10 )

oTck:sendtoprinter()

? "Termino de imprimir"

RETURN NIL

En el archivo de descarga viene la LIB, EXE y el PRG de ejemplo.
Y aquí un desgloce de lo que hasta ahora contiene.

DATAS
cIncos.- Nombre y versión de la clase
cBuild.- Fecha de creación de la LIB
cCredits.- Créditos de autoría y tester
nRow.- Línea de impresión
nCol.- Columna de impresión
cPrinter.- Nombre de la impresora a enviar
cDocument.- Nombre del documento que aparece en el Spooler de windows
nCopy.- Número de copias del documento a imprimir

new( cPrinter ).- Inicialización de la clase y (opcional) pasar nombre de la impresora, si no se pasa, se tomará la que este predeterminada en el momento.
printerdefault().- Asigna la impresora default a cPrinter
setlpt( nLpt ).- Asigna a cPrinter la impresora que esté asignada al puerto indicado
jump( nJump ).- Salta n lineas
say( nRow, nCol, cText ).- Imprime en la línea, columna especificada el texto enviado
opencash( cPrinter, nCash ).- Abre un cajón de dinero, pasandole que impresora se usa. "epson", "star" y el número de cajón a abrir.
sendtoprinter().- Envía a la impresora
checkport( nPort ).- Checa si en el puerto LPT especificado hay impresora asignada
eject().- Aplica un salto de página

Distintos envíos de secuencias de ESC a la impresora.
beginprint().- Inicializa la impresora, por si se imprimió antes un grafico
endprint().- Finaliza la impresión
bold( lOnOff ).- Habilita o deshabilita negritas
condensed().- Habilita condensada
normal().- Habilita o coloca impresión a texto normal
expansive( lOnOff ).- Habilita o deshabilita letras grandes
superscript( lOnOff ).- Habilita o deshabilita superscript
subscript( lOnOff ).- Habilita o deshabilita subscript
underline( lOnOff ).- Habilita o deshabilita underline

Bueno, es solo el principio, se aceptan sugerencias, críticas, etc.

Desde luego, espero comentarios o adiciones para poder haciendola estable y mas potente.

Por mi no se detengan a comentar o usar, si necesitan algo específico hagamos los comentarios y evaluamos.

Saludos y realmente espero podamos ahora si, poder comentar o sugerir.

Sinceramente.
William Morales

miércoles, 20 de enero de 2010

TMYSQL (backup-restore)

Amigos,

He adicionado el modulo de respaldos y restauración a la clase TMySQL, sin mas preámbulo aquí la manera de usarlo.

** BACKUP **

aSelect := { "barras", "productos", "usuarios" }
cFile := "incos.sql"
lDrop := .t.
lOver := .t.
MSGRun( "Generando respaldo, espere por favor...",, {|oDlgsql| nItem := oCon:backup( aSelect, cFile, lDrop, lOver, oDlgsql )} )

Aquí la descripción de los datos a pasar.

aSelect.- Arreglo unidimensional conteniendo la lista de tablas a respaldar.
cFile.- Nombre de archivo con extensión en donde se guardará el respaldo.
lDrop.- Valor lógico donde se define si se incluye la instrucción DROP TABLE y la creación de la tabla.
lOver.- Valor lógico donde indica si el archivo de respaldo se sobreescribe o no.
oDlgsql.- Objeto en este caso el del MSGRUN para visualizar el avance del respaldo.

Valores que retorna en este caso guardado en la variable nItem.

0.- Ejecutado correctamente.
1.- No hay contenedor seleccionado (base de datos)
2.- Si el archivo de respaldo existe
3.- No selecciono tablas para respaldar.

** RESTORE **

aSelect := { "barras" }
cFile := "incos.sql"
MSGRun( "Restaurando información, espere por favor...",, {|oDlgsql| nItem := oCon:restore( aSelect, cFile, oDlgsql )} )

Descripción de datos a pasar.

aSelect.- Arreglo unidimensional que contiene las tablas a restaurar. Cabe mencionar que se puede seleccionar que tablas restaurar.
cFile.- Nombre del archivo que contiene el respaldo.
oDlgsql.- Objeto en este caso el del MSGRUN para visualizar el avance del respaldo.

AQUI LA DESCARGA

Sería importante comentar su uso y si está funcionando todo bien. Acá hicimos pruebas, pero algo pudo pasarse.

Espero comentarios pues son inyecciones de ánimo.

Saludos

William Morales

viernes, 1 de enero de 2010

Feliz año 2010

Amigos,

Mis mas sinceros deseos para este año que inicia y que todos nuestros proyectos sean exitosos.

Que la dicha, prosperidad, amor y sobre todo salud se derramen en cada uno de nosotros y nuestras familias.

saludos

sinceramente