La última versión de Visual FoxPro (VFP9) incluye tres tipos de datos nuevos: VarBinary, VarChar y Blob. Este artículo comenta alguna de las peculiaridades del tipo de dato VarBinary.
*--------------------------------------------------------- * Método: * DATOVARBINARY.PRG * Programador: * Ana María Bisbé York * Fecha de Terminación: * 07/02/05 10:39:59 AM * Comentarios: * Este ejemplo fue mostrado en el IV Encuentro de Desarrolladores realizado por * Danysoft Internacional www.danysoft.com en Febrero 2005 en Microsoft Ibérica. * en la sesión Novedades de Visual FoxPro 9.0 * * En VFP 9.0 uno de los nuevos tipos de datos es VARBINARY, que contiene valores binarios * Se incluye por compatibilidad; pero se puede utilizar para valores binarios en tablas nativas VFP. * Su longitud no coincide con la del campo, sino con la del dato que es almacenado. * El valor se guarda como 0h y luego una serie de valores hexadecimales, no se guarda entre comillas * Se puede emplear en índices, acepta NULL y su longitud máxima es 254 caracteres. * Solo admite MACHINE como secuencia Collate para índices sobre campos Varbinary. * No se puede emplear en SQL LIKE, LIKE(), LIKE(), BINTOC(), CTOBIN(). * Se puede buscar SEEK() por la representación binaria o de caracteres del dato. * TYPE() y VARTYPE() devuelven "Q" * La combinación C + Q = C; pero Q + C = Q, depende del primero en la expresión * Las comparaciones entre Q y C ó V depende del orden de los valores * Para los cuadros de textos se cumple Format = F, además Format = H para evitar que * se introduzcan datos no binarios. * * El siguiente código tiene como objetivo mostrar algunos aspectos relacionados: * * Este código crea un cursor con un único campo VarBinary al que llamamos qCampo * Llenamos el campo con 0h466F78 que es el dato correspondiente a Fox * Muestra el valor que devuelven las funciones VARTYPE() y LEN() * Muestra el resultado de realizar combinaciones con campos de caracteres * Muestra el resultado de comparaciones. *---------------------------------------------------------
CLEAR CREATE CURSOR curVarBinary (qCampo Q(20)) INSERT INTO curVarBinary VALUES (0h466F78) && Se corresponde con la cadena Fox BROWSE ? 'Vartype devuelve ' + VARTYPE(qCampo) && Muestra Vartype devuelve Q ? 'Len devuelve '+ STR(LEN(qCampo)) && Muestra Len devuelve 3 ? 'qCampo devuelve ' + qCampo && Muestra qCampo devuelve Fox * Combinación C + Q = C ? '' ? 'Combinación C + Q = C' ? 'Me gusta mucho programar en ' + qCampo && Muestra Me gusta programar en Fox * Combinación Q + C = Q ? '' ? 'Combinación Q + C = Q' ? qCampo + '.NET dos herramientas para desarrollar aplicaciones' * Devuelve 0h466F782E4E455420646F732068657272616D69656E7461732070617261206465736172726F6C6C61722061706C69636163696F6E6573 * Para convertir un tipo de dato en otro, a pesar de que no hay una función nativa, * se realiza de la siguiente forma: concatenando con una cadena de caracteres vacía ? '' ? 'Convierto cadena hexadecimal en caracteres' ? ''+ 0h466F78 && Muestra Fox * Comparaciones ? '' ? 'Comparo: qCampo = "Fox"' ? qCampo = 'Fox' && Muestra .T. ? '' ? 'Comparo: qCampo = "Fox "' ? qCampo = 'Fox ' && Muestra .F.
Saludos,
Ana María Bisbé York
No hay comentarios. :
Publicar un comentario
Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.