AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TADOCommand - Delete Befehl von mehreren Benutzern zu gleichen Zeit
Thema durchsuchen
Ansicht
Themen-Optionen

TADOCommand - Delete Befehl von mehreren Benutzern zu gleichen Zeit

Ein Thema von Piro · begonnen am 1. Dez 2015 · letzter Beitrag vom 5. Dez 2015
 
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#5

AW: TADOCommand - Delete Befehl von mehreren Benutzern zu gleichen Zeit

  Alt 1. Dez 2015, 21:47
Schönen guten Abend,

danke für die Antworten, welche meine Vermutung bestätigt.

Ich verwende in meiner Anwendung eine SQL anstatt einer Domän Autorisierung, weil ich nicht 2000 Benutzern Änderungsrechte geben möchte.

Für Insert/Update verwende ich TADODataSet und für das Löschen TADOCommand. Alles geschieht im Client. Keine SPs.

Meine Logik ist wie folgt.
1. Mit Hilfe von WMI und Registry ermittel ich die Daten des Computers, w.z.B. die Software oder die Drucker.
2. Danach baue ich in einer zentralen Funktion die SQL Verbindung auf und halte sie aktiv mit KeepAlive = True.
3. Die einfachen Computerdaten w.z.B. Computername oder Serialnummer werden dann mit einem Insert oder Update in die DB gebracht.
4. Die Daten für Software und Drucker liegen in separaten Tabellen und werden mittels Insert hinzugefügt.
5. Zum Schluss wird alles gelöscht, was keinen aktuellen Zeitstempel hat (jeder löscht nur seine Daten) ==> hier kommt es zu der erwähnten Fehlermeldung
6. SQL Verbindung wieder schließen, wenn alles erledigt ist.

Das heißt, ich habe eine aktive Verbindung und melde mich nicht erneut an.
Diese Fehlemeldung ist echt zum Schreien, da sie so gar nicht passt. Macht ADO da vielleicht nicht die richtige Exception?

Meine TADOConnection Einstellungen:
Code:
TADOConnection - aktuelle Werte:
- CommandTimeout : 30
- ConnectOptions : coConnectUnspecified
- CursorLocation : clUseCLient
- IsolationLevel : ilCursorStability
- KeepConnection : True
- LoginPrompt    : False
- Mode           : cmReadWrite
- Provider       : SQLOLEDB.1

Wie kann ich denn meine Logik umbauen in Bezug auf die Tabellen mit den Zusatzinformation, wie Software, Memory, Storage oder Drucker? Ich muss doch irgendwie die alten Daten wieder löschen.

Gibt es eine Möglich, den Lock der Tabelle abzufragen und ggf. zu warten oder sollte das TADOCommand machen?
Muss ich den TimeOut von TADOCommand einfach erhöhen?

Ich werde noch irre.

Als wir nur knapp 800 Computer in unserer Anwendung hatte, gab es keine Probleme. Irgendwie muss ich das lösen. Derzeit kommen die wichtigsten Daten in Datenbank. Nur die Zusatzinformationen sind ggf. nicht genau.

Vielen Dank im Voraus.
Sven

Geändert von Piro ( 1. Dez 2015 um 22:05 Uhr)
  Mit Zitat antworten Zitat
 


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 14:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz