Я пытаюсь обновить устаревший код VB6, добавив простую подпрограмму регистрации ошибок с помощью ADO, чтобы вставить строку в таблицу SQL Server с основными сведениями об ошибке.Подпрограмма получает целочисленное значение параметра (errorCode
), которое идентифицирует тип ошибки.Ошибка произошла при синтаксическом анализе файла XML.Имя файла XML (полученное через objFile.Name
) должно быть зарегистрировано вместе с датой, именем пользователя и значением параметра errorCode
.
Приведенный ниже код показывает, где я до сих пор.Таблица, которую я пытаюсь вставить INTO, выглядит следующим образом:
[dbo].[tblXMLerrorLog](
[errorLogID] [int] IDENTITY(1,1) NOT NULL,
[runDate] [datetime2](0) NULL,
[runBy] [nvarchar](255) NULL,
[xmlFileWithError] [nvarchar](255) NULL,
[errorCode] [int] NULL)
Sub writeErrorLog(errorCode As Integer)
strSQL = "INSERT INTO dbo.tblXMLerrorLog (runDate, runBy, xmlFileWithError, errorCode)
VALUES(GetDate(), Current_User,?,?);"
With cmd
.CommandType = adCmdText
.CommandText = strSQL
Set par1 = .CreateParameter("@xmlFileWithError", adChar, adParamInput, 50, objFile.Name)
.Parameters.Append par1
Set par2 = .CreateParameter("@errorCode", adInteger, adParamInput, , errorCode)
.Parameters.Append par2
.ActiveConnection = Cnxn
.Execute ' update error log
.Parameters.Delete ("@xmlFileWithError")
.Parameters.Delete ("@errorCode")
End With
End Sub
Когда я запускаю код, оператор .Execute
выдает эту ошибку:
"Многошаговая операция OLE DB вызвала ошибки. Проверьте каждое значение состояния OLE DB, если оно доступно. Никакой работы не было."
Мое исследование этого сообщения об ошибке указывает на несоответствие размера поляно я этого не понимаюБуду признателен за любое направление.