Zitat von
hanspeter:
Hallo,
ich greife in einem Delphi-Projekt auf einen Comserver zu. Dieser wurde von einem Kollegen programmiert und stellt einen
Wrapper zur Datenbank bereit.
Pro Aufruf wird ein Datensatz aus der
SQL Datenbank aufbereitet und übertragen.
Hier habe ich , gerade bei größeren Datenbeständen ein Performance Problem.
Kann sein. Wenn der
COM-Server keine
DLL ist welche im gleichen Prozess wie der Client ist läuft hast Du bei jedem Aufruf einen Prozesswechsel und dieser Kostet Rechenzeit unter Windows.
Zitat von
hanspeter:
Da ich vermute, dass die
Com-Schnittstelle der Flaschenhals ist, möchte ich mehrere Datensätze pro Aufruf
übertragen.
Also Array[0..n] of Record.
Gibt es eine Möglichkeit zwischen Anwendung und ComServer Daten in einer variablen Länge zu übertragen?
Sicherlich. Unter
COM ist viel möglich. Die Grundfrage ist aber ob dein Server mit Delphi entwickelt wurde? Falls ja hast Du Probleme da Delphi nur die Möglichkeiten des Standard-Marshallers verwenden kann und AFAIK man nur sehr Aufwendig einen eigenen Marshaller implementieren kann der deine Arrays als "bessere" Interfaces bereitstellen kann. Einfache Arrays sollten aber auch mit Delphi gehen.
Windows Vista - Eine neue Erfahrung in Fehlern.