PDA

View Full Version : عنصر مناسب برای فیلدی از بانک



eilia_43
چهارشنبه 30 آذر 1384, 08:09 صبح
در بانکم یک فیلد به نام موضوع (subject)دارم و چون یک کتاب می تواند بیش از یک موضوع داشته باشددر نتیجه من نمی دونم از چه عنصری روی فرمم استفاده کنم تا بتونم این موضوعها را زیر هم در یه جدول قراربدم طوریکه در همان ابتدا 1. در خانه اول جدول باشه وبعد از اینکه من موضوع اول را وارد کردم و enter زدم به سطر بعدی برود وشماره 2. را روی سطر دوم نشان دهدو به همین ترتیب...
لطفا راهنمایی کنید از چه عنصری استفاده بکنم.
مرسی

mzjahromi
چهارشنبه 30 آذر 1384, 08:36 صبح
DBGrid
DBCtrlGrid

eilia_43
پنج شنبه 01 دی 1384, 06:17 صبح
امتحان کردم اما در هنگام ذخیره شدن error میده

eilia_43
پنج شنبه 01 دی 1384, 06:31 صبح
چون وقتی که موضوع سطر اول را نوشتم و بعد به سطر بعدی میرم برایه نوشتن موضوع دوم ،مثل اینه که تمام فیلدها در حالت insert هستند.

mzjahromi
پنج شنبه 01 دی 1384, 07:30 صبح
اگر خطا رو نمایش بدی بهتره . یه عکس از خطای اتفاق افتاده بنویس.
موضوعها مربوط به یک رکورد هست یا مربوط به چند رکورد.
یخورده بیشتر توضیح بده

eilia_43
جمعه 02 دی 1384, 07:20 صبح
ببینید وقتی که من از dbgrid برایه فیلد subject استفاده می کنم خب در سطر اول مشکلی پیش نمیاد ومن موضوع رو وارد می کنم اما موضوع بعدی رو باید زیر همین سطر وارد کنم و وقتیکه روی سطر بعدی کلیک می کنم برنامه اینطوری می فهمه جدول بار دیگه به حالت insert رفته و چون محتوی قبلی ذخیره نشده error میده
ایا میشه از dbgrid برای این فیلد استفاده کنم و در داخل dbgrid از string grid استفاده کرد.اگه میشه چطوری؟

mzjahromi
شنبه 03 دی 1384, 09:00 صبح
از DBCtrlGrid استفاده کن و توش DBMemo بذار
(البته اگه من مشکلتو درست فهمیده باشم. چون خیلی مبهم هست)

eilia_43
سه شنبه 06 دی 1384, 07:49 صبح
اقای ذوالقدر از کمکتون ممنونم
لطفا یه کوچولو توضیح بدین dbctrlgrid چی کار میکنه
ممنون

mzjahromi
سه شنبه 06 دی 1384, 08:10 صبح
DBCtrlGrid یه چیزی شبیه به DBGrid هست با این تفاوت که نجوه نمایش رکورد ها و ورود اطلاعات رو خودت تعیین میکنی. برای این کار هم باید از DBMemo , DBEdit , DBCheckBox , ... استفاده کنی توی مثالهای خود دلفی یه مثال ازش هست. کار باهاش هم خیلی ساده است. جزء کامپوننت های خود دلفی هستش

eilia_43
چهارشنبه 07 دی 1384, 06:01 صبح
ببینید آقای ذوالقدر من میخوام که فیلد موضوع را بصورت زیر پر کنم.البته dbgrid زیر رو که می بینید بعداز 4 بار insert کردن بدست اومده.
یعنی موضوع اول (1.کامپیوتر) مربوط به کتابی است که شماره ثبت اون 11 می باشدو موضوع دوم مربوط به کتابی است که شماره ثبت اون 12 می باشدو موضوع سوم مربوط به کتابی است که شماره ثبت اون 13می باشدو به همین ترتیب...
من میخوام واسه یه کتابی که شماره ثبت اون 11 هست این چهار موضوع رو داشته باشم و طریقه وارد کردنش هم بصورت زیر باشه یعنی با یکبار insert کردن بتونم چند موضوع رو بصورت زیر هم وارد کنم
(در واقع هر سطر dbgrid بازای یه بار insert کردن ایجاد می شوند.)
امیدوارم این دفعه تونسته باشم منظورم رو خوب بیان کنم.
بازم ممنونم



D:\Documents and Settings\zeinab\My Documents\My Pictures\موضوع

eilia_43
چهارشنبه 07 دی 1384, 06:35 صبح
ببینید آقای ذوالقدر من میخوام که فیلد موضوع را بصورت زیر پر کنم.البته dbgrid زیر رو که می بینید بعداز 4 بار insert کردن بدست اومده.
یعنی موضوع اول (1.کامپیوتر) مربوط به کتابی است که شماره ثبت اون 11 می باشدو موضوع دوم مربوط به کتابی است که شماره ثبت اون 12 می باشدو موضوع سوم مربوط به کتابی است که شماره ثبت اون 13می باشدو به همین ترتیب...
من میخوام واسه یه کتابی که شماره ثبت اون 11 هست این چهار موضوع رو داشته باشم و طریقه وارد کردنش هم بصورت زیر باشه یعنی با یکبار insert کردن بتونم چند موضوع رو بصورت زیر هم وارد کنم
(در واقع هر سطر dbgrid بازای یه بار insert کردن ایجاد می شوند.)
امیدوارم این دفعه تونسته باشم منظورم رو خوب بیان کنم.
بازم ممنونم

eilia_43
چهارشنبه 07 دی 1384, 06:41 صبح
یه فایل bmp رو چطوری بفرستم

mzjahromi
چهارشنبه 07 دی 1384, 08:26 صبح
اول برای فایل فرستادن نباید از پاسخ سریع استفاده کنید و باید از دکمه ارسال پاسخ استفاده کنید
دوم اینکه به نظر من نحوه طراحی بانک اطلاعاتی تون اشتباه هست و اگر می خواهید برای یک کد بیش از یک توضیح داشته باشید باید دو جدول طراحی کنید یا یک کلید مناسبتر انتخاب کنید و همون یک جدول.
در هر حال برای موردی که گفتید اگر از DBctrlGrid استفاده کنید و برای توضیحاتتون از DBMemo استفاده کنید و فیلد بانک اطلاعاتی تون رو از نوع Memo در نظر بگیرید فکر کنم مشکلتون حل بشه.
ولی یک سوال دارم :
چرا اینقدر اصرار دارید که حتما کلیه توضیحات تو یه رکورد باشه.

eilia_43
پنج شنبه 08 دی 1384, 06:30 صبح
آقای ذوالقدر اینطوری نمیشه لطفا آی دی تون رو بدین تا براتون توضیح بدم چرا اینقدر اصرار می کنم در صورتیکه از dbmemo هم می تونم استفاده کنم.چون یه دو تا تصویر دارم که اینجا فایلی با پسوند bmp رو قبول نمی کنم با از طریق ایمیل بفرستم

mzjahromi
پنج شنبه 08 دی 1384, 13:40 عصر
mzjahromi@hotmail.com
mzolghadr@faragostarit.com

eilia_43
یک شنبه 11 دی 1384, 07:09 صبح
سلام آقای ذوالقدر .
فایل را بصورت rar در بیارم پس از همین جا مطلبم رو می فرستم
علت اینکه این مطلب رو دنبال می کنم این است که در فایلی که براتون فرستادم فایل subjects.bmp همون موضوعی بود که شما پیشنهاد استفاده از dbmemo رو دادین من هم قبول کردم اما فایل field.bmp رو ببینید این جدول هم باید مثل قبلی پر بشه یعنی چند سطر از این جدول باید پر بشه (چون بیش از یک نفر می تونند یه کتاب رو بنویسند) ودر این جدول یک فیلد ندارم تا از memo استفاده کنم بلکه 4 فیلد دارم حالا چی کار کنم.
در ضمن من جایی دیده بودم که از همین جدول dbgrid برایه این موضوع استفاده می شده اما نمی دونم چطوری؟
از کمکتون متشکرم

mzjahromi
یک شنبه 11 دی 1384, 07:39 صبح
حالا شد.
تو همچین شرایطی شما نباید از یک فیلد Memo استفاده کنید آخه اینجوری که نمیشه.
شما باید Table رو بشکنید به دوتا Table و از همون DBGrid استفاده کنید چون اینها رکوردهای جداگانه ای هستند. اطلاعاتتون رو هم می تونید با DBGrid یا هر کامپوننت دیگه ای وارد کنید مهم اینه که جداولتون استاندارد باشند و افزونگی داده ها (Data redundancy) پیش نیاد. بنابراین برای هر موضوع حتما باید یک رکورد Insert کنید.

eilia_43
سه شنبه 13 دی 1384, 07:08 صبح
آقای ذوالقدر سلام
بازم نشد مثل اینکه این غصه سر دراز دارد.
با توجه به اینکه یه کتاب دارای یک شماره مدرک است و این شماره باید منحصربفرد باشد وتکراری نباشد وقتی من برای کتابی موضوع اولش رو وارد کنم و بخوام موضوع دوم رو وارد کنم اگه طبق گفته شما دوباره insert کنم باید یه شماره مدرک جدیدی وارد کنم که نباید اینطوری بشه.
خیلی خب آقای ذوالقدر از راهنمایی تون متشکرم.
مثل اینکه این بحث به نتیجه نمی رسه.
ممنونم

mzjahromi
سه شنبه 13 دی 1384, 09:50 صبح
اگر می خواهید بحث رو ادامه ندید مشکلی نیست ولی در چنین شرایطی باید جدولتون رو به دو تا جدول بشکنید و کلید جدول دوم رو طوری انتخاب کنید که شماره فنی به تنهائی کلید نباشه یعنی دوتا فیلد کلید اصلی باشند. اگر شما لیست کل فیلدهائی که می خواهید برای یک کتاب ذخیره کنید بنویسید من جداولش رو براتون طراحی می کنم

eilia_43
چهارشنبه 14 دی 1384, 08:34 صبح
سلام ممنونم که امیدوارم کردین.