سؤال

لدينا متصفح ملف بسيط على موقعنا على الشبكة الداخلية، تم إنشاؤها باستخدام ASP / فبسكريبت. تتم قراءة الملفات من قبل البرنامج النصي وإضافتها إلى مجموعة سجلات 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 # - ورقة عنوان". البعض أحرف خاصة مثل '، و، و (أو) - يمكن لبعض هذه تكون سببا في حدوث المشكلة؟ لا أذكر وجود مثل هذه المشكلة من قبل. حاولت البحث جوجل للأحرف خاصة في ADO، ولكن لا يمكن أن تجد أي شيء بدا مناسبا.

والشكر: -)

هل كانت مفيدة؟

المحلول

هل حاولت استخدام adVarWChar للعمود الاسم؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top