Índice del Foro www.mediocad.com www.mediocad.com
TODO SOBRE MICROSTATION. MDL, MVBA, MACROS.
 
 F.A.Q.F.A.Q.   BuscarBuscar   Lista de MiembrosLista de Miembros   Grupos de UsuariosGrupos de Usuarios   RegístreseRegístrese 
 PerfilPerfil   Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   ConectarseConectarse 

Eliminar enlaces a base de datos

 
Publicar Nuevo Tema   Responder al Tema    Índice del Foro www.mediocad.com -> MVBA
Ver tema anterior :: Ver siguiente tema  
Autor Mensaje
vicmon
Entusiasta
Entusiasta


Registrado: 12 Ago 2008
Mensajes: 76

MensajePublicado: Mar Mar 30, 2010 9:19 am    Título del mensaje: Eliminar enlaces a base de datos Responder citando

Hola,

Quiero eliminar los enlaces a base de datos de los elementos de un fichero sin tener que tenerlo como fichero activo.
He hecho la siguiente función:

Código:

Private Sub Quitar_Enlaces(fileName As String)
    Dim ee As ElementEnumerator
    Dim esc As New ElementScanCriteria
    Dim elemento As Element
    Dim elemDescrPP As Long
    Dim filePos As Long, startFilePos As Long
    Dim modelRef As Long
       
    On Error GoTo ManError
   
    If mdlWorkDgn_openFile(modelRef, 0, 0, fileName, 0, False) = 0 Then
        filePos = dgnCache_getGraphicElmStart(mdlModelRef_getCache(modelRef))
        Do While filePos <> 0
            filePos = mdlWorkDgn_read(elemDescrPP, filePos, modelRef, startFilePos)
            If filePos <> 0 Then
                If mdlDB_detachAttributesDscr(elemDescrPP) = 0 Then
                    mdlElmdscr_rewrite elemDescrPP, elemDescrPP, filePos
                Else
                    Debug.Print "ERROR"
                End If
            End If
            mdlElmdscr_freeAll elemDescrPP
        Loop
    End If
    mdlWorkDgn_closeFile modelRef
   
Salir:
    Exit Sub
   
ManError:
    MsgBox Err.Description
    Resume Salir
End Sub


La función recorre bien los elementos gráficos del fichero, pero no elimina los links a base de datos.
Alguna idea?

Un saludo.
Volver arriba
Ver perfil del usuario Enviar mensaje privado
vicmon
Entusiasta
Entusiasta


Registrado: 12 Ago 2008
Mensajes: 76

MensajePublicado: Mar Mar 30, 2010 11:15 am    Título del mensaje: Responder citando

Lo he solucionado cambiando la función mdlElmdscr_rewrite por mdlWorkDgn_write.
El código queda como sigue:

Código:

Private Sub Quitar_Enlaces(fileName As String)
    Dim ee As ElementEnumerator
    Dim esc As New ElementScanCriteria
    Dim elemento As Element
    Dim elemDescrPP As Long
    Dim filePos As Long, startFilePos As Long
    Dim modelRef As Long
       
    On Error GoTo ManError
   
    If mdlWorkDgn_openFile(modelRef, 0, 0, fileName, 0, False) = 0 Then
        filePos = dgnCache_getGraphicElmStart(mdlModelRef_getCache(modelRef))
        Do While filePos <> 0
            filePos = mdlWorkDgn_read(elemDescrPP, filePos, modelRef, startFilePos)
            If filePos <> 0 Then
                If mdlDB_detachAttributesDscr(elemDescrPP) = 0 Then
                    mdlWorkDgn_write elemDescrPP, startFilePos, modelRef
                Else
                    Debug.Print "ERROR"
                End If
            End If
            mdlElmdscr_freeAll elemDescrPP
        Loop
    End If
    mdlWorkDgn_closeFile modelRef
   
Salir:
    Exit Sub
   
ManError:
    MsgBox Err.Description
    Resume Salir
End Sub
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Mostrar mensajes anteriores:   
Publicar Nuevo Tema   Responder al Tema    Índice del Foro www.mediocad.com -> MVBA Todas las horas están en GMT + 1 Hora
Página 1 de 1

 
Saltar a:  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas


Powered by phpBB © 2001, 2005 phpBB Group