Contato
     
 
FlagShip -> FAQ

Quando executo o programa simplesmente volta ao prompt

Se o seu programa principal inicia com uma função ou procedure main(), neste caso, se não foi compilado com o flag -Mmain, o programa não executa nada e retorna ao prompt do Unix/Linux.

Veja também "Criação do Makefile para compilação com FlagShip" e no fsman FSC1.3.

5.2 Como resolver problemas de corrupção de índices ?

Em ambiente Linux/Unix, o problema de corrupção de índices não poderá ocorrer, a não ser que haja alguma falha na estrutura de programação.  Portanto, verifique nos seus programas se todos os tópicos abaixo foram obedecidos:

  • Abrir os arquivos com todos os seus índices
  • Verificar se no replace está-se obedecendo a estrutura correta, ou seja:
    RLock() ou Append Blank
    Replace ...
    Commit
    Unlock

Não esqueça de executar o RLock() , commit e Unlock na mesma área de trabalho (select) do replace.

Como transferir dados de Cobol para FlagShip e vice-versa ?

A melhor forma de transferir dados/arquivos de um sistema em Cobol para o FlagShip e vice-versa, é através de arquivos textos. Assim, evitará o problema de volatilização de variáveis de ambiente.

Quando executo o programa mostra "duplicate alias"

Analise se o seu ALIAS() não está realmente duplicado.

Caso esteja acontecendo na lógica de geração de relatórios, o problema é o seguinte: em ambiente Linux/Unix, na geração do relatório o sistema cria um arquivo spool com o <nomedoarquivo.num>, onde num é o número do processo. Como o FlagShip não aceita (.) como parte do nome do Alias, acaba ocorrendo o erro.

Para solucionar use a função STRTRAN() , para passar o nome do ALIAS sem o ponto. Exemplo:
STRTRAN(cNomeAlias,".")

Como esconder a senha no get ?

Se está utilizando a combinação de cores no get da senha, os recursos utilizados no Clipper DOS pode não funcionar. Veja o exemplo abaixo, utilizando recurso de cores no ambiente Unix/Linux:

cSenha:=SPACE(10)
CLS
@ 6,0 SAY "FSTERM="+GETENV("FSTERM")
@ 8,1 say "some text red" COLOR "R+/n"
@ 10,10 SAY "SENHA"
@ ROW(),COL()+1 GET cSenha COLOR "r/r,r/r" PICT "@9"
READ
? "SENHA = "+cSenha
INKEY(0)

Observação: Pode-se utilizar qualquer combinação de cor exceto o preto ("N/N,N/N")

Para rotinas que utilizam a lógica abaixo, também deve evitar o preto. Exemplo:

LOCAL cS := { "*","*","*","*","*","*","*","*","*","*"}
LOCAL cSenha := SPACE(10)

cSenha := ""
FOR x := 1 TO 10
@ 10,10 SAY "Digite a Senha.: "
@ 10,26+x GET cS [x] PICT "@!" COLOR("W/W,W/W")
READ
IF LASTKEY() = K_ESC .OR. LASTKEY() = K_ENTER
EXIT
ENDIF
@ 10,26+x SAY "*" PICT "@!" COLOR ("N/N,N/N")
cSenha += cS [x]

NEXT x

? "SENHA = "+cSenha
INKEY(0)

Como alterar a vírgula decimal para ponto decimal ?

Caso esteja usando o formato picture como @ ... say pict "@E ..." , o FlagShip utiliza o sistema "Europeu", ou seja, faz a troca do ponto (.) com a vírgula (,) e vice-versa.

Caso queira manter o sistema americano, deve-se usar a máscara pict "999,999.99".

Veja no fsman o capítulo CMD: @ ... [say] get .

Como ler ou gravar através da porta serial ?

Para o sistema operacional Linux / Unix, a porta serial é tratada como um arquivo texto qualquer. Pode-se usar a função MemoRead() ou MemoWrit() , apontando para o device /dev/ttyS0 ou /dev/ttyS1.

Na execução acusa a falta da lib do FlagShip

Por default, na geração do executável, o FlagShip cria-o para ser executado dinamicamente, ou seja, incorpora as lib's do FlagShip em tempo de execução. Portanto, neste caso o programa pode ser executado somente na rede onde encontra-se instalado o FlaShip. Para que o executável possa ser transportado para qualquer rede, o programa deve ser compilado e linkeditado estaticamente.

Para fazer a alteração edite o arquivo FSconfig do diretório /etc e comente (coloque a #) as 6 linhas abaixo do modo default e descomente (retire a #) as mesmas linhas do modo estático:

FSPATH :/usr/bin
CCPATH :
FSOPTIONS :-I/usr/include -L/lib
CCNAME :cc
PREOPTIONS :-DFGSLINUX -DFGSLINUXELF -I/usr/include/ncur194 -fwritable-strings -fPIC
POSTOPTIONS :/usr/lib/dynFlagShip.o -lFlagShip -lncur194 -lm -s

Como gerar um executável estático ?

O FlagShip pemite gerar um executável estático ou dinâmico, conforme a parametrização.

O executável estático funciona de uma forma equivalente a uma DLL do Windows, ou seja, carrega as lib's necessárias em tempo de execução do programa, portanto todas as lib's devem estar disponíveis no servidor da rede.

Caso queira instalar o executável numa rede onde não tenha instalado o FlagShip, será necessário criar o executável estaticamente, ou seja, as lib's necessárias devem ser incorporadas em tempo de linkedição. Neste caso, o executável pode ser instalado numa rede que não tenha o FlagShip, desde que a versão do GLib_C, seja a mesma.

Para definir se a compilação deve ser dinamica ou estática, altera-se o FSconfig do diretório /etc. Veja detalhes no item anterior.

 

  © 2005 - Direitos Reservados
Telefone: (11) 5096-4321
contato@inso.com.br