5tas Jornadas Regionales de Software Libre
Lenguaje Clip
Introducción y Conexión con RDMS
Migrando Aplicaciones para GNU/Linux
Clip-Castellano - http://www.clip-castellano.com.ar
Clip-BR - http://www.clip-br.web.br.com
Rosario, Santa Fe, Argentina
21/11/2005
Eduardo Stefani Gustavo Courault
¿ Qué es Clip?
- Un compilador xBase con licencia GPL.
- Totalmente compatible con el código generado para CA-
Clipper 5.3
- Modelo OO muy rápido y eficiente.
- Soporte internacional.
- Soporte para acceder a bases de datos relacionales.
- Expresiones regulares.
- TCP/IP
- Clases para GTK+ y GTK2
- Administración de puertos serie
- Generación de interfaz gráfica mediante documentos XML
5tas Jornadas Regionales de Software Libre
Histórico
- Computer Associates, propietario de Clipper, deja de desarrollarlo en 1995.
- Miles de programas hechos en Clipper dejan de tener soporte.
- Es necesario generar un compilador GPL compatible con Clipper.
- La empresa rusa ITK comienza el desarrollo de un compilador para xBase
basado en Clipper 5.3 en el año 1998.
- Primer programa compilado en octubre de 1999.
- Migración de sistemas hechos en Clipper en Rusia y países vecinos.
- A partir de ese punto Clip se desarrolla rápidamente hasta llegar a la versión
actual: 1.1.14, la cual está estable y en producción.
5tas Jornadas Regionales de Software Libre
Cómo obtener Clip
Clip-Castellano
http://clip-castellano.sourceforge.net/descarga.php
Clip-BR
http://www.clip-br.web.br.com
Página Oficial do Clip – (Rússia)
http://www.itk.ru/english/download.shtml
linux.ru.net
ftp://ftp.linux.ru.net/mirrors/clip
5tas Jornadas Regionales de Software Libre
Instalación
Fuentes
export CLIPROOT=/usr/local/cliproot
tar -zxvf clip-prg-1.1.14-1.tgz
cd clip-prg-1.1.14-1
make local
vim /etc/profile
export PATH=$PATH:/usr/local/cliproot/bin
RPM
rpm -ivh clip-lib-1.1.14-1.i386.rpm
clip-prg-1.1.14-1.i386.rpm
Debian
dpkg -i clip-prg-1.1.14-1.i386.rpm
dpkg -i clip-prg_1.1.14-1_i386.deb
5tas Jornadas Regionales de Software Libre
Dependências
gcc
flex
bison
libc6-dev
make
bin-utils
Ambiente
Algumas variáveis de ambiente devem ser inseridas :
LANG=es_ES
Juego de caracteres
CLIP_CLIENTCS=cp437
Caso o sistema tenha sido desenvolvido originalmente para DOS.
CLIP_CLIENTCS=cp866
Caso o sistema tenha sido desenvolvido em GNU/Linux.
CLIPROOT=/usr/local/cliproot
Caminho principal da instalação do CLIP.
PATH=$PATH:/usr/local/cliproot/bin
Caminho do diretório BIN. Pode ser diferente de acordo com a instalação.
5tas Jornadas Regionales de Software Libre
Alô Mundo
vim alomundo.prg
// ALOMUNDO.PRG
// Programa exemplo para compilação no CLIP.
clear
devpos(00,00) ; devout("Alô Mundo");
return(nil)
5tas Jornadas Regionales de Software Libre
Compilando
Clip -e -m alomundo.prg
./alomundo
5tas Jornadas Regionales de Software Libre
Diferencias
Impressão
No GNU/Linux, o sistema de impressão é diferente. Há duas maneiras : Diretamente através
da porta (cat texto.txt > /dev/lp0) ou usando um sistema de impressão (lpr teste.txt). Esta
última alternativa é mais aconselhada, pois fornece ao desenvolvedor uma série de
ferramentas para administração da fila de impressão.
Bibliotecas
É comum que sistemas sejam desenvolvidos usando bibliotecas de terceiro. No CLIP, ao
migrar um sistema, é necessário que todo o código fonte utilizado esteja disponível, inclusive
o das bibliotecas. Bibliotecas de terceiros, quando fechadas, não trabalharão corretamente.
Programas Gráficos
O sistema gráfico do GNU/Linux é diferente do DOS, de modo que sistemas com recursos
gráficos não vão funcionar ao serem migrados. É necessário que recursos próprios do CLIP e
do GNU/Linux sejam utilizados.
5tas Jornadas Regionales de Software Libre
Clip con MySQL
- Primero debemos instalar el soporte para MySQL, tanto en
Linux como en Clip:
Para Debian:
# apt-get install libmysqlclient12-dev
# dpkg -i clip-mysql-1.1.14.deb
Para Mandriva:
# urpmi mysql-devel
# rpm -i clip-mysql-1.1.14.rpm
Si se compila Clip desde los fuentes se debe tener instalado el
soporte para MySQL antes de la compilación
5tas Jornadas Regionales de Software Libre
Clip con MySQL
- Ejemplo de como conectarse a MySQL y actualizar datos.
- Suponemos que tenemos funcionando el servidor MySQL
- Nos conectamos al servidor con Clip:
* ---------------------------------------
function conectargc( cUsuario, cPass ) // En gcfunc.prg
* ---------------------------------------
local oConn
local host := “127.0.0.1” // IP o nombre del host
local port := NIL // uso el puerto por omisión
local db := “gc” // me conecto a la base de datos
local socket := NIL // uso el socket por omisión
local flag := NIL // no se usa en MySQL
* Conexión a la base de datos *
oConn := ConnectNew( "MS" , host , port , cUsuario , cPass , db ,
socket , flag )
return oConn
5tas Jornadas Regionales de Software Libre
Clip con MySQL
Algunos datos de prueba:
Invocamos el monitor:
mysql -h 127.0.0.1 -u root -p
Creamos la base de datos:
create gc;
use gc;
CREATE TABLE `provincia` (
`id_provincia` int(3) unsigned NOT NULL default '0',
`pcia_nombre` varchar(20) NOT NULL default '',
`pcia_abreviatura` char(3) NOT NULL default '',
`pcia_codigoib` int(3) unsigned NOT NULL default '0',
`pcia_letra` char(1) NOT NULL default '',
KEY `prov_nombre` (`pcia_nombre`,`pcia_codigoib`)
) TYPE=InnoDB COMMENT='Tabla de provincias unidas del río de la plata';
INSERT INTO `provincia` VALUES (901,'CAPITAL FEDERAL','CAP',901,'C');
INSERT INTO `provincia` VALUES (902,'BUENOS AIRES','BAI',902,'B');
INSERT INTO `provincia` VALUES (903,'CATAMARCA','CAT',903,'K');
5tas Jornadas Regionales de Software Libre
Clip con MySQL
Ahora hacemos un simple Browse:
* -----------------------------------------------------
* Programa para conectarse y mostrar la tabla provincia
* Nombre del programa: browsepvcia.prg
* -----------------------------------------------------
function main()
oConn := conectargc( "gc" , "clip" ) // Usuario y clave
oRs := oConn:CreateRowset( "select * from localidad" )
oRs:browse()
return NIL
Compilamos ahora nuestra pequeña aplicación:
clip -e browsepvia.prg gcfunc.prg -lclip-mysql
Probamos la aplicación:
./browsepvica
5tas Jornadas Regionales de Software Libre
Clip con MySQL
El resultado de nuestros esfuerzos:
5tas Jornadas Regionales de Software Libre
Conclusión
. Sistemas antes depreciados, agora voltam a ter novas características inseridas.
. Redução do tempo despendido em suporte oriundo de problemas de corrompimento
de dados.
. Estabilização de aplicações.
. Tempo disponível para novos projetos.
. Maior confiança em aplicações antigas.
. Uma das soluções para sistemas legados.
. Manutenção do investimento.
. Alegria dos Clippeiros :-) !!!
5tas Jornadas Regionales de Software Libre
Muchas Gracias !!!
Gustavo Courault
[email protected]
http://www.clip-castellano.com.ar
Eduardo Stefani
[email protected]
http://www.eduardostefani.eti.br
5tas Jornadas Regionales de Software Libre
Comentarios de: Libre Lenguaje Clip Introducción y Conexión con RDMS (0)
No hay comentarios