[NEWBIE]try .. catch .. not continuing on server error

B

Beemer Biker

I put in a database operation in a try .. catch .. but I continue to get a
server error.

try
{
Sql_psg.SelectCommand = "DROP TABLE \"##TEMP\"";
}
catch
{
}

The above runs fine if ##TEMP exists. If not (the table does not exists)
then I get a server error.

If running VS2005 in debug and I have [x] checked for exceptions, then the
error is thrown up in the debugger. After clicking on "continue" I still
get the server error. So I get a server error both in the debugger and in
the published web page.

Is this functionality (continueing on after the "catch") a problem in the
odbc postgresql drivers? There is no DROP TABLE IF EXISTS in postgresql,
they dont even have an "IF command" in their sql syntax, so I was attempting
to use the try..catch to ignore errors.

I would have thought the code would continue on after the catch, but I guess
not???


...thanks in advance..
 
E

Eliyahu Goldin

You catch exceptions raised on assigned the select command text. There won't
be any. You need to catch exceptions in the code where the select is
executed, not just assigned.
 
B

Beemer Biker

Eliyahu Goldin said:
You catch exceptions raised on assigned the select command text. There
won't be any. You need to catch exceptions in the code where the select is
executed, not just assigned.

thanks, but there seems that the code is executed during the assignement.
There is no "active" nor "execute" like there is on windows forms. Is there
some
Sql_psg.Active = true;
or
Sql_psg.Execute();
that i missed?

I am new into web projects. Using cbuilder and windows forms I have
connections, datasets and datasources. All I have after installing posgresq
odbc drivers is the "SqlDataSource". Looking at the VS8 toolbox, all the
connections, datasets, datasources are grayed out when web projects is
selected. Even the postgresql connection is grayed out.

Is this the correct forum for web projects?


--
Eliyahu Goldin,
Software Developer & Consultant
Microsoft MVP [ASP.NET]


Beemer Biker said:
I put in a database operation in a try .. catch .. but I continue to get
a server error.

try
{
Sql_psg.SelectCommand = "DROP TABLE \"##TEMP\"";
}
catch
{
}

The above runs fine if ##TEMP exists. If not (the table does not exists)
then I get a server error.

If running VS2005 in debug and I have [x] checked for exceptions, then
the error is thrown up in the debugger. After clicking on "continue" I
still get the server error. So I get a server error both in the debugger
and in the published web page.

Is this functionality (continueing on after the "catch") a problem in the
odbc postgresql drivers? There is no DROP TABLE IF EXISTS in postgresql,
they dont even have an "IF command" in their sql syntax, so I was
attempting to use the try..catch to ignore errors.

I would have thought the code would continue on after the catch, but I
guess not???


..thanks in advance..
 
E

Eliyahu Goldin

Yes, this is the most correct forum for web projects.

Your select statement is executed by your datasource Select method during
databinding. If you assign DataSourceID property in design time, databinding
will take place automatically in PreRender event. To catch exceptions when
the select runs, you need to control the databinding manually. There are
many ways of doing this. You can assign the DataSourceID in run time and
then call the DataBind method on the object bound to the datasource. If you
enclose the DataBind call in try...catch, you will start catching
exceptions.

--
Eliyahu Goldin,
Software Developer & Consultant
Microsoft MVP [ASP.NET]


Beemer Biker said:
Eliyahu Goldin said:
You catch exceptions raised on assigned the select command text. There
won't be any. You need to catch exceptions in the code where the select
is executed, not just assigned.

thanks, but there seems that the code is executed during the assignement.
There is no "active" nor "execute" like there is on windows forms. Is
there some
Sql_psg.Active = true;
or
Sql_psg.Execute();
that i missed?

I am new into web projects. Using cbuilder and windows forms I have
connections, datasets and datasources. All I have after installing
posgresq odbc drivers is the "SqlDataSource". Looking at the VS8 toolbox,
all the connections, datasets, datasources are grayed out when web
projects is selected. Even the postgresql connection is grayed out.

Is this the correct forum for web projects?


--
Eliyahu Goldin,
Software Developer & Consultant
Microsoft MVP [ASP.NET]


Beemer Biker said:
I put in a database operation in a try .. catch .. but I continue to
get a server error.

try
{
Sql_psg.SelectCommand = "DROP TABLE \"##TEMP\"";
}
catch
{
}

The above runs fine if ##TEMP exists. If not (the table does not
exists) then I get a server error.

If running VS2005 in debug and I have [x] checked for exceptions, then
the error is thrown up in the debugger. After clicking on "continue" I
still get the server error. So I get a server error both in the
debugger and in the published web page.

Is this functionality (continueing on after the "catch") a problem in
the odbc postgresql drivers? There is no DROP TABLE IF EXISTS in
postgresql, they dont even have an "IF command" in their sql syntax, so
I was attempting to use the try..catch to ignore errors.

I would have thought the code would continue on after the catch, but I
guess not???


..thanks in advance..
 
B

Beemer Biker

xAvailx said:
they dont even have an "IF command" in their sql syntax, so I was
attempting
to use the try..catch to ignore errors. <<

I googled your sql question/problem and found this:

http://archives.postgresql.org/pgsql-novice/2004-10/msg00158.php

HTH

Thanks xAvailX. I attempted to create that function and the only language I
could select was "SQL". "PLPGSQL" was not an option. It would appear the
DB administrator did bother to install that language. It is supposed to be
in the core distribution according to this download info:
http://www.postgresql.org/download/ hopefully I can get the admin to
install it. SQL does not accept IF whereas the procedural one does.
Beemer said:
I put in a database operation in a try .. catch .. but I continue to
get a
server error.

try
{
Sql_psg.SelectCommand = "DROP TABLE \"##TEMP\"";
}
catch
{
}

The above runs fine if ##TEMP exists. If not (the table does not exists)
then I get a server error.

If running VS2005 in debug and I have [x] checked for exceptions, then
the
error is thrown up in the debugger. After clicking on "continue" I still
get the server error. So I get a server error both in the debugger and
in
the published web page.

Is this functionality (continueing on after the "catch") a problem in the
odbc postgresql drivers? There is no DROP TABLE IF EXISTS in postgresql,
they dont even have an "IF command" in their sql syntax, so I was
attempting
to use the try..catch to ignore errors.

I would have thought the code would continue on after the catch, but I
guess
not???


..thanks in advance..
 
B

Beemer Biker

Eliyahu Goldin said:
Yes, this is the most correct forum for web projects.

Your select statement is executed by your datasource Select method during
databinding. If you assign DataSourceID property in design time,
databinding will take place automatically in PreRender event. To catch
exceptions when the select runs, you need to control the databinding
manually. There are many ways of doing this. You can assign the
DataSourceID in run time and then call the DataBind method on the object
bound to the datasource. If you enclose the DataBind call in try...catch,
you will start catching exceptions.

Thanks Eliyahu. It still did not work, but I googled at "microsoft" and
found this reference to "try catch html unhandled exception"
http://msdn2.microsoft.com/en-us/library/aa479319.aspx
I needed a Page_Error handler!
Once I coded that up it received control when the SelectCommand failed.

The SelectCommand triggered the exception and the debugger brought up the
"debug" - continue" popup. Then I got that html unhandled error (that wasnt
handled). None of those popups would even appear if I did not have [x]
selected in the VS8 debug environment and irregardless they do not show up
in the published page.

Question: Where would I have looked to find the "Page_Error" event in the
VS8 design object viewer? Right clicking on my Default.aspx form shows
"document" as an object with no events. I would have expected an "Event"
property such as "Page_Load" and "Page_Error". How would I know to use
those other than poking around microsofts's msdn info browser?

Beemer Biker said:
Eliyahu Goldin said:
You catch exceptions raised on assigned the select command text. There
won't be any. You need to catch exceptions in the code where the select
is executed, not just assigned.

thanks, but there seems that the code is executed during the assignement.
There is no "active" nor "execute" like there is on windows forms. Is
there some
Sql_psg.Active = true;
or
Sql_psg.Execute();
that i missed?

I am new into web projects. Using cbuilder and windows forms I have
connections, datasets and datasources. All I have after installing
posgresq odbc drivers is the "SqlDataSource". Looking at the VS8
toolbox, all the connections, datasets, datasources are grayed out when
web projects is selected. Even the postgresql connection is grayed out.

Is this the correct forum for web projects?


--
Eliyahu Goldin,
Software Developer & Consultant
Microsoft MVP [ASP.NET]


I put in a database operation in a try .. catch .. but I continue to
get a server error.

try
{
Sql_psg.SelectCommand = "DROP TABLE \"##TEMP\"";
}
catch
{
}

The above runs fine if ##TEMP exists. If not (the table does not
exists) then I get a server error.

If running VS2005 in debug and I have [x] checked for exceptions, then
the error is thrown up in the debugger. After clicking on "continue" I
still get the server error. So I get a server error both in the
debugger and in the published web page.

Is this functionality (continueing on after the "catch") a problem in
the odbc postgresql drivers? There is no DROP TABLE IF EXISTS in
postgresql, they dont even have an "IF command" in their sql syntax, so
I was attempting to use the try..catch to ignore errors.

I would have thought the code would continue on after the catch, but I
guess not???


..thanks in advance..
 
B

Beemer Biker

Beemer Biker said:
Thanks Eliyahu. It still did not work, but I googled at "microsoft" and
found this reference to "try catch html unhandled exception"
http://msdn2.microsoft.com/en-us/library/aa479319.aspx
I needed a Page_Error handler!
Once I coded that up it received control when the SelectCommand failed.

Correction: It receives control, but does not return to the catch.
Context.ClearError(); clears the error but also erases the page and I am
not back at the catch.

I tried the following as you suggested:

try
{
SqlDS_ViewAcquisition.SelectCommand = "DROP TABLE \"##TEMPVIEW\"";
GridView1.DataSourceID = SqlDS_ViewAcquisition.ID;
SqlDS_ViewAcquisition.DataBind();
{
catch
{
}

when the DataBind() is executed then this shows up.
table "##TEMPVIEW" does not exist
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: CoreLab.PostgreSql.PgSqlException: table "##TEMPVIEW"
does not exist

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:

[PgSqlException (0x80004005): table "##TEMPVIEW" does not exist]
CoreLab.PostgreSql.PgSqlCommand.a(CommandBehavior A_0, IDisposable A_1,
Int32 A_2, Int32 A_3) +599
CoreLab.Common.DbCommandBase.c(CommandBehavior A_0) +207
System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior
behavior) +32
System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset,
DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String
srcTable, IDbCommand command, CommandBehavior behavior) +183
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord,
Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior
behavior) +307
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)
+152
System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments
arguments) +2866
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments,
DataSourceViewSelectCallback callback) +84
System.Web.UI.WebControls.DataBoundControl.PerformSelect() +154
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +99
System.Web.UI.WebControls.GridView.DataBind() +24
System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +91
System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls()
+101
System.Web.UI.Control.EnsureChildControls() +134
System.Web.UI.Control.PreRenderRecursiveInternal() +109
System.Web.UI.Control.PreRenderRecursiveInternal() +233
System.Web.UI.Control.PreRenderRecursiveInternal() +233
System.Web.UI.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4435
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,578
Members
45,052
Latest member
LucyCarper

Latest Threads

Top