View Full Version : مشکل با ClientDataSet و جستجو بصورت  Query
  
FirstLine
چهارشنبه 04 اردیبهشت 1387, 11:29 صبح
با سلام
  من یه فایل XML  دارم که در ابتدای برنامه اونو در یک  ClientDataSet  بارگذاری و لود میکنم و یه DataSource هم به آن وصل کرده ام و محتویات را بدرستی داخل یک دیتاگرید نمایش میدهد.
  مشکل اینجاس که من الان باید بتونم با  Select نویسی و Query روی این فایل XML جستجو انجام دهم، (مثل AdoQuery) و فقط نتیجه این کوری جدید در دیتاگرید نمایش داده شود.
  چجوری میشه این کار را انجام داد؟
  آیا میشه AdoQuery  را به این ClientDataSet  متصل کرد؟
با تشکر
delphiprog3000
چهارشنبه 04 اردیبهشت 1387, 19:44 عصر
با سلام.
امیدوارم منظور شما رو درست فهمیده باشم.
clientdataset خاصیت commandtext داره که خودتون باید از اون مستحضر باشید. و دستورات را میتوان به آن پاس داد.
ولی به نظر من اگه اشتباه نکنم clientdataset راه ارتباطی جز Mastersource نداره.
حالا باز نیاز به تحقیق داره.
امیدوارم مشکلت حل شه.
موفق باشید.........
FirstLine
پنج شنبه 05 اردیبهشت 1387, 10:16 صبح
با سلام
  از لطف و راهنمایی شما خیلی ممنونم.
  مشکل من اینه که این یه قسمت رو درست متوجه نشدم و بلد نیستم، لطفا راهنمایی بفرمایید که:
  یک clientdataset  دارم که اطلاعات خود را در ابتدای لود شدن از یک فایل XML میخونه و با توجه به وجود یک DataSource همه اطلاعات را در یک DBGrid نمایش میدهد.
  تا اینجای کار درسته و مشکلی نیست.
  حالا نیازه که من بتونم  پرس و جوس زیر را روی این clientdataset  اعمال کنم
Select * from test where id=2
  چجوری و کجا باید این کوری را بنویسم و اجرا کنم تا در DBGrid فقط رکورد شماره 2 و یا شرط کوری جدید را نمایش دهد؟
  آیا میشه از ADOQuery  در یه جای این مجموعه استفاده کرد؟
  لطفا با مثال بفرمایی و یا لینکش رو هم لطف کنید.
با تشکر
delphiprog3000
پنج شنبه 05 اردیبهشت 1387, 10:41 صبح
سلام دوست عزیزم.
 
ببینید تمامی ابزارهای دیتابیس خاصیتهایی برای پاس دادن دستورات sql دارند.
در شی  Adoquery با خاصیت sql میتوان متن دستور را ارسال کرد.
در Clientdataset نیز با خاصیت Commandtext میتوانید دستورات خود را ارسال کنید.
و بقیه خصوصیات و عملکردها شبیه اشیا دیگر است.
این مثال:
with ClientDataSet1 do
     begin
       Close;
       CommandText:=str1;
       open;
        if not IsEmpty then
          begin
           Close;
           CommandText:=Str2;
           Execute;
          end;
       end;
 
موفق باشید.........
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.