ab2304


Im getting the following error :
System.Data.OleDb.OleDbException was unhandled
ErrorCode=-2147217833
Message="Overflow"
Source="Microsoft JET Database Engine"
StackTrace:
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
at System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
at Home_Party_Solutions.PartyDBaseAccess.getCustomerID(Customer cust) in C:\Documents and Settings\Andrew Buis.HAL\My Documents\Visual Studio 2005\Projects\Trunk\PartyDBaseAccess.vb:line 138
at Home_Party_Solutions.Customer.getCustomerID(IPartyDBase& p_dbase) in C:\Documents and Settings\Andrew Buis.HAL\My Documents\Visual Studio 2005\Projects\Trunk\Customer.vb:line 212
at Home_Party_Solutions.PartyOrder.Done_Click(Object sender, EventArgs e) in C:\Documents and Settings\Andrew Buis.HAL\My Documents\Visual Studio 2005\Projects\Trunk\PartyOrder.vb:line 150
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.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.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(ApplicationContext context)
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
at Home_Party_Solutions.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81

Basically I am inserting a row into a table. The sql line looks like :
Insert into Customer VALUES ('1', 'Jane', 'Doe', '123 Nowhere', 'Kalamazoo', 'MI', '49024', 'a@a.com', '3335551234')
When I copy and paste the command into Access, it successfully adds the row into the table. However, I am getting that error when I run it in my program. I create the string, then this is the code I am using :
command = New OleDbCommand
command = m_Connection.CreateCommand()
command.CommandText = tempString
Dim tempInt As Integer = -1
tempInt = command.ExecuteNonQuery()
At the last line, I get the overflow.
Just for clarification, the values are (Cust ID as long, firstName as text, lastName as text, Street as text, City as text, State as text, Zip as long, email as text, phone as double).

Any insights into the problem The error message isnt all that insightful.

Thanks



Re: OleDBException Overflow

Jens K. Suessmeyer


Hi,

first of all name the columns which have to be inserted, this would provide much more concistence accross your code and will be much easier to maintain if error occur.

Do something like the following:

INSERT INTO TableName
(
COL1,
COL2
)
VALUES
(
1,
'2'
)

Perhaps this could already solve the problem or help you to find where the problem is located.


HTH, Jens K. Suessmeyer.

---
http://www.sqlserver2005.de
---






Re: OleDBException Overflow

ab2304

Getting the same uninformative error when I try this.





Re: OleDBException Overflow

Junfeng Dong - MSFT

You might want to try Data Access Tracing to find out what happened. Please see the link http://msdn2.microsoft.com/en-us/library/aa964124.aspx.





Re: OleDBException Overflow

Waseem Basheer - MSFT

Hi ab2034,

From the error code it seems you are getting the DB_E_DATAOVERFLOW error from the OLEDB provider. This error might be caused when "Literal value in the command exceeded the range of the type of the associated column.". So it means the provider did not like one or more of your values. I would recommend you to go ahead and try to use smaller input values and see if that works. I would start with the integral/double values first e.g. phone number. For example try putting 1 or 2 as the phone number values to see if that works and continue with other fields.

Thanks

Waseem






Re: OleDBException Overflow

Caffeine

Try
Insert into Customer VALUES (1, 'Jane', 'Doe', '123 Nowhere', 'Kalamazoo', 'MI', 49024, 'a@a.com', 3335551234)

Rather than
Insert into Customer VALUES ('1', 'Jane', 'Doe', '123 Nowhere', 'Kalamazoo', 'MI', '49024', 'a@a.com', '3335551234')

Or better yet, use placeholders and DbParameter to substitute values in sql string.