Showing posts with label parent. Show all posts
Showing posts with label parent. Show all posts

Friday, March 23, 2012

Noob need help with recursion

I created a table called MyTable with the following fields :

Id int
Name char(200)
Parent int

I also created the following stored procedure named Test, which is supposed to list all records and sub-records.

CREATE PROCEDURE Test
@.Id int
AS

DECLARE @.Name char(200)
DECLARE @.Parent int

DECLARE curLevel CURSOR LOCAL FOR
SELECT * FROM MyTable WHERE Parent = @.Id
OPEN curLevel
FETCH NEXT FROM curLevel INTO @.Id, @.Name, @.Parent
WHILE @.@.FETCH_STATUS = 0
BEGIN
SELECT @.Id AS Id, @.Name AS Name, @.Parent AS Parent
EXEC Test @.Id
FETCH NEXT FROM curLevel INTO @.Id, @.Name, @.Parent
END

CLOSE curLevel
DEALLOCATE curLevel
GO

I added a MxDataGrid and DataSourceControl.
SelectCommand property of the DataSourceControl = EXEC Test 0

When I run the aspx page, it only shows 1 record. I tried to change the parameter to 1, 2, 3 but it always shows only 1 record (not the same tho).

Is there something wrong with the stored procedure ?Ok, I made some modifications to make it work properly but there is some limitations. I have to store the results in a temp table. Can I do something similar but without the temp table ?

(Note : I changed some field/table names)


-- ----------------------
-- Fill and select the temp table where the nodes and sub nodes id are stored
-- ----------------------
CREATE PROCEDURE GetNodesAndSubNodes
@.NodeId INT
AS

DELETE FROM TmpNodesAndSubNodes
EXEC GetNodesAndSubNodesRecursive @.NodeId
SELECT * FROM TmpNodesAndSubNodes
GO

-- ----------------------
-- Fill the temp table with the id's of the nodes and it's sub nodes
-- ----------------------
CREATE PROCEDURE GetNodesAndSubNodesRecursive
@.NodeId INT
AS

-- Store the node id into the temp table
INSERT INTO TmpNodesAndSubNodes VALUES(@.NodeId)

-- Declare a local cursor to seek in the nodes table
-- and some variables to retreive the values
DECLARE @.CurrentNodeId INT
DECLARE @.CurrentParentNodeId INT
DECLARE curLevel CURSOR LOCAL FOR
SELECT Id FROM Nodes WHERE ParentNodeId=@.NodeId

-- Fetchs the records and call the recursive method for each node id
OPEN curLevel
FETCH NEXT FROM curLevel INTO @.CurrentNodeId
WHILE @.@.FETCH_STATUS = 0
BEGIN
EXEC GetNodesAndSubNodesRecursive @.CurrentNodeId
FETCH NEXT FROM curLevel INTO @.CurrentNodeId
END

-- Clean up
CLOSE curLevel
DEALLOCATE curLevel

GO

|||Aaarg :)

I decided to work on a non recursive solution.

Wednesday, March 21, 2012

nonoandy

Hello,

My users often view some report for some minutes and after that want to return to parent report.
If they did it after small time (~less than minute), everything is OK. But if this pause is above 1 minute they receive "Runtime Error" message and can only to go to homepage.

I think that this is some session time or something like that.
Am I right? How can fix it?

Thank youAfter setting customError=off we receive "Back call without drillthrough report" error|||Did you find a fix for the problem? Can anyone help? I get the same problem.|||

Back call without drillthrough report

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: Back call without drillthrough report

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.


Stack Trace:

[InvalidOperationException: Back call without drillthrough report] Microsoft.Reporting.WebForms.ReportViewer.Toolbar_Back(Object sender, EventArgs e) +229 Microsoft.Reporting.WebForms.ToolbarControl.OnBack(Object sender, EventArgs e) +25 Microsoft.Reporting.WebForms.BackGroup.BackButton_Click(Object sender, EventArgs e) +40 Microsoft.Reporting.WebForms.ScriptSwitchImage.EnabledImage_Click(Object sender, ImageClickEventArgs e) +25 System.Web.UI.WebControls.ImageButton.OnClick(ImageClickEventArgs e) +105 System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument) +115 System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102

|||

I am also receiving this error but there is no delay. As soon as the report is loaded, I click back to goto the previous report and I get this error.

It is interesting because charts are also not loading. I dont receive an error message but in the event log this is entered: "The stream cannot be found."

This only happens when I drill-through.

|||

I'm having this issue also. Did anyone ever find a solution? thanks

