Quiero agradecer a todos los seguidores inscritos (y los que no) la confianza brindada, espero que el proximo año les depare los mejores momentos
I want to thank all followers attached (and those who have not) i hope the next year will send you the best moment
viernes, 24 de diciembre de 2010
lunes, 13 de diciembre de 2010
Actuazalicion / Update
Agregado metodo GetServerInfo.
Retorna Una cadena de caracteres que representa el número de versión del servidor
Agregado metodo GetClientInfo
Una cadena de caracteres que representa la versión de la biblioteca de cliente MySQLReturns a string that represents the server version number
Added Method GetClientInfo
Return a string that represents the MySQL client library version
sábado, 11 de diciembre de 2010
Dentro de GUI / Inside GUI
TDolphin ha ido subiendo escalones poco a poco, se ha aceptado en 2 GUIs diferentes, Fivewin y T-GTK
TDolphin steps has been rising gradually, has been accepted into 2 different GUIs, Fivewin and T-GTK
Fivewin: http://forums.fivetechsupport.com/viewtopic.php?f=16&t=19450&p=102455&hilit=tdolphin#p102455
* New: Support for TDolphin classes to manager Mysql, review samples/testdol.prg
T-GTK:
Para quienes desarrollan bajo Windows, ya disponible nuevo instalador estilo suite que contiene: MinGW, Harbour 2.1, GTK+, Glade, gEdit, t-gtk y TDolphin!!!
TDolphin steps has been rising gradually, has been accepted into 2 different GUIs, Fivewin and T-GTK
Fivewin: http://forums.fivetechsupport.com/viewtopic.php?f=16&t=19450&p=102455&hilit=tdolphin#p102455
* New: Support for TDolphin classes to manager Mysql, review samples/testdol.prg
T-GTK:
Para quienes desarrollan bajo Windows, ya disponible nuevo instalador estilo suite que contiene: MinGW, Harbour 2.1, GTK+, Glade, gEdit, t-gtk y TDolphin!!!
Gracias por el apoyo / Thanks for support
lunes, 15 de noviembre de 2010
Construir LIB-Ejemplos / Build LIB - Samples
Saludos
He debido haber escrito este post desde hace un tiempo atras, existe una nueva forma de construir la LIB y los ejemplos
I should write this post long time ago, exist new way to build LIB and samples
LIB
hay que configurar configurar las variables del entorno de trabajo
config the enviroment...
PRG_COMPILER
nombre del compilador PRG
PRG compiler name
Valores / Values
C_COMP_PATH
C_COMP_BIN_PATH
Existen varios script (.bat) para facilitar la configuracion del entorno
There are some batch file to make easy the enviroment config
despues de configurar el entorno ejecutar win-make.exe
after config the enviroment run win-make.exe
remark:
los script ejecutan automaticamente win-make.exe
the bath file run automatically win-make.exe
SAMPLES
Dentro de la carpeta Samples existen 2 scrip principales para construir los ejemplos
Inside samples folder there are 2 batch file to build samples
bldcon.bat
Construye los ejemplos en modo consola
Build samples in console mode
Parametros / Parameters
bldcon prgfile [yes/[no]]
prgfile nombre del archivo prg sin la extencion PRG
[yes/[no]] uso del modo embebido, por omision es no
bldfw.bat
He debido haber escrito este post desde hace un tiempo atras, existe una nueva forma de construir la LIB y los ejemplos
I should write this post long time ago, exist new way to build LIB and samples
LIB
hay que configurar configurar las variables del entorno de trabajo
config the enviroment...
- PRG_COMPILER=HARBOUR
- PRG_COMP_PATH=\harbour
- PRG_COMP_BIN_PATH=%PRG_COMP_PATH%\bin
- PRG_COMP_LIB_PATH=%PRG_COMP_PATH%\lib\win\bcc
- PRG_COMP_INC_PATH=%PRG_COMP_PATH%\include
- C_COMPILER=BCC
- C_COMP_PATH=c:\bcc582
- C_COMP_BIN_PATH=%C_COMP_PATH%\bin
- C_COMP_LIB_PATH=%C_COMP_PATH%\lib;%C_COMP_PATH%\lib\psdk
- C_COMP_INC_PATH=%C_COMP_PATH%\include
- DOLPHIN_INC=.\include
PRG_COMPILER
nombre del compilador PRG
PRG compiler name
Valores / Values
- HARBOUR
- XHARBOUR
PRG_COMP_PATH
Ruta principal de acceso al compilador PRG
Root path PRG compiler
PRG_COMP_BIN_PATH
Ruta de harbour.exe
Path of harbour.exe
PRG_COMP_LIB_PATH
Ruta de las librerias del compilador PRG
Path of PRG compiler Libraries
PRG_COMP_INC_PATH
Ruta de los archivos de cabecera del compilador PRG
Path of PRG compiler header files
C_COMPILER
nombre del compilador de C
C compiler name
Valores / Values
- BCC for borland
- MINGW32 for mingw
- MSVC32 for Microsoft 32 bit
- MSVC64 for Microsoft 64 bit
C_COMP_PATH
Ruta principal de acceso al compilador C
Root path C compiler
C_COMP_BIN_PATH
Ruta de compiler_executable
Path of compiler_executable
C_COMP_LIB_PATH
Ruta de las librerias del compilador C
Path of C compiler Libraries
C_COMP_INC_PATH
Ruta de los archivos de cabecera del compilador C
Path of C compiler header files
Existen varios script (.bat) para facilitar la configuracion del entorno
There are some batch file to make easy the enviroment config
- setenvh.bat, Harbour/Borland
- setenvhg.bat, Harbour/MiniGW
- setenvhm.bat, Harbour/Microsoft 32
- setenv64.bat, Harbour/Microsft 64
- setenvx.bat, xHarbour/Borland
- setenvxg.bat, xHarbour/MiniGW
- setenvxm.bat, xHarbour/Microsoft 32
despues de configurar el entorno ejecutar win-make.exe
after config the enviroment run win-make.exe
remark:
los script ejecutan automaticamente win-make.exe
the bath file run automatically win-make.exe
SAMPLES
Dentro de la carpeta Samples existen 2 scrip principales para construir los ejemplos
Inside samples folder there are 2 batch file to build samples
bldcon.bat
Construye los ejemplos en modo consola
Build samples in console mode
Parametros / Parameters
bldcon prgfile [yes/[no]]
prgfile nombre del archivo prg sin la extencion PRG
[yes/[no]] uso del modo embebido, por omision es no
prgfile prg name without PRG ext
[yes/[no]] activate embedded, default values is no
bldfw.bat
Construye los ejemplos en modo grafico usando Fivewin
Build samples in console mode with Fivewin
Parametros / Parameters
bldfw prgfile [yes/[no]]
prgfile nombre del archivo prg sin la extencion PRG
[yes/[no]] uso del modo embebido, por omision es no
prgfile prg name without PRG ext
[yes/[no]] activate embedded, default values is no
jueves, 30 de septiembre de 2010
BLOB-TEXT
Un BLOB es un objeto binario que puede tratar una cantidad de datos variables. Los cuatro tipos BLOB sonTINYBLOB, BLOB, MEDIUMBLOB, y LONGBLOB. Difieren sólo en la longitud máxima de los valores que pueden tratar.
Los cuatro tipos TEXT son TINYTEXT, TEXT, MEDIUMTEXT, y LONGTEXT. Se corresponden a los cuatro tipos BLOB y tienen las mismas longitudes y requerimientos de almacenamiento, segun se muestra en la siguiente tabla
Los tipos VARCHAR y BLOB y TEXT son de longitud variable. Para cada uno, los requerimientos de almacenamiento depende de la longitud de los valores de la (representados por L en la tabla precedente), en lugar que el tamaño máximo del tipo. Por ejemplo, una columna VARCHAR(10) puede tratar una cadena con una lengitud máxima de 10. El almacenamiento requerido real es la longitud de la cadena (L), más 1 byte para registrar la longitud de la cadena. Para la cadena 'abcd', L es 4 y el requerimiento de almacenamiento son 5 bytes.
Para los tipos CHAR, VARCHAR, y TEXT, los valores L y M en la tabla precedente debe interpretarse como números de caracteres en MySQL 5.0, y las longitudes para estos tipos en las especificaciones de la colmna indican el número de caracteres. Por ejemplo, para almacenar un valor TINYTEXT necesita L caracteres + 1 byte.
El motor NDBCLUSTER soporta sólo columnas de longitud fija. Esto significa que una columnaVARCHAR de una tabla en MySQL Cluster se comportará casi como si fuera de tipo CHAR (excepto que cada registro todavía tiene un byte extra). Por ejemplo, en una tabla Cluster, cada registro en una columna declarada como VARCHAR(100) necesitará 101 bytes para almacenamiento, sin tener en cuenta la longitud de la columna almacenada en cualquier registro.
Los tipos BLOB y TEXT requieren 1, 2, 3, o 4 bytes para almacenar la longitud de la columna, dependiendo de la longitud máxima posible del tipo.
Las columnas TEXT y BLOB se implementan de forma distinta en el motor de almacenamiento NDBCLUSTER , donde cada registro en una columna TEXT se compone de dos partes separadas. Una de estas es de longitud fija (256 bytes), y se almacena realmente en la tabla original. La otra consiste de cualquier dato de más de 256 bytes, que se almacena en una tabla oculta. Los registros en esta segunda tabla siempre tienen una longitud de 2,000 bytes . Esto significa que el tamaño de una columna TEXT es 256 si size <= 256 (donde size representa el tamaño del registro); de otro modo, el tamaño es 256 + size + (2000 - (size - 256) % 2000).
Las columnas BLOB se tratan como cadenas de caracteres binarias (de bytes). Las columnas TEXT se tratan como cadenas de caracteres no binarias (de carácateres). Las columnas BLOB no tienen conjunto de caracteres, y la ordenación y la comparación se basan en los valores numéricos de los bytes. Las columnas TEXT tienen un conjunto de caracteres y se ordenan y comparan en base de la colación del conjunto de caracteres asignada a la columna
No hay conversión de mayúsculas/minúsculas para columnas TEXT o BLOB durante el almacenamiento o la recuperación.
Si asiguna un valor a una columna BLOB o TEXT que exceda la longitud máxima del tipo de la columna, el valor se trunca. Si los caracteres truncados no son espacios, aparece una advertencia. Puede hacer que aparezca un error en lugar de una advertencia usando el modo SQL estricto.
En la mayoría de aspectos, puede tratar una columna BLOB como VARBINARY que puede ser tan grande como desee. Similarmente, puede tratar columnas TEXT como VARCHAR. BLOB y TEXT difieren de VARBINARY y VARCHARen los siguientes aspectos::
No se eliminan espacios al final para columnas BLOB y TEXT cuando los valores se almacenan o recuperan.
Tenga en cuenta que TEXT realiza comparación espacial extendida para coincidir con el objeto comparado, exactamente como CHAR y VARCHAR.
Para índices en columnas BLOB y TEXT, debe especificar una longitud de prefijo para el índice. Para CHAR yVARCHAR, la longitud de prefijo es opciona.
BLOB y TEXT no pueden tener valores DEFAULT .
Los cuatro tipos TEXT son TINYTEXT, TEXT, MEDIUMTEXT, y LONGTEXT. Se corresponden a los cuatro tipos BLOB y tienen las mismas longitudes y requerimientos de almacenamiento, segun se muestra en la siguiente tabla
Tipo de columna | Almacenamiento requerido |
CHAR( | bytes, 0 <= 255 |
VARCHAR( | L +1 bytes, donde y 0 <= 255 |
BINARY( | bytes, 0 <= 255 |
VARBINARY( | L +1 bytes, donde y 0 <= 255 |
TINYBLOB , TINYTEXT | L +1 byte, donde L < 2^8 |
BLOB , TEXT | L +2 bytes, donde L < 2^16 |
MEDIUMBLOB , MEDIUMTEXT | L +3 bytes, donde L < 2^24 |
LONGBLOB , LONGTEXT | L +4 bytes, donde L < 2^32 |
Los tipos VARCHAR y BLOB y TEXT son de longitud variable. Para cada uno, los requerimientos de almacenamiento depende de la longitud de los valores de la (representados por L en la tabla precedente), en lugar que el tamaño máximo del tipo. Por ejemplo, una columna VARCHAR(10) puede tratar una cadena con una lengitud máxima de 10. El almacenamiento requerido real es la longitud de la cadena (L), más 1 byte para registrar la longitud de la cadena. Para la cadena 'abcd', L es 4 y el requerimiento de almacenamiento son 5 bytes.
Para los tipos CHAR, VARCHAR, y TEXT, los valores L y M en la tabla precedente debe interpretarse como números de caracteres en MySQL 5.0, y las longitudes para estos tipos en las especificaciones de la colmna indican el número de caracteres. Por ejemplo, para almacenar un valor TINYTEXT necesita L caracteres + 1 byte.
El motor NDBCLUSTER soporta sólo columnas de longitud fija. Esto significa que una columnaVARCHAR de una tabla en MySQL Cluster se comportará casi como si fuera de tipo CHAR (excepto que cada registro todavía tiene un byte extra). Por ejemplo, en una tabla Cluster, cada registro en una columna declarada como VARCHAR(100) necesitará 101 bytes para almacenamiento, sin tener en cuenta la longitud de la columna almacenada en cualquier registro.
Los tipos BLOB y TEXT requieren 1, 2, 3, o 4 bytes para almacenar la longitud de la columna, dependiendo de la longitud máxima posible del tipo.
Las columnas TEXT y BLOB se implementan de forma distinta en el motor de almacenamiento NDBCLUSTER , donde cada registro en una columna TEXT se compone de dos partes separadas. Una de estas es de longitud fija (256 bytes), y se almacena realmente en la tabla original. La otra consiste de cualquier dato de más de 256 bytes, que se almacena en una tabla oculta. Los registros en esta segunda tabla siempre tienen una longitud de 2,000 bytes . Esto significa que el tamaño de una columna TEXT es 256 si size <= 256 (donde size representa el tamaño del registro); de otro modo, el tamaño es 256 + size + (2000 - (size - 256) % 2000).
Las columnas BLOB se tratan como cadenas de caracteres binarias (de bytes). Las columnas TEXT se tratan como cadenas de caracteres no binarias (de carácateres). Las columnas BLOB no tienen conjunto de caracteres, y la ordenación y la comparación se basan en los valores numéricos de los bytes. Las columnas TEXT tienen un conjunto de caracteres y se ordenan y comparan en base de la colación del conjunto de caracteres asignada a la columna
No hay conversión de mayúsculas/minúsculas para columnas TEXT o BLOB durante el almacenamiento o la recuperación.
Si asiguna un valor a una columna BLOB o TEXT que exceda la longitud máxima del tipo de la columna, el valor se trunca. Si los caracteres truncados no son espacios, aparece una advertencia. Puede hacer que aparezca un error en lugar de una advertencia usando el modo SQL estricto.
En la mayoría de aspectos, puede tratar una columna BLOB como VARBINARY que puede ser tan grande como desee. Similarmente, puede tratar columnas TEXT como VARCHAR. BLOB y TEXT difieren de VARBINARY y VARCHARen los siguientes aspectos::
No se eliminan espacios al final para columnas BLOB y TEXT cuando los valores se almacenan o recuperan.
Tenga en cuenta que TEXT realiza comparación espacial extendida para coincidir con el objeto comparado, exactamente como CHAR y VARCHAR.
Para índices en columnas BLOB y TEXT, debe especificar una longitud de prefijo para el índice. Para CHAR yVARCHAR, la longitud de prefijo es opciona.
BLOB y TEXT no pueden tener valores DEFAULT .
jueves, 23 de septiembre de 2010
Obtener informacion de los indices de la tabla / Get index information from table
Para obtener la informacuion detallada de los indices de una tabla, puedes ejecutar el siguiente "query"
For detailed information indexes created on table, you can execute following Query:
Table
Nombre de la Tabla
Key_name
Nombre del Indice
For detailed information indexes created on table, you can execute following Query:
SHOW INDEX FROM table_name;
Descripcion de los campos ( Tomados del sitio oficial de MySql)
Description of fields (help taken from Mysql website):se veria algo asi/Look some like that
Table
Nombre de la Tabla
The name of the table.
Non_unique
0 si el índice no puede contener duplicados, 1 si puede. /
Non_unique
0 si el índice no puede contener duplicados, 1 si puede. /
0 if the index cannot contain duplicates, 1 if it can.
Key_name
Nombre del Indice
The name of the index.
Seq_in_index
Número de secuencia de columna en el índice, comenzando con 1. /
Seq_in_index
Número de secuencia de columna en el índice, comenzando con 1. /
The column sequence number in the index, starting with 1.
Column_name
Nombre de columna /
Column_name
Nombre de columna /
The column name.
Collation
Cómo se ordena la columna en el índice. En MySQL, puede tener valores 'A' (Ascendente) o NULL (No ordenado). /
Collation
Cómo se ordena la columna en el índice. En MySQL, puede tener valores 'A' (Ascendente) o NULL (No ordenado). /
How the column is sorted in the index. In MySQL, this can have values “A” (Ascending) or NULL (Not sorted).
Cardinality
Número de valores únicos en el índice. Se actualiza ejecutando ANALYZE TABLE o myisamchk -a. Cardinalityse cuenta basándose en las estadísticas almacenadas como enteros, así que no es necesariamente precisa para tablas pequeñas. Mientras más grande sea, más grande es la probabilidad que MySQL use el índice al hacer joins.
Cardinality
Número de valores únicos en el índice. Se actualiza ejecutando ANALYZE TABLE o myisamchk -a. Cardinalityse cuenta basándose en las estadísticas almacenadas como enteros, así que no es necesariamente precisa para tablas pequeñas. Mientras más grande sea, más grande es la probabilidad que MySQL use el índice al hacer joins.
An estimate of the number of unique values in the index. This is updated by running ANALYZE TABLE or myisamchk -a. Cardinality is counted based on statistics stored as integers, so the value is not necessarily exact even for small tables. The higher the cardinality, the greater the chance that MySQL uses the index when doing joins.
Sub_part
Número de caracteres indexados si la columna sólo está indexada parcialmente. NULL si la columna entera está indexada/
Sub_part
Número de caracteres indexados si la columna sólo está indexada parcialmente. NULL si la columna entera está indexada/
The number of indexed characters if the column is only partly indexed, NULL if the entire column is indexed.
Packed
Indica cómo está empaquetada la clave. NULL si no lo está.
Packed
Indica cómo está empaquetada la clave. NULL si no lo está.
Indicates how the key is packed. NULL if it is not.
Null
Null
Contiene YES si la columna puede contener NULL. Si no, la columna contiene NO/
Contains YES if the column may contain NULL values and ” if not.
Index_type
Método de índice usado (BTREE, FULLTEXT, HASH, RTREE).
Contains YES if the column may contain NULL values and ” if not.
Index_type
Método de índice usado (BTREE, FULLTEXT, HASH, RTREE).
The index method used (BTREE, FULLTEXT, HASH, RTREE).
Comment.
Comentarios Varios
Various remarks.Servidor incrustado / Embedded Server
Actualizado SVN para el uso de servidor incrustado
Updated SVN for embedded server
se agregaron a la carpeta sample los archivos necesarios
los nuevos script para ejecutar los ejemplos con el servidor incrustado son los terminados en "_e" ejemplo bldhm_e.bat, construye el ejemplo para el servidor inscrustado usando el compilador de microsoft
(por los momentos todos en modo consola)
added to samples folder the files necessaries to run embedded server
the new script to build embedded samples are all finished with "_e", ie. bldhm_e.bat, build the embedded server sample with microsoft compiler
(for now all are in console mode)
download samples here
Updated SVN for embedded server
se agregaron a la carpeta sample los archivos necesarios
los nuevos script para ejecutar los ejemplos con el servidor incrustado son los terminados en "_e" ejemplo bldhm_e.bat, construye el ejemplo para el servidor inscrustado usando el compilador de microsoft
(por los momentos todos en modo consola)
added to samples folder the files necessaries to run embedded server
the new script to build embedded samples are all finished with "_e", ie. bldhm_e.bat, build the embedded server sample with microsoft compiler
(for now all are in console mode)
download samples here
miércoles, 22 de septiembre de 2010
Harbour/xHarbour
Eliminada carpetas Harbour / xHarbour del SVN, ahora seran descargadas directamente del link suministrados en el blog
Deleted folders Harbour / xHarbour from SVN, now can download from blog
Actualizado/Updated Harbour 2.1 (Rev 15490) (borland y msvc)
Actualizado/Updated xHarbour build 1.2.1 (simplex) (Rev 6733) (borland y msvc)
Deleted folders Harbour / xHarbour from SVN, now can download from blog
Actualizado/Updated Harbour 2.1 (Rev 15490) (borland y msvc)
Actualizado/Updated xHarbour build 1.2.1 (simplex) (Rev 6733) (borland y msvc)
lunes, 20 de septiembre de 2010
Idioma / Language
> Willi: Hola Daniel,,, el metodo seek no ubica la letra Ñ
No ubica la Ñ ni otro caracter especial
Doesn't find Ñ or other especial char
Set_MyLang( "esp" )
> Willi: Hello Daniel, the Method seek doesn't find "Ñ"
No ubica la Ñ ni otro caracter especial
Doesn't find Ñ or other especial char
Nueva funcion/New Function Set_MyLang( cLocale )
cLocale contienen información sobre cómo interpretar y llevar a cabo ciertas entradas / salidas y las operaciones de transformación, teniendo en cuenta ubicación y el idioma ajustes específicos
cLocale contain information on how to interpret and perform certain input/output and transformation operations taking into consideration location and language specific settings
El valor de cLocale dependeran por plataforma, para nuestro caso: Window
The value of cLocale will depend of plataform, for own case: Window
Language | LANGUAGE option value |
---|---|
Chinese, Simplified | chs |
Chinese, Traditional | cht |
English | ameng |
French | fra |
German | deu |
Italian | ita |
Japanese | jpn |
Korean | kor |
Portuguese, Brazilian | ptb |
Russian | rus |
Spanish | esp |
fuente/source: http://publib.boulder.ibm.com/infocenter/tsminfo/v6/index.jsp?topic=/com.ibm.itsm.srv.install.doc/r_nls.html
Con esta funcion se podran accesar los caracteres espciales Ñ, ñ, Á, á, É, é, ... el unico incoveniente es que son sencibles a mayusculas y minusculas
With this function we will can access the special char Ñ, ñ, Á, á, É, é, ..., the only problem is them are case sensitive
Revisar/Check testfw2.prg
FUNCTION Main()
LOCAL oWnd
LOCAL oMenu
LOCAL oServer
MENU oMenu 2007
MENUITEM "testing" ACTION DataBrowse( oServer, oWnd )
ENDMENU
SET CENTURY ON
SET DATE FORMAT "dd/mm/yyyy"
//Activated Case sensitive
D_SetCaseSensitive( .T. )
IF ( oServer := ConnectTo() ) == NIL
RETURN NIL
ENDIF
DEFINE WINDOW oWnd TITLE "Testing Dolphin - Fivewin" MENU oMenu
ACTIVATE WINDOW oWnd
oServer:End()
RETURN NIL
Probar y exponer experiencias, Gracias
Test and post experiences, Thanks
Suscribirse a:
Entradas (Atom)