View Full Version : Inddex
abdorreza
دوشنبه 30 اردیبهشت 1387, 18:34 عصر
1- در ورود به برنامه برای خاطر جمعی فایلهای ایندکس را پاک میکنم
2- فایلهای ایندکسی را از جای دیگر کپی میکنم
3- دستود ReIndex را میدهم
اما باز داخل برنامه که میشیم به فایلهای ایندکس گیر میده. شاید این کاری که من میکنم فقط برای برنامه های داس باشه. تو ویندوز چیکار کنم که در ورود به برنامه برای خاطر جمعی سلامت فایلهای ایندکس آنها را پاک کنم و دوباره ایجاد و بازسازی کنم ؟!
rezaTavak
دوشنبه 30 اردیبهشت 1387, 20:29 عصر
کار شما برنامه شما را در شبکه با مشکل مواجه میکند.
اصولا موقع خروج غیر عادی ایندکس خراب میشود مثل برق رفتگی آنها را چک کنید مثلا خروج بدون زدن دکمه خروج یا X در پنجره.
abdorreza
سه شنبه 31 اردیبهشت 1387, 01:51 صبح
ممنون آقای توکل
حالا گیریم که فایلهای ایندکس خراب شدند یا پاک شدند. راه حل ایجاد دوباره و بازسازی آنها چیست؟ هر کاری میکنم نمیشه.
mehran_337
سه شنبه 31 اردیبهشت 1387, 07:57 صبح
بهترین حالت حفظ پارامتری ایندکس های یک جدول در محلی دیگر است . مثلا جدولی باید داشته باشی ( یا درون خود برنامه ) که نام فیلدها و نحوه ایندکسشونو داشته باشی تا از روی اون الگو بتونی دوباره بسازی.
درمورد روشی که گفته بودم :
عرض بنده این بود که در ابتدای برنامه لودینگ داشته باش یعنی اینکه اولین کسی که برنامه را باز می کند فقط این بخش را مشاهده می کند و تا زمانیکه لودینگ تمام نشده کاربران دیگر حق ورود به سیستم ندارند. و در آن زمان هر بلایی می خواهی سر جداول بیاور تا در شبکه هم اختلال ایجاد نشود اعم از بازکردن جداول بصورت انحصاری و packing - Repair - کپی مجدد cdx و ...
نکته : تا زمانیکه جدولی خراب نبود نیازی به ساخت یا کپی ایندکس نیست.
abdorreza
سه شنبه 31 اردیبهشت 1387, 15:51 عصر
ممنون محسن جان . ولی فکر کنم همون ناهاری که گفتی باید بیای !!!
rezaTavak
چهارشنبه 01 خرداد 1387, 07:07 صبح
یک فایل prg برای هر جدول درست کن که ایندکسهات توش باشه.
abdorreza
چهارشنبه 01 خرداد 1387, 15:12 عصر
من فایلهای ایندکس را در یک شاخه مثل IDX کپی کردم. بعد این ایندکس ها را کپی میکنم جای ایندکس های قبلی و فرمان زیر را هم صادر میکنم
SET INDEX TO PERS.CDX
مشکل من که اینطوری حل شده. اصولی هست دیگه ، نه ؟!
rezaTavak
پنج شنبه 02 خرداد 1387, 07:28 صبح
نه چون باید قبلش reindex کنید.
abdorreza
پنج شنبه 02 خرداد 1387, 17:40 عصر
نه چون باید قبلش reindex کنید.
من اینجوری عمل کردم.
Copy File c:\IDX\pers.cdx To e:\prog\data
SELECT 0
USE PERS
SET INDEX TO pers.cdx
REINDEX COMPACT
USE
چون برق که میرفت ، ایندکس ها خراب میشد و قبل از کپی ایندکسها که فکر نکنم ReIndex فایده ای داشته یاشه.
این دستوراتی که پشت سر هم دادم اصولیه ؟ چون مکشل من را حل کرده.
rezaTavak
جمعه 03 خرداد 1387, 13:05 عصر
بله من فکر کردم فقط کپی میکنید.
abdorreza
جمعه 03 خرداد 1387, 16:07 عصر
ممنون.
آیا دستورات ReIndex و ReIndex Compact تاثیرات مشابه دارند؟ و اگر فرق دارند فرقشون چیه ؟!
kia1349
شنبه 04 خرداد 1387, 07:19 صبح
کار اصليشون يکيه . فرقش توي فشرده کردنه
توصيه ميکنم به جاي ايندکس idx از فايلهاي ايندکس cdx استفاده کنيد
rezaTavak
شنبه 04 خرداد 1387, 07:29 صبح
Compact در دستور باعث فشرده شدن خواهد شد. چون idx در حقیقت دو نوع ساده و فشرده دارد.
mehran_337
شنبه 04 خرداد 1387, 08:42 صبح
من فایلهای ایندکس را در یک شاخه مثل IDX کپی کردم. بعد این ایندکس ها را کپی میکنم جای ایندکس های قبلی و فرمان زیر را هم صادر میکنم
SET INDEX TO PERS.CDX
مشکل من که اینطوری حل شده. اصولی هست دیگه ، نه ؟!
منظور من استفاده از cdx بود . اونهم طوری که در دیتابیس تعریفش کرده ای اما از قرار معلوم هنوز در ویژوال به سبک داس داری عمل می کنی.
ساختار ایندکس رو در جدول یا یک فایل prg ذخیره کن . cdx تولید شده رو درون پوشه ای کپی کن .بعد از هر بار رونویسی کردن (درصورت خرابی) با reindex و دیگر هیچ ...
abdorreza
دوشنبه 06 خرداد 1387, 16:32 عصر
از CDX که استفاده میکنم و جایی که Tabel را تعریف میکنم همانجا هم اندکس ها را تعریف میکنم. توی دیتا بیس را نمیدونم چجوری باید تعریف کنم.
وکپی و ReIndex را هم که انجام میدم ....
rezaTavak
سه شنبه 07 خرداد 1387, 07:20 صبح
ایندکس در دیتابیس جدولی که دارای ایندکس باشد و جزء دیتابیس باشند دخیره میشود.
در واقع دیتابیس یک table است که حاولی اطلاعات جداول و فیلدها و ایندکسها و کانکشنها و View هاست. می توانید آنرا مانند یک جدول معمولی باز کنید و داخلش را ببینید.
abdorreza
سه شنبه 07 خرداد 1387, 11:24 صبح
من هم از دیتابیس استفاده میکنم و جداولی که ایندکسها توش تعریف شده اند.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.