AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken DataSnap und der Zugriff auf Datenbanken

DataSnap und der Zugriff auf Datenbanken

Ein Thema von RWarnecke · begonnen am 4. Nov 2013 · letzter Beitrag vom 5. Nov 2013
Antwort Antwort
arnof

Registriert seit: 25. Apr 2013
1.261 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

AW: DataSnap und der Zugriff auf Datenbanken

  Alt 5. Nov 2013, 07:58
Mal ein Beispiel, das nimmt eine SQL-Anweisung entgegen und gibt ein TDataSet zurück.

Delphi-Quellcode:
function TServerMethods1.GetSQLDataSet(ID,SQL: string): TDataSet;
var t1,t2:TTime;
begin
  AFSQuery1.Close;
  AFSQuery1.SQL.Text:=SQL;
  try
   t1:=now;
   AFSQuery1.Open;
   T2:=now;
   Result := AFSQuery1;
   FM_Haupt.RE_LOG.Lines.Add('ID:'+ID+'/SQL:'+IntToStr(AFSQuery1.RecordCount)+';'+SQL+' '+TimeToStr(now-t1));
  except
   on E: Exception do begin
    FM_Haupt.RE_LOG.Lines.Add('ERROR: '+e.Message);
    FM_Haupt.RE_LOG.Lines.Add('SQL: '+SQL);
    //
    Result := nil;
   end;
  end;
end;
PS: das logt noch etwas mit und macht auch eine Zeitmessung, d.h. alles mit FM_HAUPT kannste entfernen

AFSQuery ist eine beliebige Query Komponente

Geändert von arnof ( 5. Nov 2013 um 08:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.785 Beiträge
 
Delphi 12 Athens
 
#2

AW: DataSnap und der Zugriff auf Datenbanken

  Alt 5. Nov 2013, 08:25
Ich kann dein Projekt hier mangels UniDAC leider nicht öffnen. Daher hier nur eine Trockenübung:

Im Client ist dein DataSet über den lokalen Provider DSProv_Main mit der ServerMethod SQLSrvMethod_Main verbunden. Damit läuft immer alles über die ServerMethod. Das wollen wir hier aber nicht.

Platziere im Server eine weitere Query und einen DataSetProvider und setze dessen DataSet property auf die Query. Gib dem DataSetProvider einen adäquaten Namen. Das mit dem poAllowCommandText hast du ja schon selbst rausgefunden.

Setze bei dem ClientDataSet das Property RemoteServer auf die SQLCOnnection. Dann sollte dir bei ProviderName auch der neue DataSetProvider angezeigt werden. Wähle den aus und dein ClientDataSet ist mehr oder weniger direkt mit der Query verbunden.

Edit: Ich hatte noch vergessen (das kommt davon, wenn man das Projekt nicht öffnet) - du musst im Client noch eine TDSProviderConnection platzieren, die mit der SQLConnection verbunden wird. Diese wird dann im ClientDataSet als RemoteServer ausgewählt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming

Geändert von Uwe Raabe ( 5. Nov 2013 um 08:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#3

AW: DataSnap und der Zugriff auf Datenbanken

  Alt 5. Nov 2013, 21:09
Hallo Uwe,

bin erst jetzt zum Ausprobieren gekommen. Danke für Deine Trockenübung. Ich habe alles hinbekommen und es funktioniert zumindest in meiner Demo. Jetzt werde ich es versuchen in einem Produktivprogramm umzusetzen.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 04:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz