VB.Net code wont ework propertly under certain account conditions
-
Hi I’m having some problems with a small vb.net application I wrote that inserts data into an Access database. When I run the application as my self it works comepletely fine on the Windows 2003 server or my desktop XP box. But when I run it under a local admin account on the Win 2003 server box it does not work and spits our the following error for each insert. “The field is too small to accept the amount of data you attempted to add.” The bit I’m having a difficult time understand is why it works under my logon and not a local server logon. There are no domain policies or restrictions in place over the server or local account function on the server. It seems to have something to do with jet/eledb. It is not possibly for the data to be to large because; 1). I’ve got a string limit function which chops of anything larger that what the field should be and this is far less than the Access DB memo field that most columns are set at. 2). I’ve done a thorough analysis of the data and none if it exceeds the maximum column size. My vb.net code it fairly typical…… Try Dim ConnectString, SelectStatement As String Dim Connect As OleDb.OleDbConnection = New OleDb.OleDbConnection ConnectString = (My.Settings("Access_db_tests")) SelectStatement = "INSERT INTO test_information (pk_test_information, department_name)" Connect = New OleDb.OleDbConnection(ConnectString) Dim Cmd As New OleDb.OleDbCommand(SelectStatement, Connect) With Cmd.Parameters .Add(New OleDb.OleDbParameter("@parameter_pk_test_information", pk_test_information)) .Add(New OleDb.OleDbParameter("@parameter_department_name", department_name)) End With Connect.Open() Cmd.ExecuteNonQuery() Connect.Close() Connect.Dispose() Catch Ex As Exception Dim details As String = "pk_test_information = " & pk_test_information & _ " insert_row_to_Access_database - error message >> " & Ex.Message log_exception(details) End Try Does anyone have any ideas? Any feedback would be much appreciated. M:)
-
Hi I’m having some problems with a small vb.net application I wrote that inserts data into an Access database. When I run the application as my self it works comepletely fine on the Windows 2003 server or my desktop XP box. But when I run it under a local admin account on the Win 2003 server box it does not work and spits our the following error for each insert. “The field is too small to accept the amount of data you attempted to add.” The bit I’m having a difficult time understand is why it works under my logon and not a local server logon. There are no domain policies or restrictions in place over the server or local account function on the server. It seems to have something to do with jet/eledb. It is not possibly for the data to be to large because; 1). I’ve got a string limit function which chops of anything larger that what the field should be and this is far less than the Access DB memo field that most columns are set at. 2). I’ve done a thorough analysis of the data and none if it exceeds the maximum column size. My vb.net code it fairly typical…… Try Dim ConnectString, SelectStatement As String Dim Connect As OleDb.OleDbConnection = New OleDb.OleDbConnection ConnectString = (My.Settings("Access_db_tests")) SelectStatement = "INSERT INTO test_information (pk_test_information, department_name)" Connect = New OleDb.OleDbConnection(ConnectString) Dim Cmd As New OleDb.OleDbCommand(SelectStatement, Connect) With Cmd.Parameters .Add(New OleDb.OleDbParameter("@parameter_pk_test_information", pk_test_information)) .Add(New OleDb.OleDbParameter("@parameter_department_name", department_name)) End With Connect.Open() Cmd.ExecuteNonQuery() Connect.Close() Connect.Dispose() Catch Ex As Exception Dim details As String = "pk_test_information = " & pk_test_information & _ " insert_row_to_Access_database - error message >> " & Ex.Message log_exception(details) End Try Does anyone have any ideas? Any feedback would be much appreciated. M:)
-
The first hit it is NOT! I spent a fair bit of time Googling through this. Reasoning behind this is 1). the application code runs 100% fine 100% of the time on one user account that has admin privileges but not another admin account that is local (no domain or other policies exist affecting this). 2). The data inputted is not greater than the max size of the Access database column, I have analyzed the data source (every last row and column of every row) and no data is larger than the limit (if the data for a column was too large then the code would not work fine with the exact same data as it did on the first user account) 3). There is a string limiter function that has been tested and it is not possible for the data that gets passed onto this insert code to exceed the limit because it will chop it off at the allowed limit at code level this is actually well below the limit of the columns in the access database. I just regret this application has to have a shitty Access backend. I would have been done and dusted and had the bugs ironed out weeks ago had been on a proper database server backend. M:( Access sometimes sux
-
Hi I’m having some problems with a small vb.net application I wrote that inserts data into an Access database. When I run the application as my self it works comepletely fine on the Windows 2003 server or my desktop XP box. But when I run it under a local admin account on the Win 2003 server box it does not work and spits our the following error for each insert. “The field is too small to accept the amount of data you attempted to add.” The bit I’m having a difficult time understand is why it works under my logon and not a local server logon. There are no domain policies or restrictions in place over the server or local account function on the server. It seems to have something to do with jet/eledb. It is not possibly for the data to be to large because; 1). I’ve got a string limit function which chops of anything larger that what the field should be and this is far less than the Access DB memo field that most columns are set at. 2). I’ve done a thorough analysis of the data and none if it exceeds the maximum column size. My vb.net code it fairly typical…… Try Dim ConnectString, SelectStatement As String Dim Connect As OleDb.OleDbConnection = New OleDb.OleDbConnection ConnectString = (My.Settings("Access_db_tests")) SelectStatement = "INSERT INTO test_information (pk_test_information, department_name)" Connect = New OleDb.OleDbConnection(ConnectString) Dim Cmd As New OleDb.OleDbCommand(SelectStatement, Connect) With Cmd.Parameters .Add(New OleDb.OleDbParameter("@parameter_pk_test_information", pk_test_information)) .Add(New OleDb.OleDbParameter("@parameter_department_name", department_name)) End With Connect.Open() Cmd.ExecuteNonQuery() Connect.Close() Connect.Dispose() Catch Ex As Exception Dim details As String = "pk_test_information = " & pk_test_information & _ " insert_row_to_Access_database - error message >> " & Ex.Message log_exception(details) End Try Does anyone have any ideas? Any feedback would be much appreciated. M:)
Change your OleDbParameter creation code to explicitly define the fields being sent as paramters, such as field type and width. Do not rely on the OldDbParameter class to use its defaults like you're doing now.
A guide to posting questions on CodeProject[^]
Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
2006, 2007, 2008
But no longer in 2009...