Bom dia Pessoal, Com esse exemplo de código (abaixo) podemos relacionar o nome lógico dos bancos conectados, porém, existe um que está selecionado, aquele que deve estar selecionado quando abrimos o "Data Dictionary ou o Data Administration". Pergunto: Como podemos, via programação, alterar/apontar para outro base de dados? ****************************************************************************** DEFINE TEMP-TABLE tt_bancos FIELD banco AS CHAR FORMAT "x(10)" INDEX pk_tt_bancos banco. DEFINE VARIABLE hdbancos AS HANDLE NO-UNDO. DEFINE VARIABLE ix AS INTEGER NO-UNDO. REPEAT ix = 1 TO NUM-DBS: CREATE tt_bancos. ASSIGN tt_bancos.banco = LDBNAME(ix). END. FOR EACH tt_bancos NO-LOCK: DISP tt_bancos. END. ****************************************************************************** Abraços, Claide.
Claide, Tanto o DataDict quanto o DataAdmin consideram o alias dictdb como o banco selecionado. Se quiser mudar: Código: CREATE ALIAS dictdb FOR DATABASE sports.
Bom dia Marcos, A minha intenção em selecionar um dos bancos conectados, é listar suas tabelas, ou seja, a _file. Fiz o exemplo abaixo para resgatar o nome logico e fisico dos bancos conectados, e dentro de um "for each", deletando e criando o alias dictdb para cada banco, dei um find first na _file, e para todos os bancos, a tabela mostrada é a primeira do banco que está selecionado no Datadictionary/DataAdministration. ************************************************************************** DEFINE TEMP-TABLE tt_bancos FIELD logico AS CHAR FORMAT "x(10)" FIELD fisico AS CHAR FORMAT "x(10)". DEFINE VARIABLE ix AS INTEGER NO-UNDO. REPEAT ix = 1 TO NUM-DBS: CREATE tt_bancos. ASSIGN tt_bancos.logico = LDBNAME(ix). ASSIGN tt_bancos.fisico = PDBNAME(tt_bancos.logico). END. FOR EACH tt_bancos NO-LOCK: DELETE ALIAS dictdb. CREATE ALIAS dictdb FOR DATABASE VALUE(tt_bancos.logico). FIND FIRST dictdb._file NO-LOCK. DISP tt_bancos.fisico tt_bancos.logico dictdb._file._file-name WITH FRAME f-dados DOWN . END. ************************************************************************** Abraços, Claide
Bom dia... Tenta criar o alias em um programa e carregar os nomes das tabelas em outro. Faz um teste. Coloca o codigo abaixo em um programa separado e no seu programa chama ele. FIND FIRST dictdb._file NO-LOCK. DISP dictdb._file._file-name WITH FRAME f-dados DOWN. Qualquer duvida estou a disposição...