Y at-il des caractères limités dans ADO Varchars?
-
22-08-2019 - |
Question
Nous avons un simple navigateur de fichiers sur notre intranet, construit en utilisant ASP / vbscript. Les fichiers sont lus par le script et ajouté à un jeu d'enregistrements ADO (non connecté à une base de données), afin que nous puissions trier le contenu facilement:
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
Dans un dossier particulier, nous obtenons une erreur:
Microsoft Cursor Engine error '80040e21'
Multiple-step operation generated errors. Check each status value.
Cette pointe vers la ligne
rsf.Fields("name").Value = oFile.Name
dans le code ci-dessus.
Ma première pensée cela a été causé par un nom de fichier long, mais j'ai vérifié la longueur de tous les fichiers dans le répertoire - bien que certains sont assez longs, tous sont sous la limite de 255 caractères fixé ci-dessus (le plus grand est de 198 caractères) .
Le dossier en question a près de 2000 fichiers PDF en elle, et je ne dispose pas des autorisations pour modifier le contenu, vient de lire (c'est une bibliothèque technique). Les fichiers ont une convention de nommage de « ID # - Titre du papier ». Certains ont des caractères spéciaux tels que », &, et (ou) - certains d'entre eux pourrait être la cause du problème? Je ne me souviens pas d'avoir un tel problème avant. J'ai essayé une recherche Google pour les caractères spéciaux dans ADO, mais ne pouvait pas trouver quelque chose qui semblait pertinent.
Merci: -)
La solution
Avez-vous essayé d'utiliser adVarWChar pour la colonne de nom?