Artigo: 186304 - Última revisão: terça-feira, 23 de Janeiro de 2007 - Revisão: 4.3

ACC97: Como ler ficheiros .LDB

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Reduzir tudo

Sumário

Avançado: Requer conhecimentos avançados sobre codificação, interoperabilidade e multi-utilizador.

No Microsoft Access 97, o ficheiro .ldb é utilizado para determinar quais os registos estão bloqueados numa base de dados partilhada e por quem. É criada automaticamente quando qualquer utilizador abre uma base de dados e eliminados quando o último utilizador fecha a base de dados. Enquanto não for possível abrir o ficheiro .ldb directamente para leitura, a Microsoft fornece uma biblioteca de ligação dinâmica que expõe funções que pode utilizar para ler o ficheiro .ldb. Este artigo contém exemplos de código para utilizar a DLL para ler um ficheiro .ldb.

A Microsoft fornece exemplos de programação apenas, para fins sem garantia expressa ou implícita. Isto inclui, mas não está limitado a, as garantias implícitas de comercialização ou adequação a um fim específico. Este artigo pressupõe que está familiarizado com a linguagem de programação apresentada e as ferramentas que são utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às necessidades específicas do utilizador.

Mais Informação

A biblioteca de ligação dinâmica Msldbusr.dll contém funções que permitem efectuar o seguinte:
  • Ver todos os computadores que têm sessão iniciada numa base de dados desde que foi criado o ficheiro .ldb.
  • Ver apenas os computadores que tem sessão iniciados numa base de dados.
  • Ver computadores que estão a causar um ficheiro de base de dados para estar danificado.
  • Ver o número de computadores registados numa base de dados.
Msldbusr.dll faz parte do ficheiro Jetutils.exe. Para obter mais informações sobre Jetutils.exe ou Msldbusr.dll e a respectiva utilização, consulte o seguinte artigo na base de dados de conhecimento da Microsoft:
176670  (http://support.microsoft.com/kb/176670/EN-US/ ) ACC: Microsoft Jet utilitários disponíveis no Centro de transferências
O seguinte exemplo do Visual Basic for Applications código chama a função LDBUser_GetUsers de Msldbusr.dll para imprimir uma lista de computadores actualmente ligado a uma base de dados na janela de depuração.

Depois de instalar Msldbusr.dll ao C:\Windows\System (Microsoft Windows 95) ou a pasta C:\Winnt\System32 (Microsoft Windows NT), siga estes passos para criar e utilizar a função de exemplo:
  1. Crie um novo módulo no Microsoft Access 97
  2. Escreva ou cole a seguinte instrução de declaração de função na secção Declarations do módulo:
          Declare Function LDBUser_GetUsers Lib "MSLDBUSR.DLL" _
          (lpszUserBuffer() As String, ByVal lpszFilename As String, _
          ByVal nOptions As Long) As Integer
    					
  3. Escreva ou cole o seguinte exemplo de função no módulo:
          Public Function GetUsers(Optional StrDbPath As String)
    
             ReDim lpszUserBuffer(1) As String
             Dim intLooper As Integer
             Dim Cusers As Long
             Dim strMsgBox As String
    
             On Error GoTo Err_GetUsers
    
             ' Check to see if a database path was passed
             ' to the function. If the argument was not used,
             ' assume that we're to investigate the .ldb
             ' of the current database.
             If IsMissing(StrDbPath) Or StrDbPath = "" Then
                  StrDbPath = CurrentDb.Name
             End If
    
             ' Set Cusers to the number of computers currently connected
             ' to the database. Insert computer information into the
             ' lpszUserBuffer array.
    
             ' Arguments of LdbUser_Get Users:
             ' 1 =   All users who have logged in since the LDB file was
             ' created
             ' 2 =   Only users who are currently logged in
             ' 4 =   Only users who are causing the database file to be
             ' corrupted
             ' 8 =   Just return the count of users
    
             Cusers = LDBUser_GetUsers(lpszUserBuffer(), StrDbPath, 2)
    
             ' Print possible errors returned by the function.
             Select Case Cusers
                  Case -1
                       strMsgBox = "Can't open the LDB file"
                  Case -2
                       strMsgBox = "No user connected"
                  Case -3
                       strMsgBox = "Can't Create an Array"
                  Case -4
                       strMsgBox = "Can't redimension array"
                  Case -5
                       strMsgBox = "Invalid argument passed"
                  Case -6
                       strMsgBox = "Memory allocation error"
                  Case -7
                       strMsgBox = "Bad index"
                  Case -8
                       strMsgBox = "Out of memory"
                  Case -9
                       strMsgBox = "Invalid Argument"
                  Case -10
                       strMsgBox = "LDB is suspected as corrupted"
                  Case -11
                       strMsgBox = "Invalid argument"
                  Case -12
                       strMsgBox = "Unable to read MDB file"
                  Case -13
                       strMsgBox = "Can't open the MDB file"
                  Case -14
                       strMsgBox = "Can't find the LDB file"
             End Select
    
             If Not IsEmpty(strMsgBox) And strMsgBox <> "" Then
                  MsgBox strMsgBox, vbCritical, "Error"
                  Exit Function
             End If
    
             ' Print computer names to Debug window.
             For intLooper = 0 To Cusers - 1
                  Debug.Print "User"; intLooper + 1; ":"; _
                  lpszUserBuffer(intLooper)
             Next
    
        Exit_GetUsers:
             Exit Function
        Err_GetUsers:
             MsgBox Err.Description
             Resume Exit_GetUsers
    
        End Function
    					
  4. Para testar esta função, escreva a seguinte linha na janela de depuração e, em seguida, prima ENTER:
    ?getusers()
    					

Referências

Para obter mais informações sobre Msldbusr.dll, consulte o ficheiro Msldbusr.doc existentes Jetutils.exe.

A informação contida neste artigo aplica-se a:
  • Microsoft Access 97 Standard Edition
Palavras-chave: 
kbmt kbhowto kbprogramming KB186304 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 186304  (http://support.microsoft.com/kb/186304/en-us/ )
Retired KB ArticleExclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.