PDA

View Full Version : جداول موقت جهت گزارش



jafari1
یک شنبه 20 خرداد 1386, 20:50 عصر
با سلام
در برنامه های کاربردی معمولا احتیاج به فایل موقت میباشد حال اگر با ado و پایگاه اسکیوال سرور کار کنیم فایلهای موقت را با علم باینکه در شبکه ممکن است چند کاربر در حال گزارش گیری باشند چه پیشنهاد میکنید

SYNDROME
یک شنبه 20 خرداد 1386, 22:34 عصر
با سلام
شما می توانید یک جدول Temp در SQLServer بسازید و همه فیلدهای خود را در آن ایجاد کنید.
سپس یک فیلد با نامه UserID تعریف کرده که با این فیلد اطلاعات کاربران را از هم تفکیک می کنید.
حال اگر برنامه شما چندین شرکته می باشد یک فیلد Company تعریف کرده.
جدول شما به شکل زیر می شود


Name Family Company UserID
Ali Ahmadi 1 12
Ali Ahmadi 1 11

دو کاربر متفاوت در یک لحظه اطلاعات مشترک را می بینند و شما بر اساس دو فیلد Company و UserID اطلاعات نمایشی کاربران را تفکیک می کنید.

jafari1
دوشنبه 21 خرداد 1386, 11:20 صبح
از راهنمایی شما تشکر میکنم

mehdi_mohamadi
سه شنبه 22 خرداد 1386, 16:19 عصر
من فکر میکنم که وقتی یه کاربر توی شبکه جدول موقت ایجاد می کنه فقط خودش می تونه از اون استفاده کنه و کاربران دیگه به این جدول دسترسی ندارن.
---------------
موفق باشید

حمیدرضاصادقیان
چهارشنبه 23 خرداد 1386, 12:04 عصر
من مورد جداول Temp رو در sql شخصا تست کردم و وقتی یک کاربر یک جدول Temp می سازه کاربره دیگه ایی نمیتونه اون جدول رو پیدا کنه.حالا یا ایراد از کار من بوده یا واقعا این مشکل هست.

Saeid59_m
چهارشنبه 23 خرداد 1386, 12:30 عصر
پیشنهاد من اینه که از کامپوننت VirtualTable استفاده کنی و هر وقت می خواهی گزارش تهیه کنی اطلاعات رو از توی بقیه جدولها جمع و جور کن و توی اون بریز بعد از این جدول مجازی گزارش بگیر

HamidRezaAF
چهارشنبه 23 خرداد 1386, 12:51 عصر
سلام ،
قبل از تمامی این کارا در ابتدا سعی کنید گزارش های شما بهینه باشد و نیاز به جوین کامل جداول بزرگ نباشد.
درضمن پایگاههای داده ای مثل اوراکل و SQL یک امکانی به نام view دارد. که برای این کارشما مناسب می باشد.

موفق باشید
حمید رضا

mehdi_mohamadi
چهارشنبه 23 خرداد 1386, 15:16 عصر
با سلام

وای من فکر می کنم زمانی یک جدول در SQL ایجاد می شود بر روی Server ایجاد شده و کاربران دیگر نیز می توانند از آن استفاده کنند.

من تست کردم و جواب داد کاربر دیگه هم می تونه یه جدول با همون نام و به طور مجزا ایجاد کنه و جداول هم هیچ ربطی به همدیگه ندارن
-----------
موفق باشید

SYNDROME
چهارشنبه 23 خرداد 1386, 18:29 عصر
با سلام

من تست کردم و جواب داد کاربر دیگه هم می تونه یه جدول با همون نام و به طور مجزا ایجاد کنه و جداول هم هیچ ربطی به همدیگه ندارن
-----------
موفق باشید
mehdi_mohamadi:چشمک:
رفتم رو شبکه امتحان کردم Table از نوع موقت را هر کس می تواند بر روی سیستم بسازد و هیچ ربطی به هم ندارند.

jafari1
یک شنبه 27 خرداد 1386, 21:43 عصر
البته اگر جدول در اسکیوال سرور ساخته شود حتما همه به آن دسترسی دارند

SYNDROME
یک شنبه 27 خرداد 1386, 21:47 عصر
با سلام

البته اگر جدول در اسکیوال سرور ساخته شود حتما همه به آن دسترسی دارند
اگر جدول از نوع موقت باشد نه.
ولی اگر جدول از نوع موقت نباشد همه آن را می بینند و می توانند استفاده کنند.

azmoodeh
دوشنبه 28 خرداد 1386, 00:09 صبح
سلام دوستان

لطفا در پستهای اینجا مشخص کنید که منظورتان از کاربر کاربر SQL SERVER است یا کاربر برنامه !!!
من جداول موقت را تست کردم فقط برای کاربر های SQL SERVER اختصاصی است و برای کاربرهای مختلف برنامه ( منظورم چند CONNECTION همزمان است ) جداول قابل دسترسی است .

ممنون اگر اطلاعات جدیدی به دست آوردید مطرح کنید.

موفق باشید

object
دوشنبه 28 خرداد 1386, 02:18 صبح
در جواب دوستانی که میگفتند این جدول برای کاربرهای مختلف تکرار میشه و قابل دسترسه «جدول موقت رو با # میسازید یا با ##؟»
و در جواب مسئله باید بگم فکر نمیکنید استفاده از clientdataset مناسبتر باشه؟

SYNDROME
دوشنبه 28 خرداد 1386, 06:20 صبح
با سلام

در جواب دوستانی که میگفتند این جدول برای کاربرهای مختلف تکرار میشه و قابل دسترسه «جدول موقت رو با # میسازید یا با ##؟»

اشاره خوبی بود.من جدول را با ## ساختم و هر کاربر ازروی سیستم خودش می توانست برای خودش یکی بسازد.(منظور کاربرانی هستندکه با برنامه ما بالا آمده و دارند گزارش گیری می کنند)


و در جواب مسئله باید بگم فکر نمیکنید استفاده از clientdataset مناسبتر باشه؟در
برای کار با ClientDataset در اینجا نمی توانیم بحث کنیم (ربطی به موضوع تاپیک ندارد)ولی فقط این را بگویم که شما با این ابزار باید اطلاعات را خط به خط خوانده داخل آن ذخیره کنید و یا بازیابی کنید. که اگر تعداد رکوردها زیاد باشد زمانگیر خواهد بود و خیلی از دستورات SQl را نمی توانید روی آن اجرا کنید(sum و . . .)
ولی زمانی که Table را در SQL ساختید به راحتی می تواندی با یک Insert Into آن را ذخیره و بازیابی کنید