Существуют ли ограниченные символы в varchars ADO?

В нашей интрасети есть простой файловый браузер, созданный с использованием 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, но не смог найти ничего подходящего.

Спасибо :-)


person Chris    schedule 11.02.2009    source источник


Ответы (1)


Вы пытались использовать adVarWChar для столбца имени?

person Justin Wignall    schedule 11.02.2009
comment
Я сделал это, и в первый раз он выдал ошибку, но я попробовал еще раз, и теперь он работает. Спасибо! - person Chris; 11.02.2009