|||Hey guys I think that this issue has something to do with some other problems I have been having due to SP1. I notice that the back button wasn't the only thing messing up, and it was only doing it in the ReportViewer (not when I went to the report directly in VS)

check out this article
http://www.eggheadcafe.com/software/aspnet/29672997/back-call-without-drillth.aspx

-nonoandy|||

i am also facing this problem... Sad

any solutions for this?

|||Just checking if anyone has any luck with this? I spend more time on these forums than i do developing SSRS. Come across issues on a seemingly endless basis.|||Did you check out this link
http://www.eggheadcafe.com/software/aspnet/29672997/back-call-without-drillth.aspx
?
I had two things that was giving me the same problem one was a Ajax update panel around it and the other was because of the bad release of VS2005 SP1. The "Microsoft.ReportViewer.* assemblies" where messing it up so I had to un-install them from my GAC and find the older "File version"
(To find out what file version of the assemblies you have right click and hit properties. Don't look at the Version tab in the windows explore.)

But you don't have to do that now Microsoft came out with new assemblies in and you can download them in a redistributable package.

Read this
http://support.microsoft.com/default.aspx/kb/933137
and download

Thanks!
Andy

nonoandy

Hello,

My users often view some report for some minutes and after that want to return to parent report.
If they did it after small time (~less than minute), everything is OK. But if this pause is above 1 minute they receive "Runtime Error" message and can only to go to homepage.

I think that this is some session time or something like that.
Am I right? How can fix it?

Thank youAfter setting customError=off we receive "Back call without drillthrough report" error|||Did you find a fix for the problem? Can anyone help? I get the same problem.|||

Back call without drillthrough report

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: Back call without drillthrough report

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.


Stack Trace:

[InvalidOperationException: Back call without drillthrough report] Microsoft.Reporting.WebForms.ReportViewer.Toolbar_Back(Object sender, EventArgs e) +229 Microsoft.Reporting.WebForms.ToolbarControl.OnBack(Object sender, EventArgs e) +25 Microsoft.Reporting.WebForms.BackGroup.BackButton_Click(Object sender, EventArgs e) +40 Microsoft.Reporting.WebForms.ScriptSwitchImage.EnabledImage_Click(Object sender, ImageClickEventArgs e) +25 System.Web.UI.WebControls.ImageButton.OnClick(ImageClickEventArgs e) +105 System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument) +115 System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102

|||

I am also receiving this error but there is no delay. As soon as the report is loaded, I click back to goto the previous report and I get this error.

It is interesting because charts are also not loading. I dont receive an error message but in the event log this is entered: "The stream cannot be found."

This only happens when I drill-through.

|||

I'm having this issue also. Did anyone ever find a solution? thanks

|||Hey guys I think that this issue has something to do with some other problems I have been having due to SP1. I notice that the back button wasn't the only thing messing up, and it was only doing it in the ReportViewer (not when I went to the report directly in VS)

check out this article
http://www.eggheadcafe.com/software/aspnet/29672997/back-call-without-drillth.aspx

-nonoandy|||

i am also facing this problem... Sad

any solutions for this?

|||Just checking if anyone has any luck with this? I spend more time on these forums than i do developing SSRS. Come across issues on a seemingly endless basis.|||Did you check out this link
http://www.eggheadcafe.com/software/aspnet/29672997/back-call-without-drillth.aspx
?
I had two things that was giving me the same problem one was a Ajax update panel around it and the other was because of the bad release of VS2005 SP1. The "Microsoft.ReportViewer.* assemblies" where messing it up so I had to un-install them from my GAC and find the older "File version"
(To find out what file version of the assemblies you have right click and hit properties. Don't look at the Version tab in the windows explore.)

But you don't have to do that now Microsoft came out with new assemblies in and you can download them in a redistributable package.

Read this
http://support.microsoft.com/default.aspx/kb/933137
and download

Thanks!
Andy

nonoandy

Hello,

My users often view some report for some minutes and after that want to return to parent report.
If they did it after small time (~less than minute), everything is OK. But if this pause is above 1 minute they receive "Runtime Error" message and can only to go to homepage.

I think that this is some session time or something like that.
Am I right? How can fix it?

Thank youAfter setting customError=off we receive "Back call without drillthrough report" error|||Did you find a fix for the problem? Can anyone help? I get the same problem.|||

Back call without drillthrough report

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: Back call without drillthrough report

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.


Stack Trace:

[InvalidOperationException: Back call without drillthrough report] Microsoft.Reporting.WebForms.ReportViewer.Toolbar_Back(Object sender, EventArgs e) +229 Microsoft.Reporting.WebForms.ToolbarControl.OnBack(Object sender, EventArgs e) +25 Microsoft.Reporting.WebForms.BackGroup.BackButton_Click(Object sender, EventArgs e) +40 Microsoft.Reporting.WebForms.ScriptSwitchImage.EnabledImage_Click(Object sender, ImageClickEventArgs e) +25 System.Web.UI.WebControls.ImageButton.OnClick(ImageClickEventArgs e) +105 System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument) +115 System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102

|||

I am also receiving this error but there is no delay. As soon as the report is loaded, I click back to goto the previous report and I get this error.

It is interesting because charts are also not loading. I dont receive an error message but in the event log this is entered: "The stream cannot be found."

This only happens when I drill-through.

|||

I'm having this issue also. Did anyone ever find a solution? thanks

|||Hey guys I think that this issue has something to do with some other problems I have been having due to SP1. I notice that the back button wasn't the only thing messing up, and it was only doing it in the ReportViewer (not when I went to the report directly in VS)

check out this article
http://www.eggheadcafe.com/software/aspnet/29672997/back-call-without-drillth.aspx

-nonoandy|||

i am also facing this problem... Sad

any solutions for this?

|||Just checking if anyone has any luck with this? I spend more time on these forums than i do developing SSRS. Come across issues on a seemingly endless basis.|||Did you check out this link
http://www.eggheadcafe.com/software/aspnet/29672997/back-call-without-drillth.aspx
?
I had two things that was giving me the same problem one was a Ajax update panel around it and the other was because of the bad release of VS2005 SP1. The "Microsoft.ReportViewer.* assemblies" where messing it up so I had to un-install them from my GAC and find the older "File version"
(To find out what file version of the assemblies you have right click and hit properties. Don't look at the Version tab in the windows explore.)

But you don't have to do that now Microsoft came out with new assemblies in and you can download them in a redistributable package.

Read this
http://support.microsoft.com/default.aspx/kb/933137
and download

Thanks!
Andy

nonoandy

Hello,

My users often view some report for some minutes and after that want to return to parent report.
If they did it after small time (~less than minute), everything is OK. But if this pause is above 1 minute they receive "Runtime Error" message and can only to go to homepage.

I think that this is some session time or something like that.
Am I right? How can fix it?

Thank youAfter setting customError=off we receive "Back call without drillthrough report" error|||Did you find a fix for the problem? Can anyone help? I get the same problem.|||

Back call without drillthrough report

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: Back call without drillthrough report

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.


Stack Trace:

[InvalidOperationException: Back call without drillthrough report] Microsoft.Reporting.WebForms.ReportViewer.Toolbar_Back(Object sender, EventArgs e) +229 Microsoft.Reporting.WebForms.ToolbarControl.OnBack(Object sender, EventArgs e) +25 Microsoft.Reporting.WebForms.BackGroup.BackButton_Click(Object sender, EventArgs e) +40 Microsoft.Reporting.WebForms.ScriptSwitchImage.EnabledImage_Click(Object sender, ImageClickEventArgs e) +25 System.Web.UI.WebControls.ImageButton.OnClick(ImageClickEventArgs e) +105 System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument) +115 System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102

|||

I am also receiving this error but there is no delay. As soon as the report is loaded, I click back to goto the previous report and I get this error.

It is interesting because charts are also not loading. I dont receive an error message but in the event log this is entered: "The stream cannot be found."

This only happens when I drill-through.

|||

I'm having this issue also. Did anyone ever find a solution? thanks

|||Hey guys I think that this issue has something to do with some other problems I have been having due to SP1. I notice that the back button wasn't the only thing messing up, and it was only doing it in the ReportViewer (not when I went to the report directly in VS)

check out this article
http://www.eggheadcafe.com/software/aspnet/29672997/back-call-without-drillth.aspx

-nonoandy|||

i am also facing this problem... Sad

any solutions for this?

|||Just checking if anyone has any luck with this? I spend more time on these forums than i do developing SSRS. Come across issues on a seemingly endless basis.|||Did you check out this link
http://www.eggheadcafe.com/software/aspnet/29672997/back-call-without-drillth.aspx
?
I had two things that was giving me the same problem one was a Ajax update panel around it and the other was because of the bad release of VS2005 SP1. The "Microsoft.ReportViewer.* assemblies" where messing it up so I had to un-install them from my GAC and find the older "File version"
(To find out what file version of the assemblies you have right click and hit properties. Don't look at the Version tab in the windows explore.)

But you don't have to do that now Microsoft came out with new assemblies in and you can download them in a redistributable package.

Read this
http://support.microsoft.com/default.aspx/kb/933137
and download

Thanks!
Andy