Group: Forum Members
Posts: 153,
Visits: 462
|
Partial code used to save the grid layout:
System.IO.MemoryStream memorySreamOrdersView = new System.IO.MemoryStream();
this.ultraGridFrontQueryOrdersView.DisplayLayout.Save(memorySreamOrdersView, Infragistics.Win.UltraWinGrid.PropertyCategories.All);
byte[] layoutArrayOrdersView = memorySreamOrdersView.ToArray();
tbl_UsrFrmCtrSq_1.USRFRMCTRSQ_FILESTREAM = layoutArrayOrdersView;
tbl_UsrFrmCtrSq_1.Save();
Partial code to load the grid layout:
byte[] layoutArrayOrdersView = tbl_UsrFrmCtrSq_1.USRFRMCTRSQ_FILESTREAM;
System.IO.MemoryStream memoryStreamOrdersView = new System.IO.MemoryStream(layoutArrayOrdersView);
memoryStreamOrdersView.Seek(0, System.IO.SeekOrigin.Begin);
this.ultraGridFrontQueryOrdersView.DisplayLayout.Load(memoryStreamOrdersView, Infragistics.Win.UltraWinGrid.PropertyCategories.All);
In SQL the column type is VARBINARY(MAX) which in Strataframe BO is:
new DataColumn("USRFRMCTRSQ_FILESTREAM", typeof(System.Byte[])),
In Oracle the column type is BLOB which in Strataframe BO is:
new DataColumn("USRFRMCTRSQ_FILESTREAM", typeof(System.Byte[]))};
This all works for SQL but in Oracle the code gets an error:
ORA-01459: invalid length for variable character string.
My question is whether you are aware of anything in SF that may be causing this error in Oracle. We have an Oracle DBA that can take the SQL table and successfully convert it including the binary stream to Oracle. It is just when the stream is being SAVED or LOADED from Oracle.
DataLayerSavingException
ORA-01459: invalid length for variable character string
OracleException
ORA-01459: invalid length for variable character string
Source : MicroFour StrataFrame Business
Stack Trace:
at System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle, Int32 rc)
at System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals)
at System.Data.OracleClient.OracleCommand.ExecuteNonQueryInternal(Boolean needRowid, OciRowidDescriptor& rowidDescriptor)
at System.Data.OracleClient.OracleCommand.ExecuteNonQuery()
at MicroFour.StrataFrame.Data.DbDataSourceItem.InternalExecuteNonQuery(DbCommand Command, Boolean IsTransactional, String TransactionKey)
at MicroFour.StrataFrame.Data.OracleDataSourceItem.UpdateRow(QueryInformation QueryInfo, DataRow RowToUpdate, ConcurrencyExceptionHandler ConcurrencyHandler, AddRowErrorHandler RowErrorHandler, Boolean RecreateCommand)
at MicroFour.StrataFrame.Data.DbDataSourceItem.UpdateRow(QueryInformation QueryInfo, DataRow RowToUpdate, ConcurrencyExceptionHandler ConcurrencyHandler, AddRowErrorHandler RowErrorHandler)
at MicroFour.StrataFrame.Data.DataLayer.UpdateDataTableThread(Object ThreadParams)
at MicroFour.StrataFrame.Data.DataLayer.UpdateDataTable(DataTable TableToUpdate, Boolean Transactional, String TransactionKey)
at MicroFour.StrataFrame.Data.DataLayer.Save(DataTable TableToSave, Boolean Transactional, String TransactionKey)
at MicroFour.StrataFrame.Business.BusinessLayer.Save(Boolean Transactional, String TransactionKey)
at MicroFour.StrataFrame.Business.BusinessLayer.Save()
at TrustedVALET.forms.queryBuilder.frmQueryBuilder.get_usr_setup(String userName, String formId, String formDescription, String controlId, String controlIdDescription) in C:\TrustedVALET\TrustedVALET\forms\queryBuilder\frmQueryBuilder.cs:line 2420
at TrustedVALET.forms.queryBuilder.frmQueryBuilder.cmdFrontQueryOrdersViewSaveLayout_Click(Object sender, EventArgs e) in C:\TrustedVALET\TrustedVALET\forms\queryBuilder\frmQueryBuilder.cs:line 3891
at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
at System.Windows.Forms.ToolStripButton.OnClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ToolStrip.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativewindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativewindow.WndProc(Message& m)
at System.Windows.Forms.Nativewindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
|