Existe la funcion FILE() en RDDADS ?

Existe la funcion FILE() en RDDADS ?

Postby RSalazarU » Sat Nov 05, 2011 1:26 pm

Hola amigos del foro:

Alguien sabe si ADS proporciona una función parecida a FILE(), para verificar la existencia de una tabla que esta definida en el diccionario?

Puede suceder que se elimine una tabla físicamente, sin modificar el diccionario y al intentar abrirla se produce un error.

Puedo usar la función File(), pero si la verificación la hace el Servidor ADS seria mejor.

De antemano, gracias por la ayuda.

Atentamente,

Rolando.

Saludos desde Cochabamba, Bolivia.
RSalazarU
 
Posts: 211
Joined: Wed Jul 16, 2008 12:59 pm
Location: Cochabamba-Bolivia

Re: Existe la funcion FILE() en RDDADS ?

Postby carlos vargas » Sat Nov 05, 2011 8:14 pm

ceo que los tiros iran por obtener una lista de las tablas contenidas en la base de datas con una instruccion tipo sql
por ejemplo creo que en mysql es list tables, dejame revisar en la doc.
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1708
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Existe la funcion FILE() en RDDADS ?

Postby carlos vargas » Sat Nov 05, 2011 8:41 pm

pues no encontre nada :-(, pero puedes usar un try cacth end para interceptar el error al abrir una tabla que no existe :-)
podria ser algo asi

function adsExistTable( cTable )
local oErr
local lExist := .t.
if empty(cTable )
return .f.
return
try
use (cTable)
catch oErr
lExist := .f.
end
use
return lExist
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1708
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Existe la funcion FILE() en RDDADS ?

Postby Patricio Avalos Aguirre » Sun Nov 06, 2011 12:30 am

Hola

puede que te sirva la funcion adsdirectory(), yo la utilizo para reindexar las tablas

Code: Select all  Expand view
aIndex := AdsDirectory()
oMeter:nTotal := Len( aIndex )

for i := 1 to len( aIndex )
    cDbf := Left( aIndex[i], len( aIndex[i] )-1 )
    oMeter:cText := "Creando Indice para BD :"+cDbf
    oMeter:Set( i )
    if Netuse( cDbf, .f. )
        if ADSGETNUMINDEXES() > 0
            if !AdsReindex()
                MsgInfo( AdsGetLastError(), "Usuario" )
            endif
        endif
    endif
    USE
next i
 
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
Patricio Avalos Aguirre
 
Posts: 1060
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 32 guests