PDA

View Full Version : ایجاد index دوم در Adotable



sardar_ahmadi
شنبه 26 فروردین 1385, 12:12 عصر
1- چگونه هنگام اجرای برنامه یک ایندکس (دوم و یا سوم) ایجاد کنم بعد از اتمام عملیات آنرا حذف کنم مثلا در یک گزارش ایجاد شود و در پایان آن گزارش ایندکس حذف شود .

2- سوال دوم اینکه چگونه با تایپ یک حرف ( مثلا م در نام خانوادگی ) Adotable را فیلتر کنم و گزارش طوری تهیه شود که آنهائی که نام خانوادگی آنها با آن حرف شروع میشود را نمایش دهد.

oghab
شنبه 26 فروردین 1385, 15:24 عصر
1-

2- سوال دوم اینکه چگونه با تایپ یک حرف ( مثلا م در نام خانوادگی ) Adotable را فیلتر کنم و گزارش طوری تهیه شود که آنهائی که نام خانوادگی آنها با آن حرف شروع میشود را نمایش دهد.

مثال:


adoTable1.Filtered :=true ;
adoTable1.Filter :='name like '+QuotedStr( Edit1.Text+'%') ;

sardar_ahmadi
شنبه 26 فروردین 1385, 19:30 عصر
جناب عقاب کد مورد نظر را اجرا کردم ولی پیغام خطا داد . بیشتر توضیح دهید .

oghab
یک شنبه 27 فروردین 1385, 07:53 صبح
سلام
من نمیدونم چرا این خطا را داده. ولی به این صورت که در فیلتر مثلا می نویسیم


adotable1.filter='code=12';

که رکوردهایی را نشان می دهد که کد آنها 12 است
و یا


adotable1.filter='name=محمد';

که رکوردهایی را نشان می دهد که اسم آنها محمد است.
حالا اگه بخواهیم ابتدای فیلد مورد از نوع رشته ای نظر ما مانند یک رشته خاص باشد از like و % استفاده می کنیم. مثلا


adotable1.filter='name like ' +quotedstr(م%);

و اگر رشته مورد نظر ما در داخل یک edit باشد به صورت زیر می نویسیم:


adotable1.Filter:='name like '+QuotedStr(edit1.Text +'%');

من امتحان کردم جواب داد، حالا چرا واسه شما error داده نمیدونم. نوع فیلدتون و کدتون را چک کنید شاید جایی space ی چیزی زیاد گذاشتید. ژ
موفق باشید

sardar_ahmadi
یک شنبه 27 فروردین 1385, 14:57 عصر
جناب عقاب کد مورد نظر اینبار خطای نداد ولی فیلتر خالی بود در صورتیکه رکورد با آن شرایط در جدول وجود داشت . با تشکر از حسن نظر شما به اینجانب
در تریس برنامه (اجرای قدم به قدم ) فیلتر درست عمل میکند ولی در متن گزارش چیزی نمایش نمیدهد .

در رابطه با سوال اول هم نظری عنایت فرمائید .

oghab
دوشنبه 28 فروردین 1385, 08:05 صبح
سلام
من همین کارو در فیلتر می کنم و جواب می دهد. شاید مثلا قبل یا بعد از % یک SPACE گذاشتید که جواب نمیدهد. کدتون را به دقت بررسی کنید.
در مورد سوال اول، من درست متوجه سوال نشدم و اونقدرها هم وارد نیستم و نفهمیدم می خواهید چیکار کنید.
موفق باشید

sardar_ahmadi
سه شنبه 29 فروردین 1385, 08:40 صبح
در مورد سوال اول : یعنی اینکه جدول (منظورAdotable ) براساس مثلا نام خانوادگی مرتب شود و بعد از اتمام ایندکسی که ساخته میشود حذف شود .
در Table اینکار را با دستورات زیر انجام داده ام ولی در Ado موفق نشده ام
table1.Active:=False
table1.exclusive:=true
table1.AddIndex('namkh','nam_kh',[ixCaseinsensitive])
table1.exclusive:=false
لطفا راهنمائی فرمائید .

oghab
سه شنبه 29 فروردین 1385, 14:50 عصر
سلام
راستش من چیزی از ایندکس نمی دونم نه در table نه در ado
و خودم اگه بخواهم رکوردهای adotable ام بر اساس نام خانوادگی مرتب بشه از کد زیر استفاده می کنم.


ADOQuery8.Sort :=' family ';

sardar_ahmadi
جمعه 01 اردیبهشت 1385, 06:54 صبح
لطفا ما را راهنمائی کنید
معادل دستورات زیر در Adotable را میخواستم (ضروری است خواهشن)
table1.Active:=False
table1.exclusive:=true
table1.AddIndex('namkh','nam_kh',[ixCaseinsensitive])
table1.exclusive:=false
.
.
.
.
DeleteIndex('namkh')