Hallo,
mit unserem Programm werden Daten verändert, die auf einer Datenbank auf dem SQL-Server abgespeichert sind. Für den Zugriff auf den SQL-Server verwenden wir die ADO-Klassen von Borland.
Nun möchte ich feststellen, wieviele Benutzer sich mit unserem Programm angemeldet haben. Zu diesem Zweck habe ich zunächst folgende Abfrage erzeugt:
SELECT Count(*) AS Anzahl FROM master.dbo.sysprocesses WHERE db_name(dbid) = ’dueva_usr_1’
Mit den Klassen TADOConnection und TQuery sende ich diese Abfrage an die Datenbank. Dieser Mechanismus mit den Klassen TADOConnection und TQuery zur Abfrage der Anzahl läuft bei anderen Tabellen ohne Schwierigkeiten.
Aber jetzt das Problem: Wenn ich den Inhalt des Feldes ’Anzahl’ abfrage, bekomme ich beim Zugriff mit den ADO-Klassen immer den Wert 1. Wenn ich aber die Abfrage im Management Studio des SQL-Servers stelle, bekomme ich einen anderen Wert. Mit ein und derselben Abfrage bekomme ich zwei unterschiedliche Ergebnisse. Mit dem C++-Programm und im Management Studio bin ich unter Accounts angemeldet, die lesenden Zugriff auf die master-Datenbank haben.
Habe ich bei der Abfrage mit den ADO-Klassen etwas vergessen? Mache ich etwas falsch? Für jeden Tip bin ich dankbar.
Viele Grüße
Kai Siegele
mit unserem Programm werden Daten verändert, die auf einer Datenbank auf dem SQL-Server abgespeichert sind. Für den Zugriff auf den SQL-Server verwenden wir die ADO-Klassen von Borland.
Nun möchte ich feststellen, wieviele Benutzer sich mit unserem Programm angemeldet haben. Zu diesem Zweck habe ich zunächst folgende Abfrage erzeugt:
SELECT Count(*) AS Anzahl FROM master.dbo.sysprocesses WHERE db_name(dbid) = ’dueva_usr_1’
Mit den Klassen TADOConnection und TQuery sende ich diese Abfrage an die Datenbank. Dieser Mechanismus mit den Klassen TADOConnection und TQuery zur Abfrage der Anzahl läuft bei anderen Tabellen ohne Schwierigkeiten.
Aber jetzt das Problem: Wenn ich den Inhalt des Feldes ’Anzahl’ abfrage, bekomme ich beim Zugriff mit den ADO-Klassen immer den Wert 1. Wenn ich aber die Abfrage im Management Studio des SQL-Servers stelle, bekomme ich einen anderen Wert. Mit ein und derselben Abfrage bekomme ich zwei unterschiedliche Ergebnisse. Mit dem C++-Programm und im Management Studio bin ich unter Accounts angemeldet, die lesenden Zugriff auf die master-Datenbank haben.
Habe ich bei der Abfrage mit den ADO-Klassen etwas vergessen? Mache ich etwas falsch? Für jeden Tip bin ich dankbar.
Viele Grüße
Kai Siegele
Comment