PDA

View Full Version : سوال: (در صورتی که دو جدول با یکدیگر ارتباط دارند)نشان دادن اطلاعات از بانک بر روی grid دلفی



ستایش ستایش
چهارشنبه 01 آبان 1387, 22:03 عصر
در پایگاه داده (sqlserver200) جدولی داریم با نام tbl_Base که فیلد ID , Name داریم، و یک جدول دیگر با نام tbl_Main که در آن فیلدهای ID، BaseID موجود است. حال در دلفی فرمی داریم به نام FrmBase که میتوانیم مقدار داخل شی Edit را در جدول (tbl_Base)ذخیره کنیم (مثلا تست1 با ID 100، تست2 با ID 101) (ID ها را خودمان ایجاد کرده و به آن پاس می دهیم) . حال یک فرم دیگر داریم با نام frmMain که یک شی ListBox داریم که با زدن یک Button پنجره ای باز می شود با نام (FrmSearch)که اطلاعات جدول tbl_Base را نشان می دهد که با زدن هر کدام از آنها در ListBox مربوطه قرار میگیرد، یک Listbox دیگری نیز داریم که Visible آن false است و مقدار ID هایی که در Listbox اولی است قرار میگیرد.حال در اینجا یک button کلی داریم که با زدن آن اطلاعات در tbl_Main به صورت زیر ذخیره می شوند.
اگر مثلا از FrmSearch دو اطلاعات را(تست1وتست2) را انتخاب کند ودر ListBox نشان داده شود
حال با زدن button کلی برای ذخیره شدن در tbl_Main به فیلد BaseID ، ID های مربوط به خودشان را پاس داده (Idهایی که در Listbox دومی است)و بین هرکدام (و) میگذاریم .به این صورت: 100و101
حال میرسیم به سوال: حال در DBGrid میخواهیم اطلاعات جدول tbl_Main رانشان دهیم، در نظر داشته باشید که اگر یک مقدار در فیلد BaseID ذخیره شده باشد مثلا 101 در DBGrid مشکلی نداشته و select مربوطه را به صورتی نوشته که نام را از tbl_Base میآورد یعنی تست2 را نشان میدهد، حال مشکل ما با بیش از یک مقدار است چون که اطلاعات با (و) از هم جدا میشوند.
سعی کردم که به صورت کامل توضیح دهم، امیدوارم متوجه شده باشین.
ممنون میشم که کمکم کنین.

reza_Nazem
چهارشنبه 01 آبان 1387, 22:57 عصر
دوست عزیز طراحی دیتابیس شما اشکال دارد(آنرمالی) در آینده به مشکلات غیر قابل حل بر خواهی خورد به هر حال میتونی کد زیر را به انتهای فیلدهای دستور ُselect اضافه کنی




,SUBSTRING( FieldName , CHARINDEX( ',' , FieldName )+ 1 , LEN(FieldName) ),
SUBSTRING( FieldName,0, CHARINDEX( ',' , FieldName ) )



بازم اگه مفهوم نیست بگو