PDA

View Full Version : باز کردن یک رکوردست از روی رکورد ست دیگر



کم حوصله
شنبه 02 خرداد 1383, 11:29 صبح
سلام
در نظر بگیرید یک رکوردست با کوری خاصی باز کردیم و بعد می خواهیم از اطلاعان آن رکوردست . رکورد ست دیگری باز کنیم آیا این امکان پذیر است

مثال


dim ado as adodb.recordset
ado.open " select fl1,fl2,fl3,fl4 from Tbl1 where fl1 < 10"


حال چنین رکوردست دومی از رکورد ست اول می خواهیم



dim cn1 as adodb.recordset
cn1 = ado .....??????


می دانیم که با دستور clone دقیقا رکوردست اول در رکورد ست دوم کپی می شود ولی این دستور کاری که ما می خواهیم را انجام نمی دهد چون مثلا ما فقط فیلد های fl1, fl2 را نیاز داریم
حال چه کار باید بکنیم
این کوری دومی است که ما نیاز داریم


select sum(fl1) as sf1, sum(fl2) as sf2

آیا کسی راه حلی دارد ؟؟؟

شنبه 02 خرداد 1383, 19:40 عصر
سلام

اگه سوالتونو درست متوجه شده باشم باید بگم که نیازی به کوری دوم ندارین




select sum(fl1) as sf1, sum(fl2) as sf2 from Tbl1 where fl1 < 10



همین کافیه

اصلان

hmm
یک شنبه 03 خرداد 1383, 09:44 صبح
یا میتوانید از select های تو در تو استفاده کنید

کم حوصله
یک شنبه 03 خرداد 1383, 11:04 صبح
بابا چرا نمی گیرید من می خواهم از کوری قبلی که گرفتم استفاده کنم دلیلش خیلی مفصل است که قابل توضیح نیست فقط بگید میشه یا نه ؟؟؟

اصلا اینجور بگم امکان داره یک تغییراتی رو کوری اول انجام شده که در دیتابیس ذخیره نشده در نتیجه با کوری گرفتن مجدد از دیتابیس آن تغییرات مورد نظر در نظر گرفته نمی شود !!!!!

:? حالا گرفتید ؟؟؟؟

خوب بگید چه جوری این کار را بکنم !!!

hmm
چهارشنبه 06 خرداد 1383, 07:42 صبح
بابا چرا نمی گیرید من می خواهم از کوری قبلی که گرفتم استفاده کنم دلیلش خیلی مفصل است که قابل توضیح نیست فقط بگید میشه یا نه ؟؟؟
عمرا
عزیز من شما کوری رو از بانک اطلاعاتی میگیرید نه از یک متغیر حافظه (recordset)
موقعی که کوری میگیرید موتور بانک اطلاعاتی فعال میشه ولی recordset موتورش کجا بود


اصلا اینجور بگم امکان داره یک تغییراتی رو کوری اول انجام شده که در دیتابیس ذخیره نشده در نتیجه با کوری گرفتن مجدد از دیتابیس آن تغییرات مورد نظر در نظر گرفته نمی شود !!!!!

من که چیزی نفهمیدم :shock: :oops:

کم حوصله
چهارشنبه 06 خرداد 1383, 09:41 صبح
سلام
ببینید ما با دستور clone می توانیم از یک رکوردست کپی برداری کنیم حال اگر بخواهیم ضمن انجام این کپی برداری فیلد های موردنظر فقط کپی برداری شوند چه باید کرد؟؟؟ :roll:

روح اله معینی زاده
چهارشنبه 06 خرداد 1383, 14:52 عصر
با سلام خدمت دوست گرامی

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


SELECT * FROM x WHERE x.myfield IN (SELECT * FROM x WHERE ...)

با احترام- خدانگهدار

کم حوصله
پنج شنبه 07 خرداد 1383, 11:56 صبح
روح ا.. جان دستت درد نکنه از راهنمایی ولی صورت جلسه مشکل من را نگرفتید

ببینید من یک رکوردست را به صورت مجازی رو سیستم باز می کنم حال تغییراتی را روی رکوردهای این رکوردست انجام می دهم عملا هیچ یک از این تغییراتی که من روی این رکوردست مجازی انجام می دهم روی دیتابیس اصلی من تاثیری نمی گذارد یعنی اطلاعات همان اطلاعات قبلی هست

حال می خواهم روی اطلاعات این رکوردست مجازی که دستکاری شده یک سری کارهای خاص بکنم مثلا جمع یک فیلدش را داشته باشم یا مثلا max یکی از فیلد ها را خوب پس برای اینکار اگر به بانک رجوع شود عملا اطلاعات قبلی است و اطلاعات تغییر یافته را در خود ندارد
من می خواهم بنحوی به رکوردست مجازی دسترسی داشته باشم و از ان مثلا به عنوان یک بانک استفاده کنم حال چه کنم ؟؟؟؟
:( :(

روح اله معینی زاده
شنبه 09 خرداد 1383, 06:55 صبح
سلام دوست عزیز

من با Clone کار نکردم ولی آیا می شه بعد از اینکه شما تغییراتی رو در داده ها دادید، بعد از آن Clone بگیرید؟

با احترام - خدانگهدار

hmm
شنبه 09 خرداد 1383, 07:22 صبح
ای ول حالا گرفتم چی میگی
ببین یه چیزی تو وی بی داریم به نام رکورد ست مجازی (منظور از مجازی اینه که به هیچ بانک اطلاعاتی وصل نیست)
خب طرز تعریف این رکورد ست اینجوریه


dim rst_repo_regn as new adodb.recordset
With rst_repo_regn
.Fields.Append "regn_code", adChar, 2
.Fields.Append "bank_type", adChar, 1
.Fields.Append "bank_name", adChar, 20
.Fields.Append "sum_price", adDouble
.Fields.Append "sum_count", adDouble
.Fields.Append "date_bank", adChar, 10
.Open
End With


بعد هم میتونی مثل یک رکورد ست واقعی به اون مقدار بدی حذف کنی تغییر بدی حتی میتونی سورس دیتا گرید
یا دیتا ریپورت هم قرار بدی خب فکر کنم شما با این روش بتونی مقدار رکورد ست قبلی رو توی این رکورد ست بریزی
و با اون کارکنی
افتاد العان :قهقهه:
موفق باشی

کم حوصله
یک شنبه 10 خرداد 1383, 13:51 عصر
نه دوست من بازم نگرفتی من چی میگم :cry: :cry:

روح اله معینی زاده
سه شنبه 12 خرداد 1383, 12:40 عصر
سلام دوست عزیز

خیلی گیر دادی ها :oops:

حالا که به هیچ صراطی مستقیم نمی شی، یه آرایه درست کن و بعد از تغییر درون اون ذخیره کن و ...

با احترام- خدانگهدار