TdaQueryDataView.GetDataPipeline returns TppDBPipeline but TppJITPipeline descends from TppDatapipel
Hi
We have had an intermittent issue in Reportbuilder 15, that has
worsened in Reportbuilder 17.02.
We are getting the error raised "TdaQueryDataView.GetDataPipeline:
DataPipelines[0] must be of type TppDBPipeline." in
TdaQueryDataView.GetDataPipeline, because we have a
TppChildJITPipeline.
It has worsened because of the line added to procedure
TdaQueryDataView.CreateAutoSearchFields(aReport: TppReport) (not
tthere in 15):
We thus can no longer load or create any reports using our JITs that
have Autosearch criteria, ie have something like this in creating
their Query SQL:
HOWEVER as noted above the problem defibnitely pre-existed and would
come up relatively frequently previously when editing reports... no
call stack now to say whhat caused it, but the same error from
TdaQueryDataView.GetDataPipeline was th culprit and it seems that
maybe it should return a TppDataPipeline instead of a TppDBpipeline?
Or is our use of a TppJitPipeline descendant all wrong?
This code used to work without issue back inthe RB10 days... I
think!...Trawling back through our SVN code I see that the
GetDataPipeline call didn't used to exist and instead to get a
datapipeline's name it would call
Looking for this function it used to return TppDataPipeline (NOT
TppDBPipeline):
I've patched daQueryDataView.pas, to make it retuen a tppFataPipeline
again, and one other change was needed in
TdaQueryDataView.SetMasterDataView to get it to compile:
... seems to work, but not confident in my tinkering here!!!!
Thanks, Chris
RB Enterprize 17.02
We have had an intermittent issue in Reportbuilder 15, that has
worsened in Reportbuilder 17.02.
We are getting the error raised "TdaQueryDataView.GetDataPipeline:
DataPipelines[0] must be of type TppDBPipeline." in
TdaQueryDataView.GetDataPipeline, because we have a
TppChildJITPipeline.
It has worsened because of the line added to procedure
TdaQueryDataView.CreateAutoSearchFields(aReport: TppReport) (not
tthere in 15):
We thus can no longer load or create any reports using our JITs that
have Autosearch criteria, ie have something like this in creating
their Query SQL:
HOWEVER as noted above the problem defibnitely pre-existed and would
come up relatively frequently previously when editing reports... no
call stack now to say whhat caused it, but the same error from
TdaQueryDataView.GetDataPipeline was th culprit and it seems that
maybe it should return a TppDataPipeline instead of a TppDBpipeline?
Or is our use of a TppJitPipeline descendant all wrong?
This code used to work without issue back inthe RB10 days... I
think!...Trawling back through our SVN code I see that the
GetDataPipeline call didn't used to exist and instead to get a
datapipeline's name it would call
Looking for this function it used to return TppDataPipeline (NOT
TppDBPipeline):
I've patched daQueryDataView.pas, to make it retuen a tppFataPipeline
again, and one other change was needed in
TdaQueryDataView.SetMasterDataView to get it to compile:
... seems to work, but not confident in my tinkering here!!!!
Thanks, Chris
RB Enterprize 17.02
This discussion has been closed.
Comments
I recommend descending from TdaCustomDataView, the anscestor of
TdaQueryDataView. TdaCustomDataView has no concept of TdaSQL, TppDBPipeline,
or TDataSet.
TdaQueryDataView is an abstract ancestor class for SQL based TDataSet
descendants. DADE Plug-ins descend from TdaQueryDataView and add
functionality to manage specific data access component sets such as FireDAC,
ADO, IBExpress, dbExpress, etc. An example of a descendant is
TdaADOQueryDataView which manages a TADOQuery component. (See the RBuilder
Help topic for TdaQueryDataView).
TdaQueryDataView
TdaSQL
TppDBPipeline -> TDataSet (such as TFDQuery, TADOQuery, etc)
Best regards,
-
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
or just about all of whats in TdaQuerydataview, as we use a lot of it
SQL functionality, but we augment extra columns in the tables with
calculated fields we extract from xml BLOBs.
I guess I could just create a class and unit copy of TdaQueryDataView,
say TKineticQuerydataview, and modify its getpipeline method to return
a TppDataPipeline where needed. At least this would be better moving
forward with reportbuilder versions to ensure we don't forget to patch
the TdaQueryDataview...
Chris
On Wed, 3 Aug 2016 14:55:30 -0500, "Nard Moseley \(Digital
Thanks for providing the details about what you are trying to accomplish.
Once solution might be to use the DBPipeline and implement the
DataSet.OnCalcFields event to extract the XML Blobs and populate the calc
field values.
For a future release we're considering adding a DBPipeline.OnGetFieldValue
event.
Best regards,
-
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Yes that might have been a much simpler and more robust approach for
us!!! I might give it a try when i get a window.
Thanks,
Chris
On Fri, 5 Aug 2016 12:02:40 -0500, "Nard Moseley \(Digital