AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi korrekte Verwendung der UserSession bei Intraweb-Projekten?
Thema durchsuchen
Ansicht
Themen-Optionen

korrekte Verwendung der UserSession bei Intraweb-Projekten?

Ein Thema von Siggi · begonnen am 9. Mär 2010 · letzter Beitrag vom 9. Mär 2010
Antwort Antwort
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, 07: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
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#2

Re: korrekte Verwendung der UserSession bei Intraweb-Projekt

  Alt 9. Mär 2010, 08:00
Es kann sein, das in der usersession die Variable WebApplication = nil ist? also nicht zugewissen?
oder die Variable qryBuch (also das TQuery) = nil ist?

Am Besten du setzt mal als test
Delphi-Quellcode:
If Assigned(WebApplication) then
//und/oder
If Assigned(qryBuch) then
Das wäre meine erste Überlegung. Wenn net versuch mal das
Delphi-Quellcode:
procedure TIWForm1.IWDBGrid1Columns1Click(ASender: TObject;
  const AValue: string);
begin
  WebApplication.ShowMessage(IntToStr(IWUserSession.qryBuch.RecordCount)); //Fals das usersession- Modul so heist
end;
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat
Siggi

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

Re: korrekte Verwendung der UserSession bei Intraweb-Projekt

  Alt 9. Mär 2010, 19:30
Hallo NickelM,

schon If Assigned(WebApplication) führt zur Schutzverletzung.

Aber vielleicht habe ich das Ganze ja auch falsch verstanden und das TWIUserSession-Objekt ist gar nicht dazu geeignet, die Datenbank-Komponenten aufzunehmen???

Der Zugriff auf RecordCount ist ja nur ein Beispiel, eigentlich soll die gesamte Steuerung (Blättern durch die Datenmenge, Sortierung, Filter setzen (neues SQL) etc.) als Methoden des TIWUserSession-Objektes erstellt werden.
In der IntraWeb - Beispiel-Anwendung FishFactDM wird das mit einem ClientDataSet gemacht und funktioniert auch, darum wundert es mich schon, warum es mit einer TQuery nicht auch gehen soll.

Wenn's aber schon bei so einfachen Dingen wie dem Zugriff auf die Query scheitert .
  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 10:33 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