منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : Reading from the stream has failed
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3
قربت انهي مشروع vbulletin4 to mybb  انهيت نسخ كل الاقسام والمنتديات والمواضيع والمشاركات والمرفقات وحين بدات في نسخ الاعضاء بدا وبعد وقت طويل توقف وظهرت الرسالة
Reading from the stream has failed
طبعا الرسالة هذي لما رجعت لنسخة 53 لـ php لكن لما كنت على نسخة 56 تظهر الرسالة اللي قبل؟!Sad
من وين ماجيتها الاقيها عميا
كود :
SELECT id, name, address, phone FROM customers ORDER BY userid LIMIT 10 OFFSET 990
ممكن احد يشرح عمل هذا الاستعلام؟
خصوصا الجملة الاخيرة offset 990
ايضا لماذا الاضافة الاخيرة offset تلغي order by
يعني من غير offset اول سجل يظهر هو رقم 1 اما مع offset لا يظهر المطلوب اولا
.....

الخطأ الآول احتمال بسبب إصدار (MySQL Connector Net) الذي لديك

OFFSET تستخدم مع LIMIT وهي تصفح البيانات مجموعة مجموعة من أسطر ناتج الاستعلام.
حيث يحدد عدد المجموعة من خلال LIMIT وتحديد بداية المجموعة من خلال OFFSET.
مثل LIMIT 10 OFFSET 100 تعني أحضر 10سجلات ابتداء من السجل 100 (مع ملاحظة أن العد يبدأ بصفر) من مجموعة أسطر ناتج الاستعلام.
ويمكن دمج OFFSET مع LIMIT كالتالي LIMIT 100,10 لاحظ أن الـ 100 قبل 10.
ملاحظة قيمة LIMIT يجب أن تكون أكبر من صفر.
OFFSET لا تتدخل في عمل ORDER BY

.....
بارك الله فيك
وجدت طريقة باستخدام هذا الاستعلام وه كالتالي:
كود :
Dim b As Integer = 0
    Dim c As Integer = b

كود :
"select * from `user` order by `userid` ASC LIMIT " & c & ",5"

وعند حدث ProgressChanged
كتبت
b += 1
وعند حدث RunWorkerCompleted
كتبت
كود :
c += b
            If tuser_importer.IsBusy = False Then
                tuser_importer.RunWorkerAsync()
            End If
يعمل بشكل جيد وعند وصول الرقم 165 يثبت عليها لكنه لا ينهي وانما اشاهد اضطراب في مربع النص (مدري شلون اوضح لكن مثل شاشة الفيديو لما توقف بشكل مؤقت)
الملف المرفق لقطة فيديو لايضاح المشكلة في الاول عند استيراد 5 يعلق على 165 وعند استيراد 10 يعلق على 240
.....

أولا: الافضل أن تسمي المتغيرات بنفس مهمتها مثلا C إجعلها OFFSET

ثانياً: زيادة OFFSET والذي هو C سابقاً يكون بحجم المجموعة أي مثل OFFSET +=5 (كما في مثالك).

ثالثاً: يجب التأكد من وجود نتائج في كل حلقة.

رابعاً: تحديد Maximum للأداة ProgressBar يكون
بإجراء مبدئي بالإستعلام عن عدد الأسطر الإجمالي بدون بيانات (SELECT COUNT(id) FROM table1) لعدم إثقال الاتصال
ومن ثم تقسيم العدد الاجمالي على حجم المجموعة (وهي 5 كما في مثالك).

.....
بالنسبة للكونكتور فهو MySQL Connector Net 6.9.4 والـ mysql MySQL Server 5.5
انا استخدم limit وليس offset
ولا استخدم progressbar فقط مربع نص
.....

أعلم أنك لم تستخدم OFFSET بشكل منفصل واستخدمت الدمج مع LIMIT ولكن قيمتها موجودة في البارامتر الأول لـ LIMIT وهو c كما في مثالك.
"LIMIT " & c & ",5

لم أنتبه أنك تشير ب Progress الخاص بـ BackgroundWorker ويمكنك استعمل ناتج المجموع العام لمعرفة نهاية العملية بالكامل.

.....
الصفحات : 1 2 3