ورود

View Full Version : سوال: ساخت tag ها با پیغام خطا



IC_prog
شنبه 11 خرداد 1387, 15:18 عصر
برای ساخت ایندکسها ابتدا cdx های قبلی را حذف و بعد دیتابیس را باز و جداول را یکی یکی use کرده و tag ها ساخته میشوند . حال در موقع ساخت tag ها پیغام
database is invalid.please validate. میده !
بعد از use کردن جدولها باز بودن آنها را چک کردم = باز نمیشه !!
ولی وقتی از تو پنجره command جداول رو use میکنم باز میشه و ساخت tag ها بدون مشکله !
گیج شدم اشتباه من کجاست :اشتباه:


CLOSE DATABASES all
CLOSE INDEXES
ERASEc:\libook\onvbook.cdx


ERASE c:\libook\bookmas.cdx

ERASE c:\libook\usbook.cdx
ERASE c:\libook\bookama.cdx
ERASE c:\libook\BOOKPC

OPEN DATABASE c:\libook\databook
USE onvbook
INDEX on STR(code_o,6,0)+no_o TAG code_no



USE bookmas
INDEX on codebook TAG codebook



INDEX on desk_b TAG desk_b
INDEX on info_b TAG info_b
INDEX on name_b TAG name_b
INDEX on gor_b TAG gor_b
INDEX on mapg_b TAG mapg_b
INDEX on mapr_b TAG mapr_b
INDEX on ALLTRIM(date_in)+STR(vaz,4,0) TAG date_vaz

USE usbook
INDEX on code_o TAG code_o



USE bookama
INDEX on codeozv TAG codeozv



INDEX on numfak TAG numfak
INDEX on codebook TAG codebook

USE BOOKPC
INDEX ON CCMBOOK TAG CCMBOOK

farhad_shiri_ex
شنبه 11 خرداد 1387, 19:14 عصر
اولا اگر امکان دارد در برنامه تان بجای این پروسه طولانی بهتر است از REINDEX استفاده نمایید خیلی بهتر و کم دردسر تر می باشد.
و دوم اینکه پیغام خطایی که مشاهده کرده اید مبنی بر این است که هدر DBC. دیتابیس برنامه تان به مشکل برخورده است برای اینکه این مشکل رفع شود باید Table ای که زمان فعال شدن این پیغام را می دهد از دیتابیس تان حذف نمایید و بعد مجدد آن را ADD کنید.
منتهی حتما توجه داشته باشید که فیلد های 8 کاراکتر بیشتر را باید ویرایش نمایید بعد از ADD کردن مجدد
حتما باید مشکلتان رفع شود انشاالله...

kia1349
شنبه 11 خرداد 1387, 19:33 عصر
شما بدون باز کردن ديتابيس اقدام به پاک کردن مستقيم فايل ايندکس کرده ايد
ميتونيد براي راهنمائي بيشتر در قسمت جستجوي help فکس به دنبال گزينه Working with Table Indexes بگرديد

IC_prog
یک شنبه 12 خرداد 1387, 11:47 صبح
آیا در جدوال نام database ثبت میشود چون وقتی یک database رو حذف میکنم در زمان use کردن جداول به دنبال database مورد نظر میگردد.
اگر جواب مثبته آیا امکان ویرایش مشخصات database در جدول وجود دارد؟:متفکر:

rezaTavak
یک شنبه 12 خرداد 1387, 13:32 عصر
ثبت نمیشه اما یک فلاگ دارد در آدرس ۲۸ از جدول که نشان میدهد این جدول داری cdx است و جز یک dbc پس :



lnFileHandle = FOPEN("dbf.dbf")
FSEEK(lnFileHandle,28,0)
FPUT(lnFileHandle,chr(0),1)
FCLOSE(lnFIleHandle)


کد بالا هم cdx هم memo و هم وابستگی به دیتابیس را حذف میکند.
اگر در خط سوم به جای chr(0) مقادیر زیر باشد:
0x01 داشتن cdx
0x02 داشتن memo
0x04 داشتن ارتباط با دیتابیس

باشد دوباره ست میشود. مثلا جدولی که cdx,memo دارد chr(2+1)
جدولی که cdx , databse است 4+1 و...

IC_prog
یک شنبه 12 خرداد 1387, 14:19 عصر
ثبت نمیشه اما یک فلاگ دارد در آدرس ۲۸ از جدول که نشان میدهد این جدول داری cdx است و جز یک dbc پس :



lnFileHandle = FOPEN("dbf.dbf")
FSEEK(lnFileHandle,28,0)
FPUT(lnFileHandle,chr(0),1)
FCLOSE(lnFIleHandle)


کد بالا هم cdx هم memo و هم وابستگی به دیتابیس را حذف میکند.
اگر در خط سوم به جای chr(0) مقادیر زیر باشد:
0x01 داشتن cdx
0x02 داشتن memo
0x04 داشتن ارتباط با دیتابیس

باشد دوباره ست میشود. مثلا جدولی که cdx,memo دارد chr(2+1)
جدولی که cdx , databse است 4+1 و...

جناب کیا با تشکر از شما :تشویق:
در موقع use کردن جدول نام database را که حذف کرده ام را نیز در پیغام می آورد .
نام database در چه آدرسی ثبت میشود؟

kia1349
یک شنبه 12 خرداد 1387, 15:22 عصر
تمامي مشخصات يک table در هدر آن و تمامي مشخصات يک ديتابيس در خود آن ذخيره ميشود
بطور مثال اگر شما يک ديتابيس بنام a.dbc داشته باشيد ميتونيد با دستور use a.dbc ابتدا اونو مثل يک table باز کرده و با دستور browse تمام اطلاعات جداول و فيلدها و ايندکسها رو در اون ببينيد
در واقع همه چيز در ويژوال فاکس پرو يک نوع table است که مشخصات اشياء شما را با خوص و متد مربوطه ثبت ميکند
مثل report,form,database,class
همه اينها يک نوع table هستند

rezaTavak
دوشنبه 13 خرداد 1387, 07:35 صبح
به : n+2 to n+264
در راهنمای فاکس توجه کن online اینجاست:

http://msdn.microsoft.com/en-us/library/aa975386(VS.71).aspx

new_day
دوشنبه 06 تیر 1390, 13:02 عصر
با سلام
ایا ایندکس ها در محیط شبکه به ویندوزها هم بستگی دارد منظور این است که اگه کد پیج را ماشین گذاشته باشیم نوع فارسی ساز یا عربی بودن ویندوز میتونه بر روی داده های جدید تاثیر بگذاره حتی در خود جداول چطور؟
جالبه که من در جدولی مربوط به چک در محیط شبکه نمیتونم یک چک را را پیدا کنم ( فقط یک سریال چک اینطوره ،فعلا) در حالی که وجود داره و در برخی سیستم ها موجود است اگر هم یک کرسر از جدول بسازم اون وجود داره ولی در جدول نمیتونم پیداش کنم

naderigh
دوشنبه 03 بهمن 1390, 20:44 عصر
برای ساختن اینکس اگر در ساختن به این شکل INDEX ON cod TAG cod ADDITIVE عبارت ADDITIVE در آحر آورده شود و بدون آن چه فرقی میکند
برای فایلهای تعداد رکورد زیاد کدام حالت بهتر است

Esikhoob
سه شنبه 04 بهمن 1390, 16:08 عصر
احتمال زیاد شما از فایل های ایندکس با پسوند IDX استفاده نمیکنید و در نتیجه به ADDITIVE هم نیازی ندارید.

naderigh
پنج شنبه 06 بهمن 1390, 18:01 عصر
بله دوست عزیز برای اطلاعات با حجم زیاد و بصورت شبکه مجبورم از cdx استفاده کنم و در ساختن cdx اگر از ADDITIVE استفاده شود با نشود چه فرق میکند مثلا در
SET RELATION اگر تعداد چند بانک باهم بخواهیم با هم ارتباط بدهیم می بینید که چکار میشود ....