Subject RE: [IBO] Exception in 4.9.24 in closing
Author Support List
Ed,

Here's a patch you can try in IBODataset.pas:

procedure TIBODataset.RefreshParams( WantRefresh: boolean );
var
tmpDataset: TDataset;
ii: integer;
waschanged: boolean;
ctrlsdsbld: boolean;
begin
if ( FRefreshingParamsLevel = 0 ) and
Prepared and
( not InternalDataset.Unpreparing ) then
begin
Inc( FRefreshingParamsLevel );
Try
...

Let me know if this cures the problem.

Jason



> -----Original Message-----
> From: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com] On
> Behalf Of Ed Dressel
> Sent: Wednesday, November 16, 2011 4:35 PM
> To: IBObjects@yahoogroups.com
> Subject: [IBO] Exception in 4.9.24 in closing
>
> I am getting an exception when closing my app. It did not occur in 4.9.9.
>
>
> In the destruction of the main form I explicitly close my connection which
> causes the following call stack:
>
> IBODataset.TIBOInternalDataset.DoHandleError($585DF10,335544569,$8335FB0,$
> 8336D70,-901,$8336DB0,$8336E30,True)
> IB_Components.TIB_Session.DoHandleError($585DF10,335544569,$8335FB0,$8336D
> 70,-901,$8336DB0,$8336E30,True)
> IB_Session.TIB_SessionBase.HandleException($585DF10)
> IB_Components.TIB_Statement.API_Execute($3855C50)
> IB_Components.TIB_Dataset.SysExecSelect
> IB_Components.TIB_Statement.SysExecStatement
> IB_Components.TIB_BDataset.SysExecStatement
> IB_Components.TIB_Statement.SysExecute
> IB_Components.TIB_Dataset.SysExecute
> IB_Components.TIB_Dataset.SysOpen('','',-2147483648)
> IBODataset.TIBODataset.DoBeforeOpen
> DB.TDataSet.SetActive(???)
> DB.TDataSet.Open
> IBODataset.TIBODataset.RefreshParams(True)
> IBODataset.TIBOQueryDataLink.ActiveChanged
> DB.TDataLink.SetActive(???)
> DB.TDataLink.UpdateState
> DB.TDataLink.DataEvent(???,0)
> DB.TDataSource.NotifyLinkTypes(deUpdateState,0,False)
> DB.TDataSource.NotifyDataLinks(deUpdateState,0)
> DB.TDataSource.SetState(???)
> DB.TDataSource.UpdateState
> DB.TDataSource.DataEvent(deUpdateState,0)
> DB.TDataSet.DataEvent(deUpdateState,0)
> DB.TDataSet.SetState(???)
> DB.TDataSet.SetActive(???)
> DB.TDataSet.Close
> IBODataset.TIBOInternalDataset.SysClose
> IB_Components.TIB_Statement.SysUnprepare
> IB_Components.TIB_Dataset.SysUnprepare
> IB_Components.TIB_Statement.SysDeallocate(True)
> IB_Components.TIB_Connection.DeallocateStatements
> IB_Components.TIB_Connection.SysBeforeDisconnect
> IB_Components.TIB_Connection.SysDisconnect
> IB_Components.TIB_Connection.Disconnect
> master.TfrmMaster.DisconnectData(True)
> master.TfrmMaster.Destroy
>
>
> which raises the following exception:
>
> ---------------------------
> Debugger Exception Notification
> ---------------------------
> Project trak.exe raised exception class EIBO_ISCError with message 'ISC
> ERROR CODE:335544569
>
> ISC ERROR MESSAGE:
> Dynamic SQL Error
> SQL error code = -901
> invalid transaction handle (expecting explicit transaction start)
>
> STATEMENT:
> qrySpouse.IBOqrqrySpouse(TIBOInternalDataset)
>
> '.
> ---------------------------
> Break Continue Help
> ---------------------------
>
> the exception is not visible to the user, but is a pain when closing the
> app in the IDE.
>
> What should I look for with the exception?
>
> Ed Dressel
>
>
>
>
>
>
> ------------------------------------
>
> __________________________________________________________________________
> _
> IB Objects - direct, complete, custom connectivity to Firebird or
> InterBase
> without the need for BDE, ODBC or any other layer.
> __________________________________________________________________________
> _
> http://www.ibobjects.com - your IBO community resource for Tech Info
> papers,
> keyword-searchable FAQ, community code contributions and more !
> Yahoo! Groups Links
>
>
>