نمایش نتایج 1 تا 4 از 4

نام تاپیک: #2 . Query گرفتن از یک Query موجود

  1. #1

    Unhappy #2 . Query گرفتن از یک Query موجود

    سلام
    اول بگم که عنوان قبلی رو که دوستمون iranianprogrammers نوشته بود ، دیدم ، توی آرشیو هم کلی گشتم .

    ببینید من یه SP یا یه دونه Query دارم که بنا به دلایلی کلی طول میکشه که جواب بده ، در ضمن توی اون هم نمی تونم تغییر بدم (محدودیت ریاست )
    حالا یه فرم دارم که توی یه دونه Grid از این Query یا Sp استفاده می کنم .
    تا اینجا مشکلی نیست .
    اگه بخوام از این Data یک Query بزنم باید چکار کنم ؟
    مثلا : 1. ردیف های با فیلد فلان ...
    2. Sum یک فیلد از این Query ...

    یه سری چیزا در مورد ClientDataSet دیدم ، ولی دقیقا متوجه نشدم چکار کنم AdoQuery دومی که می نویسم ؟!
    DB --> Query1 --> ClientDataSet--> Query2

    لطف می کنید کمک کنید ؟

  2. #2
    تو هم از DBISAM استفاده میکنی یا SQLServer؟ اگر SQLServer که تو همون سوالی که IranianProgramer پرسیده بود یک لینک دادم برای جواب بهش ، اگر DBISAM دقیقا بگو میخوای چیکار کنی...
    در مورد ClientDataSet یک امکان بسیار عالی داره که میتونید فیلدهاتون رو توش تعریف کنید و بعد CreateDataSet کنیدش بعد دیتارو توش پر کنید و بعد روی همون دیتا کوئری بزنید ، فکر میکنم قبلا توضیح دادمش یک سرچی بزن.

  3. #3

    Question

    سلام
    آره منم از Sql-Server استفاده می کنم و ADO .
    اون لینکی هم که فرمودین ، دیدم کلی جای دیگه هم توی سایت عینا این مطلب نوشته شده :
    بهترین روش برای کار با ClientDataSet اینه که نتیجه یه کوئری (دیتاست) رو بریزی تو DataSetProvider و بعد خصوصیت ProviderName اون ClientDataSet رو تنظیم کنی به اون DataSetProvider. امتحان کن، اگه نتونستی باهاشون کار کنی، پیغام بذار. (برای این کار لازم نیست هیچ کدی بنویسی! فقط خصوصیت DataSet مربوط به DataSetProvider رو نام ADOQuery بذار و خصوصیت ProviderName مربوط به ClientDataSet رو نام DataSetProvider. حالا اگه ClientDataSet رو Open کنی، همون دیتاست نتیجه کوئری توشه، ولی در سمت Client و بصورت Offline. یعنی تا زمانی که ClientDataSet رو ApplyUpdate نکنی، تغییرات توی DB ذخیره نمیشه! )
    ولی هیچ جا ننوشتید که این Query‌ دومی که توی Client-DataSet می نویسیم ، چه ساختاری داره.
    ببینید من نمی دونم باید از چه Table ای Select بزنم .
    منطقا واسه اینکه فکر من پیاده بشه ، باید بتونم از همون Client-DataSet ، یا یه بخشی از اون Select جدید بزنم .
    یعنی اول Data رو از اولین Query یا Sp‌ بگیرم ، بریزم توی یه Local-Table به اسم Client_DataSet بعد عملیات زیر رو انجام بدم :

    Select * From MyClient_DataSet Where Const

  4. #4
    نقل قول نوشته شده توسط Spritchou مشاهده تاپیک
    سلام
    آره منم از Sql-Server استفاده می کنم و ADO .
    اون لینکی هم که فرمودین ، دیدم کلی جای دیگه هم توی سایت عینا این مطلب نوشته شده :

    من بیشتر منظورم این بود :

    1)
    خب چرا نمیذاری همین کار رو دیتا بیس برات بکنه یعنی QUerit رو کامل تر کنی مثلا :
    Select * from (Select * from table where field1=2) where field2=1
    این مثلا یک کوئری از کوئری .

    کلا اگر از SQLServer استفاده میکنی خیلی بعیده حالتی پیش بیاد که نتونی با کورئری مقدارش رو بگیری ، اگر دقیقا بگی میخوای چی کار کنی شاید بیشتر بشه بهت کمک کرد .

    در مورد کوئری دوم گرفتن از ClientDataSet هم فکر میکنم اشتباه کردم ، با کامپوننت دیگه ای این کار رو میکنیم منهتا اونم که انجین اس کیو ال سرور رو نمیاره در حد کارهای خیلی ساده هست.
    کلا بهترین روشت همون زدن یک کوئری کامل هست.

تاپیک های مشابه

  1. مشکل گرفتن query با حرف 'ی' ؟
    نوشته شده توسط sasan_vm در بخش SQL Server
    پاسخ: 15
    آخرین پست: پنج شنبه 30 فروردین 1386, 13:18 عصر
  2. the query must be an updateable query
    نوشته شده توسط hamed_bostan در بخش VB.NET
    پاسخ: 2
    آخرین پست: چهارشنبه 08 فروردین 1386, 16:02 عصر
  3. مشکل در ثبت اطلاعات در query
    نوشته شده توسط maisam57 در بخش برنامه نویسی در Delphi
    پاسخ: 4
    آخرین پست: دوشنبه 03 مهر 1385, 09:17 صبح
  4. درخواست یک query
    نوشته شده توسط golagha_program در بخش Access
    پاسخ: 3
    آخرین پست: پنج شنبه 30 شهریور 1385, 12:20 عصر
  5. Query
    نوشته شده توسط حمیدرضاصادقیان در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: پنج شنبه 30 شهریور 1385, 03:09 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •