Microsoft OLE DB Provider for SQL Server error '80040e14'
Cannot insert the value NULL into column '<column>', table '<table>';
column does not allow nulls. INSERT fails. (or UPDATE fails.)
This error is self-explanatory. If you try to INSERT/UPDATE a column with a NULL value, and that column does not allow NULL values, you will get this error.
Microsoft OLE DB Provider for SQL Server error '80040e14'
Cannot resolve collation conflict for EQUAL TO operation.
or
Cannot resolve collation conflict for UNION operation.
You will get this error if you are using #temp tables and the collation on the tempdb does not match that of the databases you are working in. The collation of all affected databases should match or at least be compatible.
Microsoft OLE DB Provider for SQL Server error '80040e14'
Argument data type text is invalid for argument <n> of <function> function
There are several string functions that cannot be performed against columns that have TEXT or NTEXT datatypes.
Microsoft OLE DB Provider for SQL Server error '80040e14'
Invalid object name '<objectname>'.
If the object in question does exist and you are in the correct database, then this is probably an issue with permissions.
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
Syntax error (missing operator) in query expression '<expression>'
or
Syntax error in INSERT INTO statement
or
Syntax error in UPDATE statement
or
Syntax error in FROM clause
or
Syntax error in WHERE clause
or
Line <n>: Incorrect syntax near '<character>'.
The possible reasons these errors could happen are:- You used a reserved word as a column name or alias name (or used a column name that begins with a number or non-alphanumeric character)
- You didn't delimit a value properly
- There really is a syntax error in your SQL statement
Microsoft OLE DB Provider for SQL Server error '80040e14'
Syntax error or access violation
This could be for the same reasons as above, or it could be that you are using an ADODB.Command object and are attempting to pass a string to an INT parameter or vice-versa.
Microsoft OLE DB Provider for ODBC Drivers (0x80040e14)
[Microsoft][ODBC Microsoft Access Driver] The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again.
You will have to verify your query and table structure to determine why you may be violating one of these relationships.
Microsoft OLE DB Provider for SQL Server error '80040e14'
Either the parameter @objname is ambiguous or the claimed @objtype (COLUMN) is wrong.
You used sp_rename, but tried to execute it against a column or other object that doesn't exist (or the syntax is wrong).
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
Undefined function 'NZ' in expression.
Several functions available within Access are not available via ADO/JET providers.
Microsoft JET Database Engine error '80040e14'
The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect.
This can happen if you try and use syntax like SELECT TOP 10 ... WITH TIES, or other syntax from SQL Server that is not directly portable to Access.
Microsoft JET Database Engine error '80040e14'
Syntax error in INSERT INTO statement.
This could be from using a reserved word as a column or expression name, or it could be a real bonafide syntax error. Or, it could be that you are trying to send a batch of statements to Access. While the following will work with SQL Server, Jet prohibits it:
Code:
conn.execute "INSERT INTO tbl1 VALUES(1); INSERT INTO tbl1 VALUES(2)"
In order to prevent this error, you will need to send the two statements separately.
Microsoft OLE DB Provider for SQL Server error '80040e14'
SQL Web Assistant: Could not open the output file.
This is usually caused when you are using a web task to modify existing HTML files which are also in use by IIS. One workaround would be to cycle between two filenames... active and inactive. Flip which one is 'current' every time the web task runs, depending on the frequency of the web task, this will reduce the chance that someone will still have the inactive file open when you make the other file active. In addition, you could delete the inactive file after each run of the web task, to make it even more unlikely that IIS will have a lock on the file.
This can also happen if the account that the SQL Server and SQL Server Agent services don't have sufficient privileges on the folder where the web task outputs its file.
Microsoft OLE DB Provider for SQL Server error '80040e14'
Cannot create a row of size <n> which is greater than the allowable maximum of 8060.
This can happen if you have a table that is defined to allow more than 8060 characters per row (SQL Server warns you about this when creating the table, but allows you to create it nonetheless). This kind of structure can be useful if, say, you have two different VARCHAR(8000) columns where only one of them could possibly contain that much text. If you try to insert 8000 characters into both columns, you get the above error. Your SQL statements need to be constructed with logic that carefully insulates them from exceeding the physical bounds of the table. If you feel you might need to exceed 8060 characters in a single row, consider storing the characters off-row (e.g. in a TEXT/NTEXT column).
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
Could not allocate space for object '<object>' in database '<database>' because the 'PRIMARY' filegroup is full.
This error happens for one of two reasons. Either the disk where the data is stored is full, or the database is not set to auto-grow and it has reached capacity. If the former, you will need to free up space on the drive (or move the data files to a different location). If the latter, you will need to set the database to auto-grow, or clear out stale data and perform a shrink.
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
Could not insert a row larger than the page size into a hash table. Resubmit the query with the ROBUST PLAN hint.
or
Cannot create a worktable row larger than allowable maximum. Resubmit your query with the ROBUST PLAN hint.
or
The current query would generate a key size of <n> for a work table. This exceeds the maximum allowable limit of 900.
This usually means you are trying to run a complex query with a row width that the optimizer can't handle (typically due ot use of wide CHAR or VARCHAR columns). In SQL Server 7.0 and up, you can solve this issue by adding OPTION ROBUST PLAN to your query.
Of course, this could lead to the following error:
Microsoft OLE DB Provider for SQL Server error '80040e14'
Warning: The query processor could not produce a query plan from the optimizer because the total length of all the columns in the GROUP BY or ORDER BY clause exceeds 8000 bytes. Resubmit your query without the ROBUST PLAN hint.
Microsoft OLE DB Provider for SQL Server (0x80040E14)
Invalid column name 'value'with_apostrophe'.
This is usually caused by using " instead of ' to delimit string values, often in an attempt to avoid having to replace ' with ''. However, " are not string delimiters by default in SQL Server, they are identifiers. This means that strings inside of " within a SQL expression are expected to contain column names. So, instead of:
Code:
SQL = "UPDATE table SET column = """ & request.form("value") & """"
use:
Code:
SQL = "UPDATE table SET column = '" & _
replace(request.form("value"),"'","''") & "'"
Furthermore, two other comments: First, the act of doubling up the ' character is not only to prevent parsing errors, but also to avoid exposure to your system to attempts at SQL injection. Second, if you override the quoted identifiers so that " can be interpreted as a string delimiter, instead of worrying about ', now you have to worry about " in the value...
Microsoft OLE DB Provider for SQL Server error '80040e14'
Invalid column name 'valid_column_name'.
This is probably because you used double-quotes around a value, e.g.
Code:
SELECT columns FROM table WHERE column="foo"
Use single-quotes:
Code:
SELECT columns FROM table WHERE column='foo'
Bookmarks