با سلام
می شه نحوه ارتباط بین دو جدول رو با استفاده از یک فیلد مشترک مثل id که در هر دو جدول وجود دارند و از یک نوع هستند رو بگید (دلفی و بانک sql) و اینکه نوع بانک در نحوه اتصال جداول تاثیری دارد یا نه ؟
با سلام
می شه نحوه ارتباط بین دو جدول رو با استفاده از یک فیلد مشترک مثل id که در هر دو جدول وجود دارند و از یک نوع هستند رو بگید (دلفی و بانک sql) و اینکه نوع بانک در نحوه اتصال جداول تاثیری دارد یا نه ؟
سلام. master/detail رو جستجو كنيد
اگر اتصال رو با دلفي انجام ميديد خير تاثيري ندارهنوع بانک در نحوه اتصال جداول تاثیری دارد یا نه ؟
ابتدا باید ارتباط بین 2 جدول رو مشخص کنید که چه را بطه ای دارند . اگر از نوع 1 به N بودند اونوقت یه کلید خروجی از یک جدول تو جدول دیگه ایجاد می کنی . اگه جزئیاتش رو نمیدونی بگو تا بنویسیم .
ارتباط يك به يك رو بهتره كنار بگذاريد و تمام فيلدها رو در يك جدول ادغام كنيد. دليل خاصي براي اين كار داريد؟
دلیل اصلی اش رو خودم هم نمی دونم آخه اومدم کمک خواستم این پیشنهاد رو دادن آخه من می خوام از دو جدولی که دارم افرادی که اطلاعات اونها در جدول اولی ام درج شده و در جدول دوم بعنوان کارمند مشخص شده اند انتخاب شوند و در دی بی گرید نشون داده بشن (یعنی اونهایی رو که در دی بی گرید می خواد نشون بده اونهایی هستند که نامشان مثلا علی احمدی از جدول اول ودر جدول دوم هم بعنوان کارمند مشخص شده اند )
شما كه اينقدر به پيشنهادات گوش ميكنيد، پيشنهاد پست قبلي من رو انجام بديد ضرري ندارهآخه اومدم کمک خواستم این پیشنهاد رو دادن
در غير اينصورت master/detail براي كار شما راه حل نيست
يك كوئري بگيريد و بوسيله اون كوئري خيلي راحت از اطلاعات join شده استفاده كنيد
من دقیقا متوجه نشدم که شما می خوای چه کاری انجام بدی ولی یه چیز کلی در رابطه با ارتباط جداول می نویسم . فرض کن 2 تا جدول داری . جدول student و teacher میگیم هر دانش آموز 1 معلم داره ولی هر معلم میتونه چندین دانش آموز داشته باشه . پس این میشه یک رابطه 1 به چند . تو این رابطه باید یه فیلد به اسم FK_Teacher تو جدول Student ایجاد کنیم و تو ریلیشن شیپ SQL Server کلید اصلی جدول معلم رو به FK_Teacher تو جدول دانش آموز وصل کنیم . اما اگر دو جدولمون هیچ ربطی به هم نداشته باشند این کار رو نمی کنیم . اگر شما می خوای موارد خاصی از دو جدولی که به هم ربطی ندارند رو توی Gtid نشون بدی بهتره که با استفاده از دستورات SQL یه Query بنویسی و اون رو به Grid وصل کنی .
من هم در sql اومدم بین دو جدولم ارتباط برقرار کرده ام و همونطور که شما گفتین از join استفاده کردم ولی مشکلی که دارم اینه که برای فیلدهایی که عدد هست درست عمل می کنه اما برای فیلدهایی مانند نام درست عمل نمی کنه به عنوان مثال از دستور زیر استفاده کرده ام
adoquery1.SQL.Clear;
adoquery1.Close;
adoquery1.SQL.Add('SELECT tteacher.karmand , ttclock.datet, ttclock.a1t FROM ttclock left outer JOIN tteacher ON ttclock.ido = tteacher.ido WHERE tteacher.tel=11111 ');
adoquery1.Open;
که دستور بالا درست جواب می ده اما اگه از دستور زیر استفاده کنم پیغام خطا می ده
adoquery1.SQL.Clear;
adoquery1.Close;
adoquery1.SQL.Add('SELECT tteacher.karmand , ttclock.datet, ttclock.a1t FROM ttclock left outer JOIN tteacher ON ttclock.ido = tteacher.ido WHERE ttclock.name like "'+edit5.text+'"');
adoquery1.Open;
در این دستور حتی به جای edit5 هم نام را قرار می دم اما درست جواب نمی ده به جای edit5 از چی استفاده کنم تا درست جواب بده (دلفی با بانک sql ) بین دو جدول با استفاده از فیلد مشترک ido هم همونطور که مشخصه ارتباط برقرار کرده ام
دوست عزيز . اگر بانك شما SQL هست بهتره از كامپونت هاي SDAC استفاده كنيد . در ضمن تو دستوري كه براي حروف مي نويسيد و خطا ميده به اين دليله كه بايد تبديل به String بشه چون اين دستور String قبول ميكنه . در ضمن بهتره كه شما يه Query بنويسيد و با يه دستور Grid رو به اون Query وصل كنيد تا اينكه اين همه كد بنويسيد .
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)