AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Benachrichtigung über Datenänderung
Thema durchsuchen
Ansicht
Themen-Optionen

Benachrichtigung über Datenänderung

Ein Thema von D.BraunSoft · begonnen am 2. Aug 2003 · letzter Beitrag vom 17. Jan 2006
Antwort Antwort
D.BraunSoft
(Gast)

n/a Beiträge
 
#1

Benachrichtigung über Datenänderung

  Alt 2. Aug 2003, 13:12
Wer kann mir helfen ?

Ich möchte alle User einer Datenbank über Änderung Informiern und
den jeweiligen Datensatz der in Bearbeitung ist für ander sperren.

Ich arbeite mit ACCESS DB.

Hat jemand eine Lösung ???????



Dirk Braun
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#2

Re: Benachrichtigung über Datenänderung

  Alt 2. Aug 2003, 13:39
Hallo D.BraunSoft,
welche Komponenten setzt Du für die Access Datenbank ein?. Als Tip könnte ich Dir die KADao von Kiril Antonov aus Sofia, Bulgaria empfehlen. Damit kannst Du die Online Benutzer der Datenbank erkennen. Oder Du hast eine statische Benutzerliste in einer Tabelle.
Der Rest ist ist dann nur Makulatur. Einfach in die Table Ereignisse BeforePost, AfterPost einklinken und machen was Du willst.
Ich hoffe, daß es das ist was Du vorhast?
bye
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
D.BraunSoft
(Gast)

n/a Beiträge
 
#3

Re: Benachrichtigung über Datenänderung

  Alt 2. Aug 2003, 13:48
Ich benutze die BDE.

Danke für die Info ich schaue mir das mal an.
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#4

Re: Benachrichtigung über Datenänderung

  Alt 2. Aug 2003, 14:02
Hallo D.BraunSoft,
noch ein Nachtrag. Falls Du die KADao Komponenten benutzen willst, brauchst Du noch eine Unit "msldbusr.dll". Diese bekommst Du mit nachfolgenden Link.
ACC: Microsoft Jet Utilities Available in Download Center
bye
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
D.BraunSoft
(Gast)

n/a Beiträge
 
#5

Re: Benachrichtigung über Datenänderung

  Alt 3. Aug 2003, 06:03
Hab mal einiges Versucht

Ich bekomme damit keine Info welcher Datensatz in welcher Tabelle
gerade in Arbeit ist.
Somit kann ein ein anderer Benutzer den gleichen Datensatz zur gleichen Zeit bearbeiten.

Wenn ein Datensatz mit ApplyUpdates abgeschlossen ist, habe ich keine Probleme.

HELP HELP HELP
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#6

Re: Benachrichtigung über Datenänderung

  Alt 3. Aug 2003, 09:56
Hallo D.BraunSoft,
hast Du das mal mit der Satzsperre probiert. Soviel wie ich weiß bekommst Du einen Fehler in dem Moment, in den Du den Datensatz in den Edit Mode versetzt. Sicher bin ich mir da aber nicht.
bye
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Delphi-Lover

Registriert seit: 19. Okt 2004
Ort: Amsterdam
30 Beiträge
 
Delphi 2005 Professional
 
#7

How to use the MSLDBUSR.DLL to analyse the Access LDB file.

  Alt 17. Jan 2006, 14:01
Hello,

I'll post this for users searching for a way to interface with MSLDBUSR.DLL with Delphi.
The code is copied from the opensource software "Opus Direct Access" which is a
Plug-in Access/Jet database driver for Borland Delphi and C++Builder (BDE replacement)
In this driver there is a piece of code to analyse the Access LDB file.

Opus Direct Access


Delphi-Quellcode:
unit OpDAOUsers;


interface

const
  OptAllUsers = $1;
  OptLoggedUsers = $2;
  OptCorruptUsers = $4;
  OptUserCount = $8;
  OptUserAuthor = $b0b;

function GetUsers( const _LDBFileName: string; _opt: integer;
    out _users: array of string ): integer;

function GetError( _result: integer ): string;


implementation
uses
  ActiveX, Windows, SysUtils, Variants; //Variants for later delphi versions

const
  DLLName = 'MSLDBUSR.DLL';

function LDBUser_GetUsers( lpszUserBufferArray: PSafeArray; const lpszFilename: TBStr;
    nOptions: longint ): longint; stdcall;
  external DLLName;

function LDBUser_GetError( nErrorNo: longint ): TBStr; stdcall;
  external DLLName;


function GetUsers( const _LDBFileName: string; _opt: integer;
    out _users: array of string ): integer;
  var
    pfn: TBStr;
    usr: variant;
    i: integer;
    p: ^pChar;
  begin
    pfn:= SysAllocStringByteLen( nil, Length(_LDBFileName) + 1 );
    try
      StrCopy( pChar(pfn), pChar(_LDBFileName) );
      usr:= VarArrayCreate( [Low(_users), High(_users)], varOleStr );
      result:= LDBUser_GetUsers( @TVarData(usr).vArray, pfn, _opt );
      if result > 0 then begin
        p:= VarArrayLock( usr );
        try
          for i:= 0 to result - 1 do begin
            _users[i]:= StrPas( p^ );
            Inc( p );
          end;
        finally
          VarArrayUnlock( usr );
        end;
      end {if ok};
    finally
      SysFreeString( pfn );
    end;
  end {GetUsers};


function GetError( _result: integer ): string;
  var
    perr: TBStr;
  begin
    perr:= LDBUser_GetError( _result );
    try
      result:= StrPas( pChar(perr) );
    finally
      SysFreeString( perr );
    end;
  end {GetError};

end.

Here is how to call the LDBUser_GetUsers API function:

Delphi-Quellcode:
implementation

uses OpDAOUsers;

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
Var CUsers : Integer;
    psFilename : String;
    lstUsers: array of string;
begin
  SetLength(lstUsers, 20);
  //set the max on 20. increase if needed, otherwise error !!!

  psFilename:='C:\accessdatabase.mdb';
  CUsers:=GetUsers(psFilename,1,lstUsers);
  Showmessage(lstUsers[0]);
  //loop here to see all the users....
end;
Greetings,

Delphi Lover.
Rob
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz