| Bug #37649 | Add support for data-at-execution with positioned insert/update | ||
|---|---|---|---|
| Submitted: | 26 Jun 2008 1:04 | Modified: | 20 Feb 2009 13:28 | 
| Reporter: | Hans Held | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | Connector / ODBC | Severity: | S3 (Non-critical) | 
| Version: | 5.1 | OS: | Windows (MsWindows XP SP3) | 
| Assigned to: | Jess Balint | CPU Architecture: | Any | 
| Tags: | 5.1, error | ||
   [26 Jun 2008 1:04]
   Hans Held        
  
 
   [26 Jun 2008 1:21]
   Hans Held        
  [MySQL][ODBC 5.1 Driver][mysqld-5.0.45-community-nt]Column 'your_column' cannot be null.
   [30 Jun 2008 23:31]
   Carter Wickstrom        
  Was getting the exact same error when performing this: INSERT INTO newMySqlTable SELECT foo, bar, '' as baz FROM oldMsSqlTable Neither foo nor bar contained NULL values; all destination fields in newMySqlTable had NOT NULL constraints. The only field that failed the insert was a field of datatype text. When I changed the text field to a varchar(255), I was able to insert records without any errors.
   [16 Jul 2008 5:35]
   Bogdan Degtyariov        
  Hello Hans, I am responsible for resolving the current bug#37649. Could you please send the test project at my email (bogdan@mysql.com)? Thanks.
   [16 Jul 2008 9:00]
   Bogdan Degtyariov        
  Thanks Hans, I made the attachments invisible to public access.
   [13 Aug 2008 7:08]
   Bogdan Degtyariov        
  Verified with MyODBC 5.1.4.
   [13 Aug 2008 7:10]
   Bogdan Degtyariov        
  Works OK when disable SQL_API_SQLSETDESCFIELD flag.
   [3 Oct 2008 14:28]
   Jess Balint        
  Merged to trunk, will be released in 5.1.6.
   [10 Oct 2008 14:36]
   Tony Bedford        
  An entry was added to the 5.1.6 changelog: Data-at-execution parameters were not supported during positioned update. This meant updating a long text field with a cursor update would erroneously set the value to null. This would lead to the error Column 'column_name' cannot be null while updating the database, even when column_name had been assigned a valid non-null string.
   [19 Feb 2009 16:13]
   Luca Gallo        
  How can I disable this flag manually??thank you very much, Luca
   [19 Feb 2009 16:21]
   Tony Bedford        
  Assigning to myself as docs will need updating.
   [20 Feb 2009 13:28]
   Tony Bedford        
  If you do not wish to use data-at-execution, simply remove the corresponding calls. For example: SQLLEN ylen = SQL_LEN_DATA_AT_EXEC(10); SQLBindCol(hstmt,2,SQL_C_BINARY, buf, 10, &ylen); Would become: SQLBindCol(hstmt,2,SQL_C_BINARY, buf, 10, NULL); Note that in the call to SQLBindCol(), &ylen has been replaced by NULL. For further information please refer to the MSDN documentation for SQLBindCol(). C/ODBC documentation updated accordingly. Closing bug (again) and reassigning back to Jess Balint.
