AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Intraweb Datenbankdaten in ein IWGrid legen (kein IWDBGrid
Thema durchsuchen
Ansicht
Themen-Optionen

Intraweb Datenbankdaten in ein IWGrid legen (kein IWDBGrid

Ein Thema von af99 · begonnen am 1. Aug 2013 · letzter Beitrag vom 13. Aug 2013
Antwort Antwort
Seite 2 von 3     12 3      
af99

Registriert seit: 22. Apr 2004
84 Beiträge
 
Delphi XE5 Ultimate
 
#11

AW: Intraweb Datenbankdaten in ein IWGrid legen (kein IWDBGrid

  Alt 2. Aug 2013, 08:07
was mich so ein bischen irretiert ist das das IWDBGrid mit den Daten aus der Query gefüllt wird. Ich sehe die Daten also direkt beim Öffnen der Seite im Browser. die DataSource des IWDBGrid ist "DataModule1.DS_QR_orders_heute". die DS zeigt auf die Query "QR_orders_heute"
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
662 Beiträge
 
#12

AW: Intraweb Datenbankdaten in ein IWGrid legen (kein IWDBGrid

  Alt 2. Aug 2013, 12:38
Ich muss sagen, ich habe von Intraweb keine Ahnung, nutze selber UniGui. Aber folgendes

Delphi-Quellcode:
unit DataModuleUnit;

...

var
  DataModule1: TDataModule1;
wäre in UniGui fatal (wahrscheinlich auch in Intraweb ?). Denn "DataModule1" existiert dadurch im ganzen Projekt nur 1 mal und bei mehreren Sessions würden mehrere Threads gleichzeitig auf das gleiche Dataset zugreifen.

Jede Session sollte ihre eigene Datenbankverbindung (Datenmodul-Instanz) haben, bei Verwendung von ADO/COM sollte außerdem ein CoInitialize() aufgerufen werden.
  Mit Zitat antworten Zitat
Benutzerbild von rapante
rapante

Registriert seit: 3. Jun 2009
Ort: OPR
171 Beiträge
 
Delphi XE2 Professional
 
#13

AW: Intraweb Datenbankdaten in ein IWGrid legen (kein IWDBGrid

  Alt 2. Aug 2013, 12:56
Wo erzeugst du denn deine Usersession?

Wenn diese schon nicht assigned ist, kanllt's naturlich auch beim Zugriff auf Usersession.Datamodule ...
  Mit Zitat antworten Zitat
af99

Registriert seit: 22. Apr 2004
84 Beiträge
 
Delphi XE5 Ultimate
 
#14

AW: Intraweb Datenbankdaten in ein IWGrid legen (kein IWDBGrid

  Alt 2. Aug 2013, 13:45
hmm, das (DataModule1: TDataModule1)stand so in einem Tuorial. Sonst kann ich ja das Datenmodul nicht mit DataModule1.XXX ansprechen. das habe ich so aber auch schon öfters gesehen.
  Mit Zitat antworten Zitat
af99

Registriert seit: 22. Apr 2004
84 Beiträge
 
Delphi XE5 Ultimate
 
#15

AW: Intraweb Datenbankdaten in ein IWGrid legen (kein IWDBGrid

  Alt 2. Aug 2013, 13:49
die Usersession und das Datamodule wird im ServerControler erzeugt
Delphi-Quellcode:
procedure TIWServerController.IWServerControllerBaseNewSession(
  ASession: TIWApplication; var VMainForm: TIWBaseForm);
begin
  ASession.Data := TIWUserSession.Create(nil);
end;

procedure TIWServerController.IWServerControllerBaseCreate(Sender: TObject);
begin
  Pool.Active := True;
end;

procedure TIWServerController.PoolCreateDataModule(var ADataModule: TDataModule);
begin
  ADataModule := TDataModule1.Create(nil);
end;
Das ganze Rahmenprogramm habe ich nicht selber erfunden das erstellt Delphi größtenteils selbst. Ich habe eigentlich nur die Sachen mit dem Grid und dem DBGrid und dem DB Zugriff selber gemacht
Wenn das Programm startet sehe ich auch auf der DB ca. 15 Sessions
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
662 Beiträge
 
#16

AW: Intraweb Datenbankdaten in ein IWGrid legen (kein IWDBGrid

  Alt 2. Aug 2013, 14:08
hmm, das (DataModule1: TDataModule1)stand so in einem Tuorial. Sonst kann ich ja das Datenmodul nicht mit DataModule1.XXX ansprechen. das habe ich so aber auch schon öfters gesehen.
Du musst ja auch irgendwie über UserSession.Datamodule1.xxx o.ä. darauf zugreifen, damit du genau die Instanz bekommst, die deiner Session entspricht.

Hier wird also ein Datamodule für die bzw. pro Session erstellt (bzw. ein Pool ?):
Delphi-Quellcode:
procedure TIWServerController.PoolCreateDataModule(var ADataModule: TDataModule);
begin
  ADataModule := TDataModule1.Create(nil);
end;
Und im folgenden ertstellst du dann nochmals eine Instanz pro Session:
Delphi-Quellcode:
procedure TIWUserSession.IWUserSessionBaseCreate(Sender: TObject);
begin
  inherited;
  Datamodule1 := TDatamodule1.Create(Self);
end;
Und auch an CoInitialize() denken.
  Mit Zitat antworten Zitat
af99

Registriert seit: 22. Apr 2004
84 Beiträge
 
Delphi XE5 Ultimate
 
#17

AW: Intraweb Datenbankdaten in ein IWGrid legen (kein IWDBGrid

  Alt 5. Aug 2013, 07:59
ich habe es auch so versucht
IWGOrders.Cell[1,1].Text := usersession.DataModule1.QR_orders_heute.FieldByName('orders_0800').AsString; es kam aber der gleiche Fehler.

Ich habe das dann mal rausgenommen
Delphi-Quellcode:
procedure TIWUserSession.IWUserSessionBaseCreate(Sender: TObject);
begin
  inherited;
  Datamodule1 := TDatamodule1.Create(Self);
end;
der Fehler bleibt der geiche.

Wofür brauche ich das CoInitialize() ??? und wo muss das hin ???
  Mit Zitat antworten Zitat
af99

Registriert seit: 22. Apr 2004
84 Beiträge
 
Delphi XE5 Ultimate
 
#18

AW: Intraweb Datenbankdaten in ein IWGrid legen (kein IWDBGrid

  Alt 8. Aug 2013, 11:21
hat das denn noch wirklich keiner gemacht ???
In einer Windowsanwendug ist das doch Gang und Gebe.
Kann doch eingentlich mit dem Intraweb nicht so schwer sein oder??????
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
662 Beiträge
 
#19

AW: Intraweb Datenbankdaten in ein IWGrid legen (kein IWDBGrid

  Alt 8. Aug 2013, 11:41
Aus deinem Beitrag #10:
Delphi-Quellcode:
  if Assigned(Usersession) then //er springt von hier nach
    iwLabel1.Caption := 'Usersession ist da'
  else
    iwLabel1.Caption := 'Usersession ist nicht da'; // hier
  ...
Ich habe von Intraweb keine Ahnung, aber wenn Usersession nicht assigned ist, dann brauchst du auch gar nicht mehr zu versuchen auf Objekte/Variablen in dieser Session zuzugreifen, sondern musst erst mal klären, wie du an die UserSession ran kommst.

Zu CoInitialize / CoInitializeEx:

Das wird benötigt, wenn COM (ADO) innerhalb von Threads aufgerufen wird; in jedem Thread zu Beginn 1 mal aufrufen.
  Mit Zitat antworten Zitat
af99

Registriert seit: 22. Apr 2004
84 Beiträge
 
Delphi XE5 Ultimate
 
#20

AW: Intraweb Datenbankdaten in ein IWGrid legen (kein IWDBGrid

  Alt 13. Aug 2013, 07:45
OK, ich habe ja wie gesagt das Projekt von Delphi erstellen lassen. Daher dachte ich das die Usersession korrekt erzeugt ist und zur Verfügung steht. Auf dem Formular werden die Daten ja auch in dem DBGrid angezeigt. Was muss ich also nun tun damit die Usersession zur verfügung steht???
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 15:29 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