Einzelnen Beitrag anzeigen

Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

AW: RemObjects Data Abstract, Schema Modeler erzeugt alles auf dem Client

  Alt 3. Dez 2012, 17:29
Hallo Udo,

danke für die Infos.
Ich teste gerade mit der aktuellen Testversion. Ich kenne den "alten" Modeler nicht.
Vermutlich ist hier das Problem. Sobald ich mein eigenes SQL eingebe, werde ich auch
gefragt ob ich die Felder anlegen möchte. Die Felder werden angelegt jedoch ohne das Attribut
PK, required u.s.w. Werde mal den Support bemühen. Als Anfänger geht man immer davon aus
dass man ein Bedienerfehler macht.
Das mit dem veröffentlichen, ich dachte es werden noch irgendwelche DLLs benötigt oder so.
Es wird also allen in der EXE includiert. Das ist mir am liebsten.

Udo, ich habe dich jetzt wirklich ordentlich strapaziert, sorry dafür. Nur, ich dachte ich
habe das verstanden wie ich im RODA-Server eine Dataset bereitstellen kann um im Client
die "Remote"-Methode aufrufen zu können like GetAdress(const adressnr: Integer): Binary;

Ich habe im Service Manager ein neuen Service angelegt und die Methode GetAdress als Item
mit den Parameter und ein Result vom Typ Binary angelegt. Danach die Implementierung der Methode vorgenommen.


Delphi-Quellcode:
function TMobileService.GetAdress(const adressnr: Integer): Binary;

  procedure ProcessDataset(aDataset: IDADataset);
  begin
    aDataset.ParamByName('adressnr').AsInteger := adressnr;
    aDataset.Open;
    DataStreamer.WriteDataset(aDataset, [woRows], -1);
  end;

begin
  result := Binary.Create;
  DataStreamer.Initialize(result, aiWrite);
  try
//Die Schema.Table = Adresse serialisieren
    ProcessDataset(DASchema.NewDataset(Connection, 'Adresse'));
  finally
    DataStreamer.Finalize;
  end;
end;
Was ich noch nicht verstanden habe, wie kann ich jetzt die Methode GetAdress im Client
Einbinden und aufrufen und das result als dataset ausgeben?
Was ich gemacht habe ist, mein Service MobileService_Impl vom Server im Client in Uses
einzubinden. Die Methode GetAdress wurde in MobileService_Impl automatisch als protected angelegt.

Result := (ISEPricingService as IISEPricing).GenerateCatalogPricesHotel(APeriode.ID, AHotelID, DaysOfWeek, ARoomRateID, DaysOfStay, ServiceIDs); Wenn ich den cast richtig verstanden habe, greift du damit auf die Methode zu. Doch wie bekomme ich die in den Client? Vermutlich irgendwie über den RemoteDataAdapter, doch meine Methode wird nicht angezeigt. Den Server habe ich natürlich gestartet. RemoteDataAdapter zeigt mir nur die Tabellen vom Scheme Modeler. Übrigens, im Scheme Modeler habe ich auch eine StoredProc auf die ich per Commands zugreife. Die StoredProc liefert eine Select. Die Commands werden jedoch nicht angezeigt im RemoteDataAdapter.

Wenn es deine Zeit erlaubt, würde ich dich bitten mich aus diesem Wirrwarr zu leiten.

Gruß Kostas.
  Mit Zitat antworten Zitat