Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Rad Server - IIS Installtion will einfach nicht laufen (https://www.delphipraxis.net/208772-rad-server-iis-installtion-will-einfach-nicht-laufen.html)

fisipjm 12. Okt 2021 10:23

AW: Rad Server - IIS Installtion will einfach nicht laufen
 
Hallo Herr Eissing,

mal eine doofe Frage. In dem Video https://www.youtube.com/watch?v=NculJwVfKKA zeigt der Kollege, wie man eine FDQuery ganz easy über die Batchmove Komponenten publizieren kann. Haben Sie das schon mal gemacht und dann auch tatsächliche auf dem IIS zum laufen gebracht? Ich bekomme es nicht hin. Auch nicht mit einem kompletten Demoaufbau.

beste Grüße
PJM

MEissing 12. Okt 2021 10:44

AW: Rad Server - IIS Installtion will einfach nicht laufen
 
Und wo klemmt's?

Die Fehlerbeschreibung, die Schritte zum Nachvollziehen und/oder die Fehlermeldungen müssen im Posting unsichtbar sein....

fisipjm 13. Okt 2021 09:42

AW: Rad Server - IIS Installtion will einfach nicht laufen
 
Zitat:

Zitat von MEissing (Beitrag 1495966)
Und wo klemmt's?

Die Fehlerbeschreibung, die Schritte zum Nachvollziehen und/oder die Fehlermeldungen müssen im Posting unsichtbar sein....

Sorry, bin von hellseherischen Fähigkeiten aus gegangen :-D
Das Package lädt, es reagiert, es liefert nur keine Daten. lässt man sich jedoch mit
z.B.
Delphi-Quellcode:
TEMSEndPointEnvironment.Instance.LogMessage(fdquery.recordcount.tostring);
die Anzahl der Datensätze mit loggen, dann stehen im Log die Anzahl der Datensätze der abzufragenden Tabelle. An Response vom Server kommt aber nur HTTP Code 200: content-length 0. (Mit Wireshark kontrolliert)
Im Server selbst sind die Daten da, werden aber scheinbar über die Batchmomve Komponenten nicht an den Body des Response weiter gereicht.

PS: bitte alles im IIS bzw. IIS Express testen, im EMSDevServer flutscht alles.

fisipjm 13. Okt 2021 13:57

AW: Rad Server - IIS Installtion will einfach nicht laufen
 
Mit dem Code geht's, aber dann bekomme ich noch headerinfos in meinem JSON string auf die der Client nicht ausgelegt ist.
Die Auskommentierten Zeilen waren der vorhergehende Aufruf.

Delphi-Quellcode:
procedure TDataResource1.GetItem(const AContext: TEndpointContext;
  const ARequest: TEndpointRequest; const AResponse: TEndpointResponse);
const
  cPreComponentName = 'qry';
var
  LItem: string;
  lQueryComponent: TComponent;
  lStream: TMemoryStream;
begin
  LItem := ARequest.Params.Values['item'];
  // Sample code
//  AResponse.Body.SetValue(TJSONString.Create('data ' + LItem), true);

  lQueryComponent := FindComponent(cPreComponentName + LItem);
  if assigned(lQueryComponent) then
  begin
    if lQueryComponent is TFDQuery then
    begin
      TFDQuery(lQueryComponent).Open;
//      AResponse.Body.SetValue(TJSONString.Create(TFDQuery(lQueryComponent).RecordCount.ToString),true);
      lStream := TMemoryStream.Create;
      TFDQuery(lQueryComponent).SaveToStream(lstream, sfJSON);
      AResponse.Body.SetStream(lstream, 'application/json', True);
//      FDBatchMoveDataSetReader1.DataSet := TFDQuery(lQueryComponent);
//      FDBatchMoveJSONWriter1.JsonWriter := AResponse.Body.JsonWriter;
//      FDBatchMove1.Execute;
      exit;
    end;
  end;
  AResponse.Body.SetValue (TJSONString.Create(LItem + ' is no valid table'), true);
end;

fisipjm 13. Okt 2021 15:39

AW: Rad Server - IIS Installtion will einfach nicht laufen
 
Okay Neuer Anlauf, mit dem Code Klappts nun. Noch 2 Bitten.
1.) kann die Funktion so bleiben? (Create des Array ohne Freigabe und zuweisung auf Result + Aufruf des Body.SetValue sollte das doch eigentlich frei geben, oder?)
2.) Das Ursprüngliche Verhalten ist doch ein Bug oder mach ich was falsch? Hab auch gerade nochmal mit Delphi 11 versucht, gleiches Problem.

Gut nun aber der Code mit der Bitte mal drüber zu fliegen ob man dass so lassen kann. Danke!

Delphi-Quellcode:
function DatasetToJSONArray(aFDQuery: TFDQuery): TJSONArray;
var
  lArray: TJSONArray;
begin
  if assigned(aFDQuery) and not aFDQuery.IsEmpty then
  begin
    lArray := TJSONArray.Create;
    try
      aFDQuery.first;
      while not aFDQuery.eof do
      begin
        var
          o: TJSONObject := TJSONObject.Create;
        for var I := 0 to aFDQuery.Fields.Count - 1 do
        begin
          if not varisnull(aFDQuery.Fields.Fields[I].value) then
            o.AddPair(aFDQuery.Fields.Fields[I].FieldName, aFDQuery.Fields.Fields[I].value)
          else
            o.AddPair(aFDQuery.Fields.Fields[I].FieldName, '')
        end;
        lArray.AddElement(o);
        aFDQuery.Next;
      end;
    finally
      Result := lArray;
    end;
  end;
end;

procedure TDataResource1.GetTableItems(const AContext: TEndpointContext; const ARequest: TEndpointRequest;
  const AResponse: TEndpointResponse);
...
AResponse.Body.SetValue(DatasetToJSONArray(lquery),true);
...
end;

haentschman 14. Okt 2021 05:35

AW: Rad Server - IIS Installtion will einfach nicht laufen
 
Moin...:P
Zitat:

Bitte mal drüber zu fliegen ob man dass so lassen kann
Alles Kosmetik...

1. Groß/Kleinschreibung (assigned, value)
- Du tippst ohne Codevervollständigung? Weil diese immer Assigned, Value anbieten würde. :wink:
2. o: TJSONObject := TJSONObject.Create; War die Batterie alle, daß du nur ein Zeichen für die Variable tippen konntest? :zwinker: Sprechende Namen erleichtern später hinaus die Arbeit.

:hi:

fisipjm 14. Okt 2021 07:32

AW: Rad Server - IIS Installtion will einfach nicht laufen
 
Zitat:

Zitat von haentschman (Beitrag 1496030)
Moin...:P
Zitat:

Bitte mal drüber zu fliegen ob man dass so lassen kann
Alles Kosmetik...

1. Groß/Kleinschreibung (assigned, value)
- Du tippst ohne Codevervollständigung? Weil diese immer Assigned, Value anbieten würde. :wink:
2. o: TJSONObject := TJSONObject.Create; War die Batterie alle, daß du nur ein Zeichen für die Variable tippen konntest? :zwinker: Sprechende Namen erleichtern später hinaus die Arbeit.

:hi:

Moin :-), von Clean Code mal abgesehen. Ich tippe natürlich nicht ohne Codevervollständigung. Dass Assigend hat es allerdings erst hier im Forum rein geschafft, weil ich mir beim überfliegen vor dem Abschicken noch gedacht hab, dass das ganz praktisch wäre um Zugriffsverletzungen zu vermeiden :stupid:

Normal bin ich auch ein Freund von ausführlicheren deklarationen aber bei einem TJSONObject das inline deklariert und nur in dem Miniaturblock verwendet wird hab ich mir erlaubt den Part so zu lassen (Ein Teil davon ist von einem anderen Thread gemops *Hüstel*), für STRG + Shift + j muss ich schließlich 3 Tasten auf einemal drücken :lol:

haentschman 14. Okt 2021 07:55

AW: Rad Server - IIS Installtion will einfach nicht laufen
 
8-)

stephancramer 15. Okt 2021 14:13

AW: Rad Server - IIS Installtion will einfach nicht laufen
 
Hallo.

Ich habe da auch mal eine Frage zum RAD-Server. Bin heute von D 10.4.2 auf D 11 umgestiegen. Problem ist jetzt das sich mein RAD-Server Projekt nicht debuggen lasst. Es wird jetzt eine IB-DB in
"C:\ProgramData\Embarcadero\Interbase\gds_db\EMSMS ERVERVER133.IB" gesucht, die ist natürlich nicht vorhanden.
Bei 10.4.2 lag die Datenbank in C:\Users\Public\Documents\Embarcadero\EMS\EMSSERVE R.IB"

Hat sich da was geändert?

Hat sich eigentlich der RAD-Server geändert? Bin eigentlich froh das er so gut auf einen Server 2019 läuft.

Gruß Stephan

Uwe Raabe 15. Okt 2021 15:34

AW: Rad Server - IIS Installtion will einfach nicht laufen
 
Zitat:

Zitat von stephancramer (Beitrag 1496134)
Hat sich eigentlich der RAD-Server geändert?

Der RAD-Server ändert sich mit jeder Delphi Version. Da er ja Delphi-Packages (bpl) verwendet, muss die Version mit denen die Packages compiliert werden zu der RAD Server Version passen. Daher ist die Verwendung eines LIBSUFFIX bei den Packages sehr zu empfehlen. Am besten einen Automatismus verwenden (z.B.
Delphi-Quellcode:
$(Auto)
oder Project Magician)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:36 Uhr.
Seite 2 von 3     12 3      

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