Pipeline is null at run time
Thank you for your guidance on my previous question. I know have a working
Web Tier.
I have a partially working rbServer file. Using the ThinClient or the
WebTier I can see my report on the explorer. When I preview it, it shows
the header text l but no data on the detail band. Its pipeline is set to
nil. The query has a top 10 from a table and I am able to preview the report
fine at design-time.
I have 3 forms as:
rbMain - has: the TrsServe
the rsServer1.Active := True; on its create
fRpt1 - has: the ppReport
the TrsReportCatalog.RegisterReport on initialization.
The ppReport.Datapipeline is DM->ppDBPipeline1.
uses rsReportCatalog, dmMain;
dmMain - has: ADOConnection1, ADOQuery1, DataSource1, ppDBPipeline1 and
TrsReportTemplateVolume
uses daADO;
On TrsReportTemplateVolume the Name has been change to
match the report registration. Also its databaseSettings is set to
ppDBPipeline1.
Any idea of what I am doing wrong? Also which Volume should I be using?
Thanks in advance
Web Tier.
I have a partially working rbServer file. Using the ThinClient or the
WebTier I can see my report on the explorer. When I preview it, it shows
the header text l but no data on the detail band. Its pipeline is set to
nil. The query has a top 10 from a table and I am able to preview the report
fine at design-time.
I have 3 forms as:
rbMain - has: the TrsServe
the rsServer1.Active := True; on its create
fRpt1 - has: the ppReport
the TrsReportCatalog.RegisterReport on initialization.
The ppReport.Datapipeline is DM->ppDBPipeline1.
uses rsReportCatalog, dmMain;
dmMain - has: ADOConnection1, ADOQuery1, DataSource1, ppDBPipeline1 and
TrsReportTemplateVolume
uses daADO;
On TrsReportTemplateVolume the Name has been change to
match the report registration. Also its databaseSettings is set to
ppDBPipeline1.
Any idea of what I am doing wrong? Also which Volume should I be using?
Thanks in advance
This discussion has been closed.
Comments
I recommend reading the RB Server Developers Guide and working thru the
tutorials - there is one for form based reports. Special considerations must
be made to accommodate a multi-threaded server environment. Demos and
completed tutorials are installed with the product.
You cannot use a global datamodule for a server. That is not thread-safe.
Create a separate datamodule or form (you can use either) for each report.
Each datamodule/form should contain the Report and a complete set of data
access components including the connection component: ADOConnection,
ADOQuery, DataSource, DBPipeline.
With the above setup, each datamodule/form is now a stand alone thread-safe
container for the report. A separate instance can be created for each report
request. Multiple reports can run at the same time, each with their
ADOConnection and query, etc.
From your description you do not need daAO or ReportTemplateVolume. You only
need to include daADO when you using the report designer's Data Workspace to
build queries. You only use ReportTemplateVolume when storing reports to an
.rtm file or database blob.
All of the above is convered in the RB Server Developers Guide.
--
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
ReportTemplateVolume.
To summarize: Every report included in the rbServer will need a datamodule
and a form. The datamodule is created by the Application.CreateForm() on
source file while the form that contains the report is not.
It would be nice if the tutorial would include an ADO multi-report inFile
example. Right now the information is spread over a few examples. It is hard
to determined which pieces go together even though the actual method is so
simple.
No that is not correct. I never said to create a form AND a datamodule for
each report. None of the demos show that, because that is not valid.
You need a single container. The container can be a form OR a datamodule.
Each container should contain the Report and a complete set of data
access components including the connection component: ADOConnection,
ADOQuery, DataSource, DBPipeline.
--
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com