У меня есть программа, которую я поддерживаю, которая недавно была установлена на машине с Windows 7. Все работает, однако недавно этот компьютер начал получать следующую ошибку при использовании метода recordset.update после изменения полей, я получил следующую ошибку.
-2147467259 ([MySQL] [Драйвер ODBC 3.51] [mysqld-4.0.18-nt] Столбец 'fd_number' не может быть пустым)
Таблица 'fd_number' выглядит следующим образом:
CREATE TABLE `bookguide` (
`author` varchar(100) NOT NULL default '',
`title` varchar(100) NOT NULL default '',
`isbn` varchar(13) NOT NULL default '',
`whls` decimal(10,2) NOT NULL default '0.0000',
`oldwhls` decimal(10,2) NOT NULL default '0.0000',
`fd_number` varchar(100) NOT NULL default '',
KEY `isbn` (`isbn`)
) TYPE=MyISAM;
Код, который изменяет эту таблицу, выглядит следующим образом:
780 Do While Not txtstream.AtEndOfStream
790 Line = txtstream.ReadLine
800 rs.addNew
'tempwhole = Mid$(line, 2, 9) + Mid$(line, 119, 1)
810 author = Mid$(Line, 10, 15)
820 author = Replace(author, "'", "")
830 author = Replace(author, ",", "")
840 title = Mid$(Line, 25, 70)
850 title = Replace(title, "'", "")
860 title = Replace(title, ",", "")
'tempisbn = Mid$(tempwhole, 2, 8)
870 rs.fields("isbn").Value = Replace(Trim$(Mid$(Line, 95, 13)), "-", "")
880 rs.fields("author").Value = author
890 rs.fields("title").Value = title
900 rs.fields("whls").Value = Val(Mid$(Line, 139, 5))
910 rs.Update
920 Loop
Это всего лишь один пример того, где это не удается. Скорее всего, тысячи обновлений / вставок были сделаны таким образом по всей программе.
Я несколько раз пытался переустановить драйвер MySQL ODBC 3.51 (3.51.27), в том числе используя более старую версию (3.51.06), которая устраняет проблему ADO, но приводит к ошибке, которая что-то говорит о влиянии Драйвер ODBC не поддерживает запрошенные свойства в этом разделе кода сразу после вышеуказанного цикла.
940 rs.Open "UPDATE bookguide SET oldwhls = whls, whls = 0",conn