Есть ли в ADO varchars запрещенные символы?
-
22-08-2019 - |
Вопрос
В нашей интрасети есть простой файловый браузер, созданный с использованием ASP/vbscript.Файлы считываются сценарием и добавляются в набор записей ADO (не подключенный к базе данных), поэтому мы можем легко сортировать содержимое:
Set oFolderContents = oFolder.Files
Set rsf = Server.CreateObject("ADODB.Recordset")
rsf.Fields.Append "name", adVarChar, 255
rsf.Fields.Append "size", adInteger
rsf.Fields.Append "date", adDate
rsf.Fields.Append "type", adVarChar, 255
rsf.Open
For Each oFile In oFolderContents
if not left(oFile.Name, 3) = "Dfs" then 'Filter DFS folders
rsf.AddNew
rsf.Fields("name").Value = oFile.Name
rsf.Fields("size").Value = oFile.Size
rsf.Fields("date").Value = oFile.DateCreated
rsf.Fields("type").Value = oFile.Type
end if
Next
В одной конкретной папке мы получаем ошибку:
Microsoft Cursor Engine error '80040e21'
Multiple-step operation generated errors. Check each status value.
Это указывает на линию
rsf.Fields("name").Value = oFile.Name
в коде выше.
Сначала я подумал, что это вызвано длинным именем файла, но я проверил длину всех файлов в каталоге - хотя некоторые из них довольно длинные, все они не превышают установленного выше ограничения в 255 символов (длина самого большого файла составляет 198 символов).
В рассматриваемой папке содержится около 2000 PDF-файлов, и у меня нет разрешений на изменение содержимого, просто прочитайте (это техническая библиотека).Файлы имеют соглашение об именовании «ID# — заголовок статьи».Некоторые из них имеют специальные символы, такие как ', & и (или) – могут ли некоторые из них вызывать проблему?Не припоминаю, чтобы раньше у меня была такая проблема.Я попробовал поискать в Google специальные символы в ADO, но не смог найти ничего подходящего.
Спасибо :-)
Решение
Вы пытались использовать adVarWChar для столбца имени?