Ir para conteúdo
Fórum Script Brasil
  • 0

comando \T executado em um script não funciona


paulobergo

Pergunta

Bom dia!

Dentre várias, programo numa linguagem XBase (Opus) que funciona amarrada a um banco de dados chamado OpenBase.

Eventualmente, passo muitas informações desse banco de dados para o MySQL (5.0.27), usando comandos executados pelo MySQL (por scripts) e esses dados são manipulados, consultados depois por aplicações web,

delphi, etc.

Agora, preciso, também, fazer com que o MySQL, simplesmente, grave em um arquivo texto o resultado de uma query... parecia simples, mas o comando \T não cria o arquivo texto desejado quando executado a partir de um script

Há alguma coisa especial a definir para a gravação ser realizada?

Exemplo que dá certo, usando o próprio prompt do MySQL:

dev_pmsd> mysql -ubergo -p(xxxxx) -h10.3.2.1
mysql> use acme
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> \T //users/pmsd/spool/pmsd/info.txt
Logging to file '//users/pmsd/spool/pmsd/info.txt'
mysql> select dam_numero, data_pg, valor_pago from inscritos  limit 5;
+------------+------------+------------+
| dam_numero | data_pg    | valor_pago |
+------------+------------+------------+
| 270000025  | 2008-08-01 | 60.00      |
| 270000033  | 2008-08-01 | 60.00      |
| 270000041  | 2008-08-01 | 30.00      |
| 270000050  | 2008-08-01 | 40.00      |
| 270000068  | 2008-08-01 | 50.00      |
+------------+------------+------------+
5 rows in set (0.01 sec)
mysql> \t
Outfile disabled.
mysql> exit
Bye

dev_pmsd => cat //users/pmsd/spool/pmsd/info.txt
mysql> select dam_numero, data_pg, valor_pago from inscritos  limit 5;
+------------+------------+------------+
| dam_numero | data_pg    | valor_pago |
+------------+------------+------------+
| 270000025  | 2008-08-01 | 60.00      |
| 270000033  | 2008-08-01 | 60.00      |
| 270000041  | 2008-08-01 | 30.00      |
| 270000050  | 2008-08-01 | 40.00      |
| 270000068  | 2008-08-01 | 50.00      |
+------------+------------+------------+
5 rows in set (0.01 sec)

mysql> \t

dev_pmsd>
E o que não funciona: Código "as-clipper" no programa:
cr = chr(13)
lf = chr(10)

c_MySQLCatalog  = 'acme'
c_MySQLUsuario  = 'bergo'
c_MySQLSenha    = '(xxxx)'
c_MySQLHost     = '10.3.2.1'
n_has2del       = 0

c_sql_file      = '//users/pmsd/spool/pmsd/cmd2my.sql'
c_result_file   = '//users/pmsd/spool/pmsd/info.txt'

if file(c_result_file)
  delete file c_result_file
endif
if file(c_result_file)
  @ 10, 00 say 'Não foi possível excluir '+c_result_file+'!'
  wait
endif

c_cmd_content   = 'use '+c_MySQLCatalog+cr+lf+;
                  '\T //users/pmsd/spool/pmsd/info.txt'+cr+lf+;
                  'select dam_numero, data_pg, valor_pago from inscritos limit 5;'+cr+lf+;
                  '\t'+cr+lf

set printer to 'cat > '+c_sql_file
set print on
? c_cmd_content
set print off
set printer to

cCmdLine = 'mysql -u'+c_MySQLUsuario+' '+;
                 '-p'+c_MySQLSenha+' '+;
                 '-h'+c_MySQLHost+' -e "\. '+c_sql_file+'"'
run cCmdLine

Quit

O que acontece na prática ao executar o script é que o MySQL abre e executa o programa (o script definido na linha de comando no parâmetro -e) exceto o comando \T

Alguma idéia de como fazê-lo funcionar?

Grato por qualquer colaboração!!!

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Oi Denis...

Infelizmente, "tee" também não funciona... Veja este script:

Conteúdo do arquivo cmd2my.sql:

tee //users/pmsd/spool/pmsd/info;
use acme;
select dam_numero, data_pg, valor_pago from inscritos limit 5;
\t

Se executo o comando:

mysql -upaulo -p(senha) -h10.3.2.1 -e "\. //users/pmsd/spool/pmsd/cmd2my.sql"

a query é executada mas o arquivo-texto não é gerado(mesmo se incluir o comando tee na linha de comando do MySQL... é como se o MySQL estivesse programado para recusar salvar o resultado de qualquer query quando chamado para execução de comandos em um script...

De qualquer forma, continuo tentando descobrir...

Grato! abraços!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...