Einzelnen Beitrag anzeigen

Siggi

Registriert seit: 19. Jun 2004
Ort: Lollar
52 Beiträge
 
Delphi 11 Alexandria
 
#1

korrekte Verwendung der UserSession bei Intraweb-Projekten?

  Alt 9. Mär 2010, 08:43
Hallo zusammen,

ich habe glaube ich ein Verständnisproblem.

Ich habe ein Intraweb-Projekt erstellt und es wird dabei ja automatisch eine UserSession erzeugt. So wie ich die Doku verstehe, stellt diese das Datenmodell bereit und trennt bei mehreren aktiven Benutzern die Sessions voneinander, so dass sich die Anwender nicht in die Quere kommen.
Daher habe ich - wie ich es sonst auch bei "normalen" Anwendungen mache - meine Datenbankobjekte (TQuery) in der Usersession platziert. Im Hauptfenster liegen datensensitive Controls (z.B. DBGrid) und eine Datasource in der usersession stellt die Verbindung her.

So weit so gut, das funktioniert auch alles noch.

Wenn ich aber z.B. die Anzahl der Datensätze im Hauptfenster anzeigen will und dazu in der Usersession eine Methode showRecCount() schreibe (im Public-Zweig der Klasse), die dann aus dem Hauptfenster aufgerufen wird, dann bekomme ich beim Zugriff auf die recordCount-Methode der TQuery eine Zugriffsverletzung.

Lege ich die TQuery in das Hauptfenster und greife dort auf Recordcount zu, geht das.

mal mit einem Quelltextbeispiel:
Im Hauptfenster aufgerufen mit qryBuch im Hauptfenster geht es:
Delphi-Quellcode:
procedure TIWForm1.IWDBGrid1Columns1Click(ASender: TObject;
  const AValue: string);
begin
  WebApplication.ShowMessage(IntToStr(qryBuch.RecordCount));
end;
In der usersession aufgerufen mit qryBuch in der Usersession gibt es eine Schutzverletzung beim Zugriff auf qryBuch:
Delphi-Quellcode:
Procedure TIWUserSession.showRecCount;
begin
  WebApplication.ShowMessage(IntToStr(qryBuch.RecordCount));
end;

Wo liegt da mein Denkfehler??
  Mit Zitat antworten Zitat