HOWTO FLAGSHIP EM PORTUGUÊS
Revisão 1.7 - 17/06/1999
O objetivo deste "HOWTO" é auxiliar os amigos que estão iniciando (como eu) a estudar/migrar programas Clipper(DOS) para FlagShip(LINUX / UNIX). Todos as dicas e exemplos deste documento estão sendo criados através do FlagShip Personal 4.48 (free) em um Conectiva Linux Guarani 3.0 .
Este documento pode ser copiado e distribuído livremente. Correções, adições e comentários podem ser enviados para o e-mail wunsch@hotmail.com.
José Maria Wunsch
Guarapuava PR
01) O QUE É O FLAGSHIP ?
É uma linguagem de programação 4GL com compilador/tradutor de código de linguagens xBase para linguagem C no ambiente UNIX ( roda em mais de 50 tipos de UNIX inclusive o LINUX) gerando executáveis nativos.
A linguagem FlagShip é baseada no padrão do Xbase com todo a extensões do CA-CLIPPER. Todos os programas escritos em Clipper'87 ou 5.x e outros dialetos do Xbase podem ser compilados pelo FlagShip com mínimas adaptações. Graças a compatibilidade com o CA-CLIPPER é a melhor ferramenta para transportar aplicações do DOS para UNIX (e brevemente para 32Bit PC baseado em Windows.)
FlagShip é projetado principalmente por desenvolvedores de software profissionais. Mas por causa de sua interface simples, pode ser usado perfeitamente por semi-profissionais e usuários de computador avançados que necessitam criar aplicações de banco de dados com mínimo esforço de programação.
Está sendo desenvolvido (desde 1990) por uma empresa de Munique (Alemanha) chamada MULTISOFT. Mais de 2.000 cópias (1995) instaladas na Europa. Foi introduzido nos Estados Unidos em 1994 pela (WorkGroup) e no Brasil em 1999 pela Inso Informática.
Todas as vantagens de UNIX agora estão disponíveis para os desenvolvedores Clipper: multiusuário / multitarefa, nenhumas limitações de RAM, acesso a rede, altos níveis de segurança, e muito mais... As aplicações podem ser distribuídas e copiadas sem royalty ou taxas.
O FlagShip trás produtividade obtidas pelas linguagens Clipper/ xBase para o poderoso UNIX.
02) O QUE CONTÉM O FLAGSHIP ?
O FlagShip contém:
03) QUAIS AS VANTAGENS DO FLAGSHIP ?
04) QUAIS AS DESVANTAGENS DO FLAGSHIP ?
05) ALGUNS MOTIVOS PARA VOCÊ ADOTAR O FLAGSHIP
06) EM QUE SISTEMAS OPERACIONAIS O FLAGSHIP RODA ?
Todos os maiores UNIX, tais como :
Linux, SCO, IBM, SUN, AT&T, HP, DEC, Sequent, Bull, Fujitsu, Data General, Motorola, Unisys, NCR, UnixWare, Silicon Graphics, Siemens e muitos outros (mais de 50 ao todo).
07) EM QUE SISTEMAS OPERACIONAIS O FLAGSHIP AINDA NÃO RODA ?
DOS/Windows 95/98/NT, NetBSD, FreeBSD, BSDI, QNX e algumas variações destes. A versão Windows NT estará disponível em breve.
08) EM QUE HARDWARE O FLAGSHIP RODA ?
Máquinas x86 (486,Pentium), Workstation, Mainframes e Superservers.
09) QUAL A VERSÃO ATUAL DO FLAGSHIP ?
A versão atual do FlagShip é a 4.4.
10) ALGUMAS CARACTERÍSTICAS DA LINGUAGENS (VERSÃO 4.4):
11) QUAIS AS NOVIDADES PARA O FUTURO ?
12) O FLAGSHIP É MAIS RÁPIDO QUE O CLIPPER ?
Uma aplicação em FlagShip é de 2 a 100 vezes mais rápido do que o Clipper. É importante ter um servidor bem configurado (memória, hd,etc.) para se ter um desempenho melhor.
13) QUAIS AS LICENÇAS DO FLAGSHIP ?
14) COMPATIBILIDADE DO KERNEL E COMPILADOR C PARA LINUX
Ao resolver instalar o FlagShip no Linux você precisa escolher uma versão compatível com o Kernel e ferramentas (compiladores,bibliotecas,utilitários). Atualmente existem 4 versão do FlagShip para Linux. Escolha corretamente, caso contrário o seu executável não compilará ou rodará corretamente, veja as opções disponíveis para o Linux :
Para verificar quais versões você possui use:
ls -l /lib/libc*
cc -v
Se estiver instalando através de uma distribuição não precisa se preocupar pois já colocaram a versão correta.
15) QUAL O ESPAÇO REQUERIDO PARA INSTALAR O FLAGSHIP ?
Aproximadamente 25 Mbytes de espaço em máquinas com pelo menos 8 Mbytes de RAM .
16) COMO CONSEGUIR O "SERIAL NUMBER / ACTIVATION KEY" PARA
INSTALAR O FLAGSHIP PERSONAL (FREE) PARA LINUX
Para instalar a versão Personal Grátis (linux) você precisará do "Serial Number / Activation Key". Estes dados são enviados gratuitamente (via e-mail) após o preenchimento de um formulário na home page do FlagShip (Multisoft), o endereço é:
http://www.fship.com/free.html
17) COMO INSTALAR O FLAGSHIP PERSONAL (FREE) EM UM SERVIDOR
COM O CONECTIVA LINUX GUARANI ?
Os arquivos do FlagShip são instalados em vários diretórios públicos :
Executáveis e scripts............................: /usr/bin/*
Bibliotecas...........................................: /usr/lib/*
Arquivos header..................................: /usr/include/*
Arquivos de fontes e documentos........: /usr/FSsrc/*
Manual on-line.....................................: /usr/FSsrc/manual/*
Parâmetros do compilador...................: /etc/FSconfig
18) COMO COPIAR UM SISTEMA DO "DOS" (CLIPPER) PARA O
LINUX (FLAGSHIP)?
Existem também vários utilitários do próprio FlagShip para o tratamento de arquivos DOS / UNIX, tais como :
19) PASSOS PARA MIGRAR UM SISTEMA CLIPPER PARA LINUX/FLAGSHIP
20) FASES DA GERAÇÃO DE UM EXECUTÁVEL NO FLAGSHIP
21) COMO COMPILAR NO FLAGSHIP
FlagShip
--- Executa o FlagShipAlguns exemplos:
Principais parâmetros de compilação:
-M<nome> : Define o nome do programa principal (main)
-a : Executa somente a fase de preprocessador.
-m : Compilação modular
-nd : Exclui informações para debugação
-o<nome> : define o nome do executável
-q : Compila no modo "quiet", não apresenta os nr de linhas de compilação
Observação:
22) VELOCIDADADE DE COMPILAÇÃO
23) COMO EXECUTAR UM PROGRAMA FLAGSHIP ?
Por motivo de segurança o diretório corrente não faz parte do PATH. Portanto para executar um programa informe um "./" antes do nome. Ex.:
newfscons ./teste
Se você desejar colocar o diretório corrente no PATH adicione o seguinte comando no arquivo /etc/profile :
export $PATH:.
Agora você pode executar da seguinte forma:
newfscons teste
24) - UTILIZANDO O DBU DO FLAGSHIP
25) FLAGSHIP COM SAMBA
Você precisa ter no mínimo 2 máquinas ligadas em rede (uma com o linux e a outra com Windows) para poder usar o Samba.
26) UTILIZAÇÃO DO FSPRESET.FH
Para que você não tenha que fazer mudanças em todo o seu fonte basta incluir a seguinte linha no topo de seu programa principal (MAIN):
#include "fspreset.fh"
Com isto todo o seu sistema será adaptado automaticamente para:
- converter todo os nomes de arquivos dos comandos abaixo para minúsculas.
USE <file>
SET INDEX TO <file>
INDEX ON .. TO <file>
COPY TO <file>
APPEND FROM <file>
PRINT TO <file>
FCREATE <file>
FOPEN <file>
DIR <file>
ADIR <file>
DIRECTORY <file>
- converte path´s para formato UNIX Ex.:
USE \SISTEMA\Arquivo.DBF ---> USE /sistema/arquivo.dbf
- substitui NTX por IDX
index on codigo to codigo.ntx ---> index on codigo to codigo.idx
27) CONSULTANDO O MANUAL ON-LINE DO FLAGSHIP
fsman
O executável do manual on-line é criado automaticamente (inclusive índices) durante a instalação do FlagShip. Para obter informações de como usar o "fsman" leia o arquivo :
( /usr/FSsrc/manual/fsman.dos ).
28) EDITOR DE PROGRAMAS PARA FLAGSHIP
29) CRIANDO APLICATIVOS PARA WEB
/usr/FSsrc/tools/fs4web
/usr/FSsrc/tools/webkit
30) COMO IMPRIMIR ?
O Clipper imprime diretamente na porta de impressora. Em Unix, onde muitos usuários usam os recursos da máquina simultaneamente isto poderia causar problemas. A solução é imprimir através de SPOOL de impressão. O FlagShip permite você imprimir diretamente na porta de impressão (igual ao DOS) mas sugere o uso em SPOOL. O Unix possui vários comandos para administrar SPOOL de impressão.
Supondo que sua impressora esteja configurada para o lp1.
no prompt do linux:
cp teste.txt /dev/lp1 (copia diretamente para a porta de impressão lp1)
cat teste.txt > /dev/lp1 (copia diretamente para a porta de impressão lp1)
lpr teste.txt (imprime através de SPOOL )
1) Para imprimir diretamente na porta de impressão
Inclua o comando seguinte para imprimir diretamente na porta lp1:
SET PRINTER TO /dev/lp1
2) Para imprimir utilizando SPOOL.
SET PRINTER TO rel.prn
.... comandos...
run lpr rel.prn
Todos os demais comandos de impressão podem continuar como no clipper, ex.:
- report form teste to print
- set device to print
- set print on
O Linux pode imprimir em impressoras:
Lembre-se:
Por default o FlagShip imprime sempre em um arquivo "spooler" no diretório corrente.
O nome é criado automaticamente da seguinte forma: <nome_do_programa_principal>.<process_id>
O nome do arquivo pode ser recuperado através do comando FS_SET("print"), exemplo:
report form teste to print noconsole // imprimi um relatório
print_file := FS_SET("print") // recupera o nome do arquivo SPOOLER
run lpr -dlaser -m -s <print_file> // imprime o arquivo em um SPOOL chamado laser
erase <print_file> // exclui o arquivo SPOOLER
ou ainda
report form teste to print noconsole
run ("lpr -dlaser -m -s " + FS_SET("print"))
31) POSSO USAR O FONTE C (QUE FOI TRADUZIDO) NO DOS?
Quando um fonte PRG é convertido para C, ele é feito especialmente para o UNIX (50 tipos de UNIX), portando você poderá ter problemas ao tentar rodar no DOS como administração de memória. Mais a Multisoft promete lançar novas versão em breve para Windows/ NT.
32) EU POSSO MANTER UM CÓDIGO FONTE COMUM PARA UNIX E DOS ?
Sim!. O FlagShip tem um número de recursos que tornam isto muito fácil. Compile uma versão de código com o Clipper para executar em DOS, ou com FlagShip ao executar e Unix..
Você poderá colocar alguns #ifdef para compatibilizar programas DOS/UNIX, exemplo:
#ifdef FlagShip
#include "fspreset.fh"
#endif
33) PORQUE A RESPOSTA DE VÍDEO É MAIS LENTA DO QUE NO DOS ?
Esta é uma pequena desvantagens do FlagShip em relação ao Clipper, isto corre porque o Clipper escreve diretamente na RAM de vídeo. O FlagShip não pode fazer isto devido a natureza do UNIX (multi-usuário) e o provável use em terminais remotos. Já no FlagShip tudo é feito no servidor, a resposta de vídeo precisa trafegar pela rede até o vídeo do terminal.
34) O RUNTIME DO FLAGSHIP NECESSITA DE LICENÇAS ?
Sistemas escritos em FlagShip podem ser copiados e distribuídos sem nenhum pagamento de royalty ou taxas de runtime (igual ao Clipper).
35) O TAMANHO DO EXECUTÁVEL DO FLAGSHIP É MAIOR
QUE AO DO CLIPPER ?
Sim (2 a 3 vezes maior), isto por causa do código nativo comparado com ao P-código produzido pelo Clipper. Mas você pode criar executáveis até 2 Gigabytes e rodará perfeitamente.
36) ARQUIVOS DE ÍNDICES NTX DO CLIPPER NÃO PODEM SER
USADOS NO FLAGSHIP ?
Na atual versão (4.4) não, mas a Multisoft promete para próximas. O arquivo de índice default para o FlagShip é o IDX.
37) ONDE EU CONFIGURA AS OPÇÕES DO COMPILADOR ´CC´
No arquivo /etc/FSconfig.
38) QUAIS AS EXTENSÕES DE ARQUIVOS UTILIZADAS PELO FLAGSHIP ?
A principais são:
39) QUAL É O COMPILADOR E LINKEDITOR DO FLAGSHIP ?
Um fonte em linguagem C (após a tradução de um .PRG) é compilado por "cc" ou "gcc" e linkado por "ld" mais isto depende da versão do UNIX.
40) COMO INTERROMPER UM PROGRAMA EM EXECUÇÃO ?
No Clipper se o comando SETCANCEL(.F.) basta teclar ALT C, o equivalente no FlagShip é o CONTROL K.
41) QUAL A TECLA QUE ATIVA O DEBUGADOR DO FLAGSHIP
Para chamar o debugador pressione CONTROL O.
42) POSSO COPIAR BIBLIOTECAS DO CLIPPER(.LIB) PARA O LINUX
E USAR NO FLAGSHIP ?
Se você possuir os fontes poderá copiar para o Linux e compila-las novamente (FlagShip ou CC) gerando uma versão para o FlagShip. Se as bibliotecas forem de terceiros terá que entrar em contado com o representante/fornecedor e solicitar uma versão compatível com o FlagShip.
43) EU UTILIZO A BIBLIOTECA 'CA-TOOLS' DO CLIPPER, POSSO USAR
NO FLAGSHIP ?
No FlagShip existe a biblioteca 'FS2 Toolbox' que é compatível com a CA-TOOLS do Clipper. Veja alguns exemplos no diretório ( /usr/FSsrc/tools/fs2tools ).
44) O QUE EU PRECISO ESTUDAR PARA APRENDER A LINGUAGEM FLAGSHIP ?
Se você já é um programador em Clipper poderá criar programas sem nenhum estudo adicional. Terá que apenas se adaptar ao UNIX o que é bastante simples para quem já trabalho com o DOS. Para usuários iniciantes o melhor e começar estudar nos vários livros existentes sobre CLIPPER e UNIX.
45) COMO RODAR PROGRAMAS DE UM SERVIDOR LINUX
EM UMA MÁQUINA COM WINDOWS 95/98.
Través de emuladores de terminal, existem vários por ai inclusive shareware.
46) POSSO ACESSAR BANCO DE DADOS ORACLE, INFORMIX, SYBASE ?
Sim, através de código em C (FlagShip Open C API System). Mas a Multisoft promete lançar RDD para estes bancos de dados. A Inso Informática também deverá disponibilizar alguns RDD em breve (CA-INGRES II, ORACLE..)
47) POSSO FAZER UM SISTEMA EM FLAGSHIP PARA AMBIENTE
GRÁFICO (GUI) ?
A Multisoft promete para breve o Visual FlagShip (VF) que poderá rodar em ambientes gráficos do UNIX e WINDOWS.
48) DIFERENÇAS ENTRE O CLIPPER / DOS E FLAGSHIP / UNIX
49) COMO CRIAR OU EDITAR ARQUIVOS DE RELATÓRIOS (.FRM) OU
ETIQUETAS (.LBL) NO UNIX
Os arquivos de relatório ou etiquetas (FRM/LBL) podem ser criados no DOS e copiados para o UNIX. Ainda não encontrei uma forma de criar diretamente no UNIX.
50) COMO MELHORAR O DESEMPENHO DO FLAGSHIP ?
O desempenho de compilação/execução de programa FlagShip e ligado diretamente ao desempenho do servidor. Quanto mais usuários estiverem utilizando o servidor/programas (processos) ao mesmo tempo, pior será o desempenho.
Algumas dicas para melhorar o desempenho do servidor:
51) COMO VERIFICAR AS CONFIGURAÇÕES ATUAIS ?
As configurações como: teclado, terminais, telas, cores e teclas especiais podem ser verificadas através do programa /usr/FSsrc/fscheck.prg.
Para compilar use: FlagShip fscheck -ofscheck
52) QUE ARQUIVOS EU PRECISO INSTALAR EM MEU CLIENTE ?
53) POSSO CRIAR APLICAÇÕES COM ACESSO A PORTA SERIAL OU MODEM ?
É perfeitamente possível tratar portas seriais no FlagShip através das funções FOPEN(), FWRITE(), FCLOSE(). Também a biblioteca "FS2 Toolbox" possui várias funções para o controle de portas seriais.
54) FLAGSHIP E O BUG DO ANO 2000
O FlagShip armazena a data sempre com o século cheio, Por default as datas são apresentadas no formato "YY", para adaptar seu programa para o ano 2000 basta mudar a apresentação para "YYYY". Acrescente o comando seguinte no topo de seu programa principal :
SET CENTURY ON // mostrará datas no formato longo
Mais informações veja em :
http://www.fship.com/y2k.html55) RODANDO O FLAGSHIP EM TERMINAIS
O Unix pode ser acessado por terminais via linhas seriais ou rede. O FlagShip suporta todas as principais marcas de terminais através do fornecimento de arquivos de descrições. Mas você pode fazer configurações específicas ou mudar as configurações atuais para funcionar teclas e cores. Quando for usar terminais "ansi" ou "vt100" utilize os correspondentes "fsansi" e "fsvt100" que foram adaptados para o FlagShip.
56) QUAIS BANCO DE DADOS SQL EU POSSO ACESSAR ATRAVÉS DO SQLKIT ?
Atualmente podem ser acessados o Just Logic/SQL, PostGreSQL e o Solid Server, mais informações podem ser encontradas no diretório ( /usr/FSsrc/tools/sqlkit ).
57) COMO EXECUTAR UM PROGRAMA EM UM AMBIENTE XWINDOWS
(WINDOWS MAKER, KDE, ETC.)
Dentre de um emulador xterm execute o comando :
newfswin <nome_do_programa>
Ou crie um ícone para o comando.
58) POSSO ACESSAR ARQUIVOS DO COBOL NO FLAGSHIP ?
Sim, arquivos do COBOL podem ser acessados no FlagShip através do RDD Cobol. Mais informações você poderá encontrar no diretório ( /usr/FSsrc/tools/rddcobol ).
59) COMO DESINSTALAR O FLAGSHIP
Para desinstalar o FlagShip basta executar o script ( FSuninstall ).
60) ONDE ENCONTRAR INFORMAÇÕES SOBRE O FLAGSHIP ?
Internacionais:
Nacionais: