ورود

View Full Version : باز کردن جدول بصورت فقط خواندنی



پدرخوانده
سه شنبه 18 بهمن 1384, 12:44 عصر
می خواهم یک سری جداول که دارای فایل ایندکس مرکب cdx و یا دارای فیلد memo هستند را بصورت فقط خواندنی باز کنم
همانطور که می دانید معمولا جداولی از این خانواده به هنگام خروج اضطراری از برنامه (آن نرمال شات دان) آسیب دیده و ....
می خواهم در ابتدای برنامه که جداول موردنیاز را use می کنم جدول بصورت فقط خواندنی باز شود و یا اینکه در کل فایل جدول موردنظر را خصلت فقط خواندنی بدهم (مشابه attrib dbf\*.* +r)

binyaz2003
سه شنبه 18 بهمن 1384, 12:51 عصر
use mytable exclusive

rezaTavak
یک شنبه 23 بهمن 1384, 10:19 صبح
سلام

دستور آقای بینیاز جدول را به صورت انحصاری و تک نفره باز میکنه. اما اگر شما فایل را readOnly کنید فاکس آن را به صورت ReadOnly باز میکنه.

پدرخوانده
یک شنبه 23 بهمن 1384, 12:07 عصر
با تشکر
بحث انحصاری (exclusive) باز کردن جدول که به هیچ عنوان جوابگوی این سؤال نیست (چرا که بنده به دنبال باز کردن جدول بصورت فقط خواندنی هستم)
و در رابطه با توضیح آقای رضا توکل نیز باید عرض کنم مشکل در همین است که چگونه فایل را readonly بکنیم (از طریق خود فاکس) (نه اجرای مثلا دستور attrib (که البته دستور خارجی است و باید فایل آن موجود باشد و .....) )
حال این کار چگونه امکان پذیر است؟! (نه با دستور use) بلکه مثلا با کدهای api و یا ... چک کند اگر فایلها readonly نیستند خودش اینکار را بکند و بعد جدول را باز کند

rezamim
یک شنبه 23 بهمن 1384, 23:21 عصر
http://www.news2news.com/vfp/?example=103

rezamim
یک شنبه 23 بهمن 1384, 23:38 عصر
این دیگه آخرشه
http://www.universalthread.com/wconnect/wc.dll?2,84,14,15763

پدرخوانده
دوشنبه 24 بهمن 1384, 10:15 صبح
با تشکر
(بسیار عالی بود)

rezaTavak
جمعه 05 اسفند 1384, 05:49 صبح
use myTable NOUPDATE

پدرخوانده
جمعه 05 اسفند 1384, 12:27 عصر
با تشکر
آیا استفاده از پارامتر noupdate به هنگام باز کردن جدول کاملا مشابه خصلت فقط خواندنی فایل است یا عملکرد فاکس با جدول موردنظر بدون قابلیت تغییرات می باشد
(یعنی منظورم این است که در صورت unormal Shutdown شدن برنامه) جداول (مخصوصا جداول دارای فیلد memo و یا cdx) آسیب می بینند یا خیر؟ (بالاخص وقتی که در حالت انجام عملیاتی (filter, quary,...) در این جداول هستید)

rezaTavak
جمعه 05 اسفند 1384, 17:27 عصر
سلام

قاعدتا ما از تکنیک کار خبر نداریم اما این دستور جدول را اگر بخواهیم تغییر دهیم جلوگیری میکنه ولی فکر نکنم جلوی خرابی را بگیره! اما توصیه من این است که شما خودتون یک نسخه پشتیبان به طور اتوماتیک در برنامه تون تهیه کنید.

پدرخوانده
شنبه 06 اسفند 1384, 11:35 صبح
با تشکر
در مواردی که در برنامه بحث ورود اطلاعات یا ... نداریم و حجم اطلاعات بسیار است (چیزی حدود چندصد مگابایت) کار پشتیبان گیری و بازیابی ناکارآمد است (از لحاظ زمانی)
(چرا که برای کاربر بی معنی است که بخواهد از اطلاعات خود وارد نکرده پشتیبان گیری کند , چرا که نهایتا برنامه را از نو نصب می کند) بنده بیشتر تاکیدم بر این مطلب است که این حالت اصلا پیش نیایید (همانطور که طبق سؤال مطرح کردم از پایه جداول فقط خواندنی باشد که به هنگام ریست شدن برنامه نیز تغییری نکند) )
راه حل دیگری که در برنامه های دیگری استفاده می کنم اجرای یک برنامه که با vfp7 بوده (که فقط جداول را باز و pack , reindex می کند) که در صورت خراب شدن سریعا بدون هیچ مشکلی آنها را درست می کند .
و طبیعی است که از تکنیک داخلی دستورات )noupdate) اطلاع نداریم گفتم شاید تست کرده باشید چرا که در حالات مختلف این امر (خرابی اطلاعات) پیش می آید .
چندین موردی که بنده تست کردم با مشکلی مواجه نشد (یعنی وسط گزارش گیری برنامه را close کردم)