FIX: خطأ #DELETED عند الإدراج السجلات مع مفتاح أساسي CHAR

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية264766
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
الأعراض
عند إدراج سجل جديد في جدول ODBC مرتبط يحتوي حقل نص ذات طول ثابت (CHAR) كمفتاح أساسي #DELETED يظهر في كافة الحقول في سجل جديد.

ملاحظة إذا كنت أغلق وأعد تم فتح جدول مرتبط يظهر سجل مدرج حديثاً ثم إدخال بشكل صحيح.
السبب
إضافة العديد من برامج تشغيل ODBC المسافات (أو "لوح") حقل CHAR عندما يكون عدد الأحرف التي يتم إدراجها أقل من الحد الأقصى لطول الحقل. Microsoft Jet 4.0 بشكل غير صحيح يقرأ قيمة المدرج, padded ويقارنه مع قيمة الأصلي, unpadded. لأن مختلفة القيمتين Jet تقارير إلى Microsoft Access لا يمكن العثور على سجل مدرج حديثاً.
الحل
لحل هذه المشكلة، قم بتثبيت أحدث حزمة خدمة لـ Jet 4.0. للحصول على معلومات إضافية، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
239114كيفية: الحصول على أحدث حزمة خدمة لـ مشغل قاعدة بيانات Microsoft Jet 4.0
الحل البديل
استخدم حقل نصي ذو طول متغير (VARCHAR) المفتاح الأساسي للجدول.
تصريح
أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في بداية هذه المقالة. تم إصلاح هذه المشكلة في Jet 4.0 Service Pack 6 (SP6).
معلومات أخرى

خطوات إعادة إنشاء السلوك

يمكنك إعادة هذه المشكلة عن طريق ربط إلى قاعدة بيانات DB2 أو Oracle Microsoft SQL Server. يبدو أن المشكلة لا تحدث إلا إذا كان لديك سجلات الأقل 60 أو أكثر في الجدول المرتبط.

إذا قمت تتبع ODBC تم التقاطها أثناء عملية إدراج ، سوف راجع إدراج Jet و reselects السجل بشكل صحيح و حدوث لم أخطاء في التتبع. وتحدث هذه المشكلة بعد استرداد السجل Jet يحاول مقارنة قيمة المفتاح reselected مع القيمة التي تم إدخالها بواسطة المستخدم.

إعادة إنشاء هذا السلوك, نفذ الخطوات التالية:
  1. تشغيل التعليمات البرمجية Microsoft Visual Basic التالية لإنشاء جدول الاختبار والسجلات:
    Sub GenerateTestTable()Dim conn As ObjectDim i As Long, sql as String   Set conn = CreateObject("adodb.connection")   ' Change connection string to point to your SQL Server if needed.   conn.Open "Provider=SQLOLEDB;Server=(Local);Database=Pubs;UID=sa;PWD=;"   On Error Resume Next   conn.Execute "drop table tmp_chartest"   On Error GoTo 0   sql = "create table tmp_chartest(f1 char(5) primary key, f2 char(10))"   conn.Execute sql    For i = 1 To 70        sql = "insert into tmp_chartest (f1,f2) values ('"        sql = sql & Format(i, "000") & "','XXXXXXXXXX')"        conn.Execute sql    Next i    conn.Close    Set conn = NothingEnd Sub					
  2. ابدأ تشغيل Microsoft Access 2000 ثم الربط بجدول tmp_chartest تم إنشاؤه في الخطوة السابقة.
  3. فتح الجدول المرتبط حديثاً ثم بالتمرير إلى آخر سجل في الجدول.
  4. إضافة سجل جديد مع الحقل F1 = 071 و F2 الحقل = XXXXXXXXXX.
  5. التبويب إيقاف السجل، يجب أن ترى #DELETED المعروضة في كافة الحقول.
حذف

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 264766 - آخر مراجعة: 02/21/2014 00:41:30 - المراجعة: 3.1

Microsoft Access 2000 Service Pack 1, Microsoft Access 2002 Standard Edition

  • kbnosurvey kbarchive kbmt kbqfe kbhotfixserver kbbug kbdatabase kbfix kbjet KB264766 KbMtar
تعليقات