![]() |
ADOQuery und AdoStoredProc kapseln
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:
oder als Ergebnis des Aufrufs einer Stored Procedure:
ADOQuery.First
ADOQuery.Fields.Fields[0].AsString;
Delphi-Quellcode:
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.
StoredProc := TADOStoredProc.Create(self);
...ausführen... StoredProc.First; StoredProc.Fields.Fields[0].AsString; Ungefähr so:
Delphi-Quellcode:
Variant geht natürlich nicht... Ungültive Typen 'variant' und 'TADOStoredProc'
function TfrmSQL.DBResult(is_adoquery_not_sprecordset: Boolean): Variant;
begin if is_adoquery_not_sprecordset then result := ADOQuery AS AdoStoredProc; else result := StoredProc; end; Aufrufen würde ich das ganze dann gerne ungefähr so:
Delphi-Quellcode:
Hoffe das war halbwegs verständlich ausgedrückt. Denke ich da jetzt gerade völlig falsch? Bin heute noch nicht so wach :roll:
DBResult(True).First;
DBResult(True)..Fields.Fields[0].AsString; Wäre über Tips dankbar :) |
AW: ADOQuery und AdoStoredProc kapseln
So ganz habe ich es noch nicht verstanden, aber beide Klassen stammen von TCustomADODataset ab, da böte sich dieser Typ als Rückgabewert an, oder?
|
AW: ADOQuery und AdoStoredProc kapseln
Zitat:
... da hätte ich auch mal selber nachschauen können:
Delphi-Quellcode:
TADOStoredProc = class(TCustomADODataSet)
TADOQuery = class(TCustomADODataSet) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:05 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