ADS Gesperrte Datensätze
Moderator: Moderatoren
-
- Rekursionen-Architekt
- Beiträge: 202
- Registriert: Mo, 15. Apr 2019 16:19
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 4 Mal
ADS Gesperrte Datensätze
Hallo Zusammen,
ist es möglich mir über den ADS Server anzeigen zu lassen wer genau welchen Datensatz gesperrt hat?
Ich habe nichts derlei gefunden und mich würde interessieren wie Ihr dies handhabt.
Ich verwende ein ADD.
Liebe Grüße
ist es möglich mir über den ADS Server anzeigen zu lassen wer genau welchen Datensatz gesperrt hat?
Ich habe nichts derlei gefunden und mich würde interessieren wie Ihr dies handhabt.
Ich verwende ein ADD.
Liebe Grüße
Gruß Dominik
- Marcus Herz
- 1000 working lines a day
- Beiträge: 854
- Registriert: Mo, 16. Jan 2006 8:13
- Wohnort: Allgäu
- Hat sich bedankt: 39 Mal
- Danksagung erhalten: 192 Mal
- Kontaktdaten:
Re: ADS Gesperrte Datensätze
Der ARC zeigts schon an, aber nicht sehr optimal:
Management Console -> Connected Users
in dem mitteleren Panel zeigt er die gesperrten Sätze zu der Tabelle unter an. Man muss also alle Tabellen und User durchscrollen, um den zu finden.
Alternativ muss mna sich was selber schreiben, die API ist gut beschrieben.
Management Console -> Connected Users
in dem mitteleren Panel zeigt er die gesperrten Sätze zu der Tabelle unter an. Man muss also alle Tabellen und User durchscrollen, um den zu finden.
Alternativ muss mna sich was selber schreiben, die API ist gut beschrieben.
Gruß Marcus
Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Erkenne, was du findest, dann weißt du, wonach du gesucht hast
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9373
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: ADS Gesperrte Datensätze
Die ADSMG.LIB/DLL (müsste in den Beispielen stecken) wrappt einige ACE-Funktionalitäten, darunter "AdsMgGetLockOwner" - eine Funktion, die Dir die gelockten Tabellen, die gesperrten Datensätze und die Besitzer der Sperrungen liefert.
Herzlich,
Tom
Tom
-
- Rekursionen-Architekt
- Beiträge: 202
- Registriert: Mo, 15. Apr 2019 16:19
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 4 Mal
Re: ADS Gesperrte Datensätze
Klasse vielen Dank.
Hat denn schon jemand etwas eigenes in diese Richtung geschrieben?
Hat denn schon jemand etwas eigenes in diese Richtung geschrieben?
Gruß Dominik
- nightcrawler
- 1000 working lines a day
- Beiträge: 653
- Registriert: Di, 24. Apr 2012 16:33
- Wohnort: 72184 Weitingen
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 96 Mal
- Kontaktdaten:
Re: ADS Gesperrte Datensätze
das ganze kann man auch über SQL erledigen. Schau mal die system procedures in der Hilfe durch.
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2936
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: ADS Gesperrte Datensätze
So wie Tom bemerkte, einfach das Alaska Beispiel (...\Xbase++\source\samples\adsdbe\console) ausführen oder adaptieren.Hat denn schon jemand etwas eigenes in diese Richtung geschrieben?
Viele Grüße
Wolfgang
Wolfgang
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9373
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: ADS Gesperrte Datensätze
Das geht relativ einfach zweischrittig. Man holt sich zuerst über "AdsMgGetOpenTables()" die geöffneten Tabellen und arbeitet dann für das zurückgereichte Array mit "AdsMgGetLocks()" die Locks ab. Im Code der ADS Management Console (ist in den Beispielen) kann man das recht einfach nachvollziehen.
Herzlich,
Tom
Tom
- nightcrawler
- 1000 working lines a day
- Beiträge: 653
- Registriert: Di, 24. Apr 2012 16:33
- Wohnort: 72184 Weitingen
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 96 Mal
- Kontaktdaten:
Re: ADS Gesperrte Datensätze
Hab da mal was zusammengestrickt:
Dann nur noch:
Code: Alles auswählen
CREATE PROCEDURE GetAllLocks(tablename cichar(255) output, recNo Integer output, username cichar(255) output)
begin
declare @tables CURSOR AS execute procedure sp_mggetalltables();
declare @locks CURSOR AS execute procedure sp_mggetalllocks(@tables.tablename);
declare @lockowner CURSOR AS execute procedure sp_mggetlockowner(@tables.tablename, @locks.LockedRecNo);
OPEN @tables;
while fetch @tables do
open @locks;
while fetch @locks do
open @lockowner;
while fetch @lockowner do
insert into __output(tablename, recNo, username) values (trim(@tables.tablename), @locks.LockedRecNo, trim(@lockowner.username));
end;
close @lockowner;
end while;
close @locks;
end while;
close @tables;
end;
Code: Alles auswählen
execute procedure GetAllLocks();
-
- Rekursionen-Architekt
- Beiträge: 202
- Registriert: Mo, 15. Apr 2019 16:19
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 4 Mal
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2828
- Registriert: Fr, 10. Feb 2006 9:51
- Wohnort: Aachen
- Hat sich bedankt: 259 Mal
- Danksagung erhalten: 12 Mal
- Kontaktdaten:
Re: ADS Gesperrte Datensätze
Ich bin gerade über diesen Faden gestolpert. Kann jemand ihn in das ADS Unterforum verschieben?
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Mitglied XuG Cologne
Mitglied XuG Osnabrück
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: ADS Gesperrte Datensätze
'ledscht!
Schöne Feiertage,
Martin
Schöne Feiertage,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.