Einzelnen Beitrag anzeigen

Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#1

Probleme bei Intraweb und Datenmodul?

  Alt 22. Feb 2005, 07:00
Datenbank: ORACLE/MSSQL • Version: 8.0/2000 • Zugriff über: TClientDataSet
Hallo allerseits,

wir stellen zur Zeit ein paar Module auf IW-Applikationen um, damit sie von Pocket-PCs zugänglich werden. Im "originalen" Modul haben wir sämtliche Komponenten für den DB-Zugriff auf ein DM ausgelagert. Dies hat alles funktioniert. Wenn ich nun aber mit der IW-Applikation ein Form anzeige, welches auf irgendeine Kompo auf dem DM zugreift, so bleibt die Anwendung hängen, d.h. das neue Form wird nicht im IE angezeigt, der Button auf den geklickt wurde verschwindet einfach, und es gibt keine Debugmeldungen oder sonstige Fehlerausgaben. Das DM wird ohne Probleme initialisiert, aber beim Zugriff knallt es eben. Kennt jemand das Problem bzw. weiß, wie dieses zu beheben ist?

Und nun die obligatorischen Codes:

Aufruf des Forms
TfrmGlassCommission.Create(WebApplication).Show; Erstellen des DMs beim Erstellen einer neuen UserSession:
Delphi-Quellcode:
constructor TUserSession.Create(AOwner: TComponent);
begin
  inherited;
  if not Assigned(FDM) then
    FDM := TDM.Create(Self);
end;
Zugriff auf das DM im Form:
Delphi-Quellcode:
  with dm do begin
    rdWork.Sql.Text:='SELECT FIELDID FROM CUSTOMIZEFIELDS'+
                      ' WHERE @UPPER(TABLENAME)='+hk+'ORDERPOSITION_3'+hk+
                      ' AND @UPPER(FIELDNAME)='+hk+'CUSTOMID5'+hk;
//...
Beim Zuweisen des SQL-Textes fliegt mir das Programm eben um die Ohren

Funktion innerhalb des DMs welches einen Pointer auf sich selbst liefert (inkl. Kommentar wie es zu machen sei)
Delphi-Quellcode:
// Since we are threaded we cannot use global variables to store form / datamodule references
// so we store them in WebApplication.Data and we could reference that each time, but by creating
// a function like this our other code looks "normal" almost as if its referencing a global.
// This function is not necessary but it makes the code in the main form which references this
// datamodule a lot neater.
// Without this function every time we would reference this datamodule we would use:
// TDataModule1(WebApplication.Data).Datamodule.<method / component>
// By creating this procedure it becomes:
// TDataModule1.<method / component>
// Which is just like normal Delphi code.
function dm: Tdm;
begin
  Result := FDM//TUserSession(WebApplication.Data).dm;
end;
Teile des Codes (insbesondere der letzte Teil) stammen aus den IW-Demos, also sagt mir nicht ich sollte dort nachsehen

@Mods: ich wusste nicht so recht wohin damit, also schiebt es einfach woanders hin, falls es hier falsch liegt.

Greetz
alcaeus

[add]
Ich habe soeben festgestellt, dass sich noch das CPU-Fenster öffnet, sobald ich auf einen Button klicke. Der Befehl bei dem er hängenbleibt ist "C3" (ret). Sieht also nach einem "ungeschickten" Sprung aus, aber wo?
[/add]

[nochmal add]
Ich habe mich soeben weiter "durchgeklickt", und wenn ich das Hauptfenster anzeige, dann wird der vorhin angeklickte Button nicht angezeigt, obwohl Visible auf true ist (durch Ausgabe im Log rausgefunden). So langsam wird mir das zu misteriös und ich progge einfach die PHP-Schnittstelle
[/nochmal add]

[schon wieder add ]
Jetzt wird der Button plötzlich angezeigt, aber beim Zugriff aufs DM knallts immer noch ganz still und leise. Ich glaube ich schmeiß das Teil wirklich wieder raus.
[/schon wieder add ]
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat