ورود

View Full Version : جدول قفل شده:



mehran_337
شنبه 05 اسفند 1385, 09:36 صبح
صحبتهای زیادی در مورد جلوگیری از باز شدن جداول بانک اطلاعاتی شد.
اما به هر حال ترجیح داده شد بانک ها را انکد نکنیم و اگر مبحث سکیوریتی خیلی برای برنامه مهم بود از بانکهای دیگه استفاده کنیم.
امروز یه فایل dbf دیدم که وقتی می خواستم بازش کنم پیغام
vaiable XXX not found!! می داد و دنبال متغیری می گشت . جالب تر که یک free table تحت داس هم بود .
فکر می کنید طرف چیکار کرده که وقتی جدولش باز می شه دنبال متغیری می گرده ؟
آیا راهی برای باز کردن هست؟

binyaz2003
شنبه 05 اسفند 1385, 16:28 عصر
refox رو امتحان کردی؟

ali_kolahdoozan
شنبه 05 اسفند 1385, 22:21 عصر
شما میتونید با دستورات fopen و fread و .... با فایلهای dbf کاری کنید که مثلا تا وقتی فلان متغیر توی حافظه نباشه کار نکنه . من اینکار رو میکردم همیشه و اون متغیرها رو توی فایل mem میزاشتم . تا وقتی توی برنامه نبودی کار نمیداد

rezaTavak
شنبه 05 اسفند 1385, 22:49 عصر
بیشتر توضیح بدهید.

rahro
یک شنبه 06 اسفند 1385, 06:40 صبح
سلام
کار مهمی نکرده خیلی ساده است و اصلا" فکر کنم طرف اصلا به فکر این موضوعات نبوده چرا؟
برای اینکه من خودم که توی داس از این کار کردم و برای اینکه ایندکس جداولم رو در مواقع خاص بازسازی کنم از یک نمودار پیشرفت ایندکس استفاده میکردم برای این موضوع مجبوری از گزینه for موجود در ایندکس استفاده کنی و نام تابعی که پیشرفت ایندکس را راهبری میکند در آن قرار دهی ولی بعد از ایندکس به هنگام باز کردن جدول چون ایندکسهای مرکب نیز همراه جداول باز میشوند به دنبال متغیر موجود میگرده برای اینکه مطمئن شوی همین است یا نه ایندکس مربوطه را با استفاده از دستورات حذف کن و ببین همینطوره یا چیزی جدای از اینه؟

rahro
یک شنبه 06 اسفند 1385, 06:44 صبح
شما میتونید با دستورات fopen و fread و .... با فایلهای dbf کاری کنید که مثلا تا وقتی فلان متغیر توی حافظه نباشه کار نکنه . من اینکار رو میکردم همیشه و اون متغیرها رو توی فایل mem میزاشتم . تا وقتی توی برنامه نبودی کار نمیداد
مطمئنا جداول هنگامی که انها را باز میکنی نام متغیر مربوطه را در باکس خطا نمایش میده و کاربر کافیه آنها رو بصورت public معرفی کنه تا جدول مربوطه بازبشه ! آیا شما از راهی استفاده کردی که نام متغیر هم نشان نمیده ؟؟؟؟

mehran_337
یک شنبه 06 اسفند 1385, 13:47 عصر
farsim beham rikhte

khob rahe hal chie?

MM_Mofidi
یک شنبه 06 اسفند 1385, 14:32 عصر
راه ساده دم دست ولی ناشیانه
ایندکس را کلا حذف کن

ali_kolahdoozan
یک شنبه 06 اسفند 1385, 14:42 عصر
چی رو public تعریف کنه ؟‌ مگه می دونه محتوای اون متغیر چی است؟‌

rahro
دوشنبه 07 اسفند 1385, 06:37 صبح
دوستان عزیز
فکر میکنم به غیر از مقدار بازگشتی "ترو" (.t.) دیگه مقداری رو نمیشه به متغیر بدهیم چرا که در آنصورت به غیر از این موضوع شرط for تمام رکوردها را ایندکس نمیکند!؟
البته این نکته رو به دست عزیزم که حذف ایندکسها را ناشیانه قلمداد کرده بودند برسانم که من این مورد را به عنوان یک راهکار معرفی نکردم ! و تنها سریعترین راه برای تست این موضوع به مهران عرض کردم که حذف کنه .!
جناب کلاهدوزان :
باید فانکشن مربوطه رو در یک بصورت زیر معرفی کنی


در بالاترین سطح برنامه
PUBLIC VARNAME
و در قسمتی که توابع را تعری میکنی
FUNCTION UDFNAME
PARAMETERTS VARNAME
VARNAME=.T.
RETURN(.T.)

ali_kolahdoozan
دوشنبه 07 اسفند 1385, 08:24 صبح
من سوال نکردم . که شما بهم جواب دادید . من در جواب دوستی که گفته بود خوب متغیر رو public تعریف میکنه و دیگه جدول قفل نخواهد بود اینو گفتم . با روش من جدول بجز از داخل برنامه برای همه قابل استفاده نیست

mehran_337
دوشنبه 07 اسفند 1385, 08:42 صبح
علی جان کوتاه بیا دیگه. چرا همش داغ می کنی.
بعد یه عمری تاپیک زدیما!
این روش ها و مخصوصا تابع علی رهرو عزیز برای من جالب بود . فکر خوبیه . به نظر من می شه روش حساب باز کرد البته کار داره.
راستی در دیتابیس ویژوال هم قبل از باز کردن بانکها می شه کدنویسی کرد . به نظر شما روی اون بخش نمی شه مانور داد ؟؟؟(برای قفل کردن جدول)

rahro
دوشنبه 07 اسفند 1385, 08:46 صبح
من سوال نکردم . که شما بهم جواب دادید . من در جواب دوستی که گفته بود خوب متغیر رو public تعریف میکنه و دیگه جدول قفل نخواهد بود اینو گفتم . با روش من جدول بجز از داخل برنامه برای همه قابل استفاده نیست
دوست عزیز نارحت نشو من هیچگونه غرضی نداشتم و خودم رو شاگرد تمامی بچه های این فروم میدانم . تا جایی که یادمه فکر کنم حقیر عرض کردم متغیر رو public معرفی کنید .!
من سعی میکنم با در میان گذاشتن بعضی نکته ها معیب خودم رو رفع کنم و برای همین هم از شما سوال کردم که :

مطمئنا جداول هنگامی که انها را باز میکنی نام متغیر مربوطه را در باکس خطا نمایش میده و کاربر کافیه آنها رو بصورت public معرفی کنه تا جدول مربوطه بازبشه ! آیا شما از راهی استفاده کردی که نام متغیر هم نشان نمیده ؟؟؟؟

rahro
دوشنبه 07 اسفند 1385, 08:53 صبح
این روش ها و مخصوصا تابع علی رهرو عزیز برای من جالب بود . فکر خوبیه . به نظر من می شه روش حساب باز کرد البته کار داره.
نه مهران جان فکر جالبی نیست 1؟ من که اصلا ازش خوشم نیومد چرا که در بازسازی ایندکسها سرعت رو فوق العاده پائین میاره میتونم به جرات بگم چیزی حدود 50 برابر سرعت رو کم میکنه .
اگر هدف قفل کردن جداول تنها باشه به نظر من باید از روشی غیر از این استفاده کرد مثل روش جناب کلاهدوزان یا طرح پیشنهادی شما .
خوشحال میشم جناب کلاهدوزان در این خصوص بیشتر توضیح بدن.

rezaTavak
دوشنبه 07 اسفند 1385, 15:08 عصر
آقای کلاهدوزان کد شما چطورییه؟

فکر کنم استاندارد نباشه و از use و شبکه و... باید گذشت کرد.

ali_kolahdoozan
دوشنبه 07 اسفند 1385, 23:22 عصر
use رو جواب میده . برای شبکه عید امسال 13 سال کار برنامه رو میتونم جشن بگیرم . البته حالا که در حد لج بازی است خوب نمیگم چطوری است . برن ملت همون ایندکسها رو پاک کنن

rahro
سه شنبه 08 اسفند 1385, 06:40 صبح
اینجا اگر کسی نکته ای داشته باشه مضایقه نداره , کمکی بتونه انجام بده دریغ نداره اشتباه کنه از پوزش خودش شرم نداره . اینجا انجمن کودکان زیر 10 سال نیست! کسی با کسی لج ولجبازی نداره .
جناب کلاهدوزان :
فکر کنم شما یه لحظه این انجمن رو با جای دیگه اشتباه گرفتی .

mehran_337
سه شنبه 08 اسفند 1385, 07:50 صبح
علی جان خودتو خسته نکن . آب در هاونگ کوبیدن و اقیانوس پیمانه کردنه.
قبل از ما همه گفتند ما هم که رسیدیم گفتیم . خصوصی هم گفتیم . جز منم منم چیزی ندیدیم .
اوخر ساله . بهتره یه خونه تکونی به دلامون بدیم تا سال جدید کمی متحول بشیم

بی خیال