2009-02-11 2 views
0

У нас есть простой файловый браузер в нашей интрасети, построенный с использованием ASP/vbscript. Файлы считываются скриптом и добавили к ADO Recordset (не подключены к базе данных), поэтому мы можем сортировать содержимое легко:Есть ли ограниченные символы в ADO varchars?

 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, но не мог найти ничего, что казалось актуальным.

Спасибо :-)

ответ

2

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

+0

Я сделал это, и он ошибся в первый раз, но я попробовал его снова, и теперь он работает. Благодаря! – Chris