Einzelnen Beitrag anzeigen

Sploing

Registriert seit: 10. Mär 2015
Ort: Niedersachsen
4 Beiträge
 
Delphi XE7 Professional
 
#1

ADOQuery und AdoStoredProc kapseln

  Alt 10. Mär 2015, 10:22
Moin liebe Experten,

ich hänge gerade an einem Problem fest, bei dem ich nicht sicher bin ob es eine Lösung gibt Vielleicht kennt ihr da den entscheidenden Tip?
Es geht um MS-SQL Datenbankzugriffe über ADO.
Entweder enthalte ich das Ergebnis aus einer ADOQuery:
Delphi-Quellcode:
ADOQuery.First
ADOQuery.Fields.Fields[0].AsString;
oder als Ergebnis des Aufrufs einer Stored Procedure:
Delphi-Quellcode:
StoredProc := TADOStoredProc.Create(self);
...ausführen...
StoredProc.First;
StoredProc.Fields.Fields[0].AsString;
Soweit ich sehen kann wird mit genau den selben Befehlen auf diese unterschiedlichen Recordsets zugegriffen. Nun schreibe ich gerade an verschiedenen Funktionen, die mal Daten von einer Stored Procedure und mal Ergebnisdaten von einem ADOQuery bekommen sollen und würde diese Ergebnisse gerne abkapseln.

Ungefähr so:
Delphi-Quellcode:
function TfrmSQL.DBResult(is_adoquery_not_sprecordset: Boolean): Variant;
begin
  if is_adoquery_not_sprecordset then
    result := ADOQuery AS AdoStoredProc;
  else
    result := StoredProc;
end;
Variant geht natürlich nicht... Ungültive Typen 'variant' und 'TADOStoredProc'

Aufrufen würde ich das ganze dann gerne ungefähr so:
Delphi-Quellcode:
DBResult(True).First;
DBResult(True)..Fields.Fields[0].AsString;
Hoffe das war halbwegs verständlich ausgedrückt. Denke ich da jetzt gerade völlig falsch? Bin heute noch nicht so wach
Wäre über Tips dankbar
Chris
Gestern war das morgen von heute
  Mit Zitat antworten Zitat