اينجا ميخوام اول طراحي پايگاه داده رو براي همه آموزش بدم.
لطفا در اين تاپيك تا زماني كه مطالب درسي شروع نشده چيزي ننويسيد.
بعد از آموزش براي پاسخ به سوالات در خدمتم.
Printable View
اينجا ميخوام اول طراحي پايگاه داده رو براي همه آموزش بدم.
لطفا در اين تاپيك تا زماني كه مطالب درسي شروع نشده چيزي ننويسيد.
بعد از آموزش براي پاسخ به سوالات در خدمتم.
سلام بر دوستان عزیز
مباحث رو بخش بندی کردم که به بخش مورد نظرتون مراجعه کنید.
از پایه ترین اطلاعات تا حدی که بشه جلو میرم.
موفق باشید.
درس1 : آشنایی با بانک اطلاعاتی
دوستان اول به نظرم لازم بود که درباره معنای بانک اطلاعاتی بدونین.
برای فهم راحت این موضوع یک مثال میزنم.
فرض کنید یک دفترچه تلفن خریدید.
معمولا 3 بند در آن مشترک است
1. نام
2. تلفن
3. آدرس
که زیر آنها کلی جای خالی برای نوشتن تلفن و اسم هست.
در مفهوم بانک اطلاعاتی به هر یک از این بخشهای 1-2-3 یک فیلد گفته میشود.
به هر یک از اسم و فامیلی که مینویسیم یک رکورد گفته میشود.
در ساخت بانک اطلاعاتی همیشه تعداد فیلدها محدود است و نوع آنها مشخص میباشد.
ولی رکوردها تا اندازه ای که هارد شما ضرفیت دارد امکان ذخیره اطلاعات را دارد.
به مخموعه ای از فیلدها و رکوردها یک بانک اطلاعاتی گویند.
ساختار بانکهای اطلاعاتی معمولا تجربی است و راه خاصی برای تشخیص تعداد و نوع فیلدها وجود ندارد و فقط با کارکردن زیاد می توان ساختار بهینه را آموخت.
دیتابیسها دو نوعند. دیتابیسهای یک جدوله مثل فاکسپرو و دی بیس. و دیتابیسهای چند جدوله مانند اکسس.
چون هدف ما آموزش دیتابیس دلفی است بیشتر درباره این موضوع (طراحی بانک اطلاعاتی) صحبت نمیکنم
درس2 : معرفی دیتابیس به دلفی
برای این منظور در دلفی یک سری کامپوننت وجود دارد که در بخش Data Access و Data control قرار دارد.
در بخش اول معمولترین کامپوننت هایی که استفاده می شود Table و Datasource است.
Table برای معرفی دیتابیس استفاده میشود
شما میتوانید در بخش DataBaseName اسم فایل دیتابیس طراحی شده خودتون رو وارد کنید
پیشنهاد من اینه که همیشه فایل دیتابیستون رو اونجایی قرار بدین که فایا EXE شما قرار داره. چون به این ترتیب نیازی به تعریف مسیر ندارید.
در بخش TableType شما میتوانید نوع دیتابیسی که باهاش کار می کنید رو معرفی کنید.
بعد از این دو مورد مهمترین مسائلی که وجود داره اول بخش فیلتر کردن آن است که میتوانید با ساختار زیر عمل کنید.
(FieldName1) = 'String' and (FieldName2) = number
منظور از (FieldName1&2) اسم فیلدی هست که شما در دیتابیس معرفی کردید و جنس فیلد اول کاراکتری و جنس فیلد دوم عددی میباشد.
و دوم بخشی برای استفاده چند کاربره از دیتابیس که در صورتی که مقدار CachedUpdate برار True باشد, امکانپذیر است.
درباره طرقه استفاده از آن در درسهای بعدی توضیح میدم.
بعد از تعریف Table شما میتوانید Datasource را روی فرم گذاشته و به راحتی Table رو به Datasource مرتبت کنید.
دلیل استفاده از دیتاسورس در درس بعدی قرار دارد.
دوستان.
اين كارها رو انجام بدين و اگه به مشكلي برخوردين بپرسين
وگرنه به من بگين تا ادامه بدم.
اگه به نظرتون ساخت ديتابيس هم براتون لازمه جداگانه درس بدم.
سلام
اي ول .آموزشت بي نظير بود.
تا ببينيم بقيش چطوره! :)
اگر تونستي ساخت ديتابيس رو هم بذار
اگر بيشتر ياد بگيريم خوب بهتره.
پس من كه طالب ساخت ديتابيس و ادامه اين
مطلب هستم.منتظرم ها!!!!
میبینم که مشتری این تاپیک کمه.
ولی به زودی ادامه میدم.
حتما کسی تو این بخش مشکلی نداره.
درس 3 : ارتباط دادن دیتابیس به فرم
دوستان دو موردی که در درس قبلی مطرح شدند ، اشیا غیر نمایشی هستند.
یعنی اگر این دو بر روی یک فرم قرار داشته باشند ، اگر برنامه اجرا شود چیزی بر روی فرم ظاهر نمیشود.
البته معمولا بر روی DataModul قرار میگیرند که بعدا درباره آن صحبت میشود.
در واقع این دو یک رابط بین دیتابیس و اشیا نمایشی هستند.
اشیا نمایشی در بخش DataControl وجود دارد که در این در به توضیح DBText و DBEdit می÷ردازیم و در درس بعدی توضیحات را کاملتر می کنیم.
DBText : این شی برای نمایش یک مقدار که در درون دیتابیس وجود دارد استفاده میشود.
در خصوصیات تمام زیر مخموعه DataControl یک بخش به نام DataSource وجود دارد که اگر آن را انتخاب کنید ، لیستی از Datasource هایی که قبلا ایجاد کردید را در آن میبینید.
یک خصوصیت مهم دیگر نیز وجود دارد که DataField میباشد.
این خصوصیت یکی از فیلدها را برای DBText مشخص مینماید تا به نمایش درآورد.
باقی خصوصیات را قاعدتا میشناسید. و هیچ چیز خاص و مهمی ندارد.
DBEdit : این شی درست مثل DBText میباشد با این تفاوت که امکان تغییر نیز وجود دارد.
Event های این شی بیشتر از DBText است ولی تمام این Event ها در سایر اشیا دلفی مشترک است.
DBComboBox هم دقیقا مشابه با DBEdit است با این مزیت که میتوان مقادیر را نیز محدود کرد.
سایر اشیا هم مانند DBImage و DBMemo برای دسترسی به فیلدهای عکسی و یادداشتی استفاده میشوند.
برای اینکه این مبحث خیلی طولانی نشد DBGrid در درس بعدی آموزش داده میشود.
سلام
خيلي عالي بود.ادامه بده.من كه تا اينجا
به خوبي پيش رفتم و مشكلي هم نداشتم.
اميد وارم به زودي بقه اش رو هم آماده كني.
مرد مباح عيبي نداره كه مشتري داشته باشه يا نه
خودم هم اينطور شده بهم.آموزش بذاري اما هيچكي
استقبال نكنه اما اگر كمي ادامه بدي راه ميفته.
نمي دونم چرا كلآ تاپيك هاي دلفي خلوت هستند.
هر كي سوالي داشت مي نويسه و ميره ديگه هم
پشت سرشو نگاه نمي كنه .اما عيبي نداره تو ادامه بده!!
دلفی کارا خیلی نیستند.
به همین دلیل پیگیری ندارن.
از طرف دیگه کسی که میاد از صفر یاد بگیره مطالبی که توی این تاپیکا میزاریم براش سنگینه و خسته میشه.
مسئله دقیقا اینجوریه.
سلام
خوب عيبي نداره بالاخره كسي هست كه اينا رو بخواهد.
تو آموزشت رو كامل كن بهت قول ميدم كه اينجا شلوغ شلوغ مي شه.
من به هر حال توضیح میدم.
برای همه.
شاید به درد یکی خورد.
درس 4 : در این بخش میخوام درباره DBGrid صحبت کنم.
این شی جز قویترین و در بعضی جاها مهمترین شی در طراحی یک برنامه به حساب میاد که امکانات متنوعی داره. یکی از مهمترین کارهایی که در فرم انجام میدهد نمایش یک مجموعه فیلتر شده خاص است که حتی فیلدهای آن نیز مشخص شده است.
برای توضیح کامل این شی با یک مثال جلو میروم.
فرض کنید که با یک دیتابیس دارین کار میکنین که یک جدول داره و دارای فیلدهای زیر است :
1. کد کارمندی 2.نام 3.آدرس 4.تلفن 5.حقوق 6. وظیفه در کارگاه
حال فرض کنید که یک گزارش ساده از افرادی میخواین که مثلا مورد 6 آنها "کارگر" است.
در این گزارش که روی مونیتور هم هست لزومی برای نمایش "آدرس"و"حقوق"و"کد کارمندی" نیست.
مراحل زیر را انجام میدهیم.
1. DBGrid را روی فرم قرار میدهیم.
2. DataSource آن را مشخص میکنیم.
3. روی DBGrid دبل کلیک می کنیم و یک صفحه سفید ظاهر میشود.
4. دکمهای در بالای این صفحه است. (ADD NEW)
5. یک آیکون به لیست سفید اضافه میشود. آن را انتخاب کنید
6. در خاصیت FieldName نام فیلد مورد نظرتان را انتخاب کنید.
7. بخش Title را انتخاب کرده و در بخش Caption نامی که برای فیلد مد نظرات است را برای نمایش روی مونیتور وارد کنید. این بخش معمولا برای برنامه های فارسی استفاده میشود.
8. سایر مشخصات مربوط به ستون را تعیین کنید. سایر مشخصات واضح هستند و خیلی کاربردی نمیباشند.
اگر مراح 3 به بعد را انجام ندهید کل فیلدها نمایش داده میشوند. ولی اگر این کارها انجام شود و فیلدهای مورد نظرتان را انتخاب کنید فقط آنها را نشان خواهد داد.
حال اگر Table را فیلتر کنید ، تغییرات آن بلافاصله بر روی DBGrid اعمال میشود.
کمی هم درباره DBImage صحبت کنم.
چون گویا دوستان کمی مشکل داشتند.
برای استفاده از این شی به راحتی میتوان عکس را ارد بانک اطلاعاتی کرد.
درست مثل تمامی اشیا این صفحه ابتدا باید DataSource و فیلد آن مشخص گردد.
برای انتفال عکس از روی هارد به درون دیتابیس هم میتوان به هر روشی (برای مثال Dialogs) نام و مسیر فایل را بدست آورد و با کد زیر آن را وارد کرد:
[PHP]DBImage.Picture.LoadFromFile(……)[/PHP]
منظور از ... هم همان انتخاب شما برای یافتن نام و مسیر فایل است.
حتی به صورت مستقیم می توان نام فایل را نوشت.
برای مثال :
[HTML]DBImage.Picture.LoadFromFile(‘c:\window\art.jpg )[/HTML]
درس 5 : دیتا ماژول
دوستان اگر تا اینجای بحث را پیگیری کرده باشی الان باید بتوانید که یک دیتابیس تک جدوله را کنترل و در یک برنامه استفاده کنید.
برای اینکه در یک برنامه کاربردی همیشه بیش از یک فرم است که با جدول در تماس میباشد ، تعریفات دیتابیس و جدول را در بخش دیگری به نام دیتا ماژول انجام میدهیم.
این بخش همانند یک فرم اضافی برای برنامه میباشد و هر فرمی که به اطلاعات جدول لینک باشد را به آن اتصال میدهیم. این ماژول را میتوان از طریق File/New…/DataModual اضافه نمود.
سایر کارکردهای این بخش همانند فرم است وتنها فرق آن در عدم نمایش همیشگی آن برای کاربر است.
یعنی امکان نمایش (Form.ShowModal) را ندارد.
تاکید میکنم که روی درس 3 و 4 خیلی کار شود که مطالب آنها برای تمامی ساختارهای دیتابیسی در دلفی کاربر دارد. اکثر کامپوننتهایی که در بخش DataSource وجود دارند کار معرفی جدول را به عهده دارند ، البته با تفاوتهایی نسبت به Table و چون حجم مطالب خیلی زیاد میشود از توضیح درباره آنها صرف نظر کردم.
اگر سوالی بود بگزارید.
سلام
وقتي من يه فيلد رو انتخاب كردم و در گزينه فيلد نيم مي خواستم
نامي بنويسم وقتي كليدي مي زدم ارر مي داد .
اررش اين بود :
Unknown database.
Alias: اسم دیتابیس.
خوب OK مي زدم و دوباره مي نوشتم تا كامل شد و اينتر زدم.
مي خواستم بدونم اين مشكلش چيه؟
كامپوننت رو باید به دیتا سروس لینک کنی و بعد خودش یه لیست بهت میده
سلام
اين كارو هم كردم اما باز هم همونطوره.
دیتا سورست به تیبل لینک هست؟
توی تیبل فایلو معرفی کردی؟
سلام
تييل چيه؟ كجا ديتا سورسم رو به تييل لينك كنم؟
یک دیتا ماژول تعريف كن و هم ديتا سورس و هم Table رو بزار توي اون.
وقتي توي ديتا سورس كليك كني بخشي به نام Table داره كه اونا رو به هم لينك ميكنه.
سلام
خدا خيرت بده.
بابا ما رو كشتي
خوب ماژول چيه ؟ هر سوالي بپرسم يه چيز ديگه مي گي.
گفتم تييل چيه مي گي ماژول؟ تو ديگه كي هستي!!!!!!
تيبل رو بذارم توي چي؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟
بابا اموزش هاي اولي خوب بود اما نمي دونم چرا الآن اينطوري مي كني؟
رفيق درس 5 و درس 2 چيزايي هست كه در مورد اينا گفتم.
اينجا چون دوباره پرسيدي جواب دادم كه كاملا مسئله برات واضح بشه.
دوباره نگاهي به درس 5 بنداز
سلام
مشكل حل شد
از DatabaseName بود اون رو چي بذارم؟
راستي فايل ديتابيس چطوري بسازم؟
چطوري تعيينش كنم يعني كجا؟
من كه ديتابيس نيم رو گذاشتمDBDEMOS
درسته؟
خودت ديتابيسي طراحي نكردي؟
اگه نه ميتوني تو فاكس پرو يا پارادوكس بسازي.
البته راه راحتترش فكر كنم استفاده از DataBase Desktop است كه با خود دلفي اينستال ميشه.
راحت باهاش ميتوني ديتابيس تك جدوله بسازي.
امتحان كن و خبرشو بهم بده.
سلام
خودم طراحي نكردم.اين راه هايي كه گفتي نمي دونم
چطور عملي كنم.همون طراحي ديتابيس بايد بهتر باشه.
آموزش طراحي ديتا بيس رو بذار كه داراي مشكل نشيم.
از همين جا طراحي ديتابيسو ميگم.
بيشتر با مثال پيش ميرم كه مفهومتر باشه و كاربردي
سلام
خيلي خوبه.دستت درد نكنه.
منتظرت هستيم.ممنون
با سلام به دوستان
يه سوال
من مي خواه بجاي اينكه از جداول دي بي استفاده كنم از جداول چند جدوله بقول معروف يا همون اكسس استفاده كنم
تمام مراحل رو به خوبي جلو ميرم اما موقع احرا ارور ميده كه من نميتونم يك فيلد نول يا خالي رو به استرينگ تبديل كنم
دليلش چيه ؟
ممنون
دوست عزیز.
من هنوز کار با چند تیبله ها رو نگفتم.
یک سری تفاوت داره.
توی درسهای آتی میگم.
البته اگه کارت فوریه بگو که الان جوابتو بدم.
كي گفته اين تاپيك مشتري كم داره من هم كه تازه وارد شدم تمام اين درسها را خواندم و بسيار برايم مفيد بود در ضمن دستت درد نكنه مرد مباح خدا عوضت بده
لطفا ادامه بده......
ممنون
خيلي ممنون دوست عزيز.
شما لطف دارد.
اگه صفحه رو نگاه ميكنيد و به درد مي خوره لطفا يه نظر بدين كه من بدونم چه جوري ادامه بدم.
چند تيبله ادامه بدم و بعد طراحي ديتابيس رو بگم.
يا همين الان طراحي ديتابيس بگم و چند جدوله ها بمونه براي بعد ؟
سلام
به نظر من از همون طراحي ديتابيس شروع كني
خيلي بهتر باشه.منتظرت هستم.موفق باشي.
من هم با نظر soldier موافقم. موفق باشی.
طبق درخواست دوستان این موضوع رو اولویت دادیم
درس1 طراحی دیتابیس :
از ساخت یک دفتر تلفن شروع میکنیم.
همانطور که قبلا گفته شده بود ، معمولا دفتر تلفن دارای چند فاکتور حتمی است.
1.نام 2.تلفن
چون داریم برنامه ای با کامپیوتر طراحی میکنیم. معمولا ساختارهای بیشتری را انتخاب می کنیم تا امکانات برنامه افزایش یابد. برای مثال :
3. آدرس 4. موبایل 5. فاکس 6.E-Mail
به این ترتیب ساختار اولیه دیتابیس رو پیدا کردیم.
چون برنامه در دسترس همه ما برنامه Database Desktop است که با خود دلفی اینستال میشود ، فعلا به آموزش این برنامه می پردازیم.
هنگامی که وارد برنامه میشوید مراحل زیر را طی کنید.
File / New / Table… را انتخاب کنید.
صفحه ای ظاهر می گردد که نوع دیتابیس خود را انتخاب کنید.
بعد از انتخاب نوع صفحه ای برای ساختار (Structure) ظاهر میشود.
تا اینجای کار شما تمامی مراحل برای ساخت اولیه دیتابیبس را انجام دادید.
تعریف ساختار را در درس بعدی توضیح میدهم. چون مباحث مهم و طولانی دارد.
سلام
مثل اينكه دوستان علاقه دارن از ديتابيس پارادوكس اموزش شروع بشه خوب راي با اكثريته ديگه
من منتظر جوابم هستم .
يا حق
يك توضيح مختصر به شما بدم كه شايد كارتون راه بيفته.
چون از مباحث اصلي درس خارج ميشيم, نميتونم خيلي بگم.
شما نبايد از بخش Data Access استفاده كنيد.
بايد از بخش ADO الستفاده كنيد.
توضيحات بيشتر رو در درسهاي بعدي بهتون ميدم.
درس 2 طراحی دیتابیس:
ساختارها مسائلی هستند که برای بررسی و محدود کردن نوع ورودی به یک دیتابیس استفاده میشود و همیشه این ساختارها روی فیلدها اعمال میشود یهنی نوع و تعداد حروف یک فیلد را مشخص می کند.
برای مثال همان برنامه دفتر تلفن را در نظر میگیریم.
مقداری که در نام قرار میگیرد از جنس Text ویا String است. تعدا کاراکترهای آنرا نیز مشخص میکنید.
مقدار تلفن در نگاه اول از نوع Number است. ولی باید نوع آن از جنس Text باشد.
فراموش نکنید که فیلدهای از نوع نامبر در اکثر مواقع برای مسائلی استفاده میشوند که محاسبات روی آنها انجام میشود. پس تلفن از این نوع نیست. بعدا در برنامه باید کدی برای بررسی عدد بود آن طراحی کنید.
در برنامه ی DataBase Desktop مهمترین مقادیری که به عنوان نوع فیلد یا Type استفاده میشوند برار مقادیر زیر میباشد :
S: String , N: Number , D: Date , M: Memo
در اکثر دیتابیسهای تک جدوله تعداد حروف نقش مهمی دارد. یعنی تعیین میکنید که برای نام مثلا تا 20 کاراکتر مجاز باشد.
نکته مهم : توجه کنید که هرچه اندازه این مقدار بیشتر باشد ، فایل خروجی شما نیز بزرگتر خواهد شد. پس تعداد کاراکترها رو الکی زیاد نکنید.
با این سیستم و بعد از نعریف فیلدها و جنس و اندازه آنها شما یک جدول برای خودتان ساختید.
سلام
اي ول بابا.من يكي ساختم.تستش هم كردم.
خوب بود.حالا اگر كمي بري روي جزيات بهتر ميشه.
جزئيات ساخت ديتابيس يا لينك كردن با دلفي يا ساخت برنامه با دلفي؟
جزئيات ساخت ديتابيس يا لينك كردن با دلفي يا ساخت برنامه با دلفي؟