View Full Version : نحوه update نمودن آخرین رکورد جدول با sql
khoshblagh
شنبه 23 خرداد 1388, 07:39 صبح
با سلام خدمت دوستان
من یک جدول در بانک اکسس دارم . حالا چطور با دستورات sql فیلدی از آخرین رکورد جدول را
update کنم.متشکرم.
shervin farzin
شنبه 23 خرداد 1388, 10:02 صبح
سلام
نكته سوال شما احتمالا اينه كه چطور به آخرين ركورد دسترسي داشته باشيد . فرايند Update
كردن يك ركورد به كمك كد SQL كه نكته خواصي نداره :
update Table1 set Field_1 = new_value where id = last_inserted_ID
اگر فرايند Update كردن ركورد بلافاصله بعد از Insert كردن در Table اتفاق ميفته ميتونيد از
Identity@@ استفاده كنيد كه آخرين رقم Autonumber ثبت شده رو برميگردونه :
select @@identity as 'Last_inserted_ID'
اما اگر اين فرايند Update دقيقا بعد از Insert نيست ( مثلا Insert اتفاق ميفته و برنامه بسته يا به هر ترتيبي
Connection به بانك قطع ميشه و بعد از مدتي دوبار برنامه رو كاربر باز ميكنه يا connection برقرار ميشه و اون
وقت قرار هست Update انجام بشه ) ديگه نميتونيد از Identity@@ استفاده كنيد ، در اين حال بايد اول مقدار
آخرين ID ثبت شده رو بدست بياري . به عنوان مثال ميتونيد بنويسيد :
select max(id) as 'Last_inserted_ID' from Table1
موفق باشيد.
khoshblagh
شنبه 23 خرداد 1388, 10:21 صبح
جناب فرزین
ضمن تشکر از جوابتان . موضوع اینه که من میخواهم آخرین رکورد یک جدول را به یک فیلد آن عددی وارد نمایم. این جدول فاقد هرگونه کلید میباشد. بنابر این من باید جدول باز و به آخرین رکورد مراجعه و فیلد مورد نظرم را با عددی پر نمایم . من میخواهم معادل دستور sql این عمل را داشته باشم. متشکرم.
shervin farzin
شنبه 23 خرداد 1388, 11:57 صبح
سلام
با توجه به اين كه جدول شما هيچ كليد اصلي نداره ، جسارتا ، گمان نميكنم كد SQL براي انجام
اين كار در Access وجود داشته باشه . در هر حال نظر بقيه دوستان رو هم بايد ديد .
راهي كه به ذهنم ميرسه اينه كه يا اين كار رو كاملا در سمت دلفي انجام بديد يا يك Macro در
سمت Access توليد كنيد كه اين كار رو براتون انجام بده .
موفق باشيد .
narsic
یک شنبه 24 خرداد 1388, 20:16 عصر
با سلام
ساختار جدولتون رو بنویسید تا به کمک یک فیلد دیگر شاید بتوانیم این کار رو انجام بدیم .
بهترین راه استفاده از یک فیلد Autonumber هستش .
موفق باشید
khoshblagh
دوشنبه 25 خرداد 1388, 15:01 عصر
جناب narsic
من این کار را با دستورات غیر sql میتوانم انجام دهم ولی به عللی مایل بودم از دستورات sql
استفاده نمایم. به هر حال از شما متشکرم.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.