PDA

View Full Version : به دست آوردن شماره رکورد تازه insert شده



hamed_bostan
جمعه 16 دی 1384, 07:23 صبح
سلام . آیا امکاناین وجود داره که من هنگامی که دستور insert خودم رو داخل برنامه واسه ورود اطلاعات به بانک اجرا می کنم همون لحظه یا توسط همون دستور insert شماره رکورد یا ID اون رکورد رو پیدا کنم و به دست بیارم و دیگه بلافاصله یه دستور select max(id) ننویسم؟؟؟

Hamedm
جمعه 16 دی 1384, 08:16 صبح
سلام . آیا امکاناین وجود داره که من هنگامی که دستور insert خودم رو داخل برنامه واسه ورود اطلاعات به بانک اجرا می کنم همون لحظه یا توسط همون دستور insert شماره رکورد یا ID اون رکورد رو پیدا کنم و به دست بیارم و دیگه بلافاصله یه دستور select max(id) ننویسم؟؟؟

سلام

همچین امکانی وجود نداره.

درضمن دستور INSERT INTO همیشه رکورد اضافه شده را به انتهای جدول اضافه نمیکنه. اگه جدول جای خالی نداشته باشه، اون موقع به انتهای جدول اضافه میکنه.

در پناه حق موفق باشید و پرتوان

Behrouz_Rad
جمعه 16 دی 1384, 08:20 صبح
دستور INSERT INTO همیشه رکورد اضافه شده را به انتهای جدول اضافه نمیکنه. اگه جدول جای خالی نداشته باشه، اون موقع به انتهای جدول اضافه میکنه

جمله بندی فوق غلطه!
رکوردها همیشه به انتهای جدول اضافه خواهند شد...

+

روش شما برای به دست آوردن آخرین رکورد قرار داده شده در بانک، غلط است. چون در همان لحظه ی ورود، ممکن است کاربر دیگری رکورد جدید را وارد کند.
از دستور زیر استفاده کنید: IDENTITY@@ برای هر رکورد، یک شماره ی جدید اختصاص می دهد.


SELECT @PostID = @@IDENTITY

hamed_bostan
جمعه 16 دی 1384, 08:42 صبح
از پاسختون منونم اما خوب من چیکار کنم که وقتی رکوردی رو وارد بانک کردم شماره رکوردش رو به دست بیارم؟ ضمنا من جواب دومی behrouz_red درست سر در نیاوردم .

hamed_bostan
جمعه 16 دی 1384, 09:02 صبح
ببینید اساتید من بدارید صورت مصئله رو بگم شاید اصلا راه بهتری واسه مشکل من باشه .

فرض کنید من 3 تا table دارم news,images,news_images داخل news اخبار من و داخل images عکسهای من دخیره می شه و سپس کد هر خبر با کد عکس یا عکسهای مربوطه داخل news_images می شینه . ابتدا خبر inset میشه بعد عکسها upload میشه و اخر از همه باید کد عکسupload شده با مد خبر وارد شده بشینه توی news_image . به من بگین چه گلی به سرم بگیرم بهتره؟؟؟ اصلا راه بهتری اگه سراغ دارید بهم بگین که بد جور گیر افتادم. از کمکتون ممنونم

اَرژنگ
جمعه 16 دی 1384, 09:13 صبح
از پاسختون منونم اما خوب من چیکار کنم که وقتی رکوردی رو وارد بانک کردم شماره رکوردش رو به دست بیارم؟ ضمنا من جواب دومی behrouz_red درست سر در نیاوردم .

از چه بانک اطلاعاتی استفاده میکنید؟

Hamedm
جمعه 16 دی 1384, 09:14 صبح
سلام


رکوردها همیشه به انتهای جدول اضافه خواهند شد...

عزیز جان داری اشتباه میکنی.


دستور INSERT INTO همیشه رکورد اضافه شده را به انتهای جدول اضافه نمیکنه. اگه جدول جای خالی نداشته باشه، اون موقع به انتهای جدول اضافه میکنه

اگه روی صحت حرف من شک داره میتونی از آقای ثباتی بپرسی.

در پناه حق موفق باشید و پرتوان

اَرژنگ
جمعه 16 دی 1384, 09:15 صبح
رکوردها همیشه به انتهای جدول اضافه خواهند شد...


بستگی به بانک اطلاعاتیش دارد. بِضی از بانکها به آخره فایل اضافه میکنند، بعضیهاشون هر جایی که بخوان اضافه میکنند، اوّل یا آخر جدول بیمعنیه.

اوّل و یا آخر جدول را چطوری تعریف میکنید؟

hamed_bostan
جمعه 16 دی 1384, 09:20 صبح
من از بانک sql serveer2000 استفاده می کنم . صورت سوالم رو هم گذاشتم . تور رو خدا کمککککککککککککککککککککککک ککککککککککککککککککککککککک کککککککککککککککککککک

Hamedm
جمعه 16 دی 1384, 09:21 صبح
داخل images عکسهای من دخیره می شه و سپس کد هر خبر با کد عکس یا عکسهای مربوطه داخل news_images می شینه.

تفاوت جدول Image با News_Images چیه؟ خیلی نامفهوم توضیح دادی.

در پناه حق موفق باشید و پرتوان

hamed_bostan
جمعه 16 دی 1384, 09:27 صبح
ببینید
یک خبر می تونه n تا عکس داشته باشه و بالعکس یه عکس می تونه توی چند تا خبر بیاد . واسه جلوگیری از افزونگی یه جدول واسط news_images گرفتم خوب اگه حتی جدول news_image رو هم حذف کنیم یه news داریم که می تونه n تا عکس داشته باشه درسته؟
خوب من باید کد خبر insert شده رو داشته باشم که بتونم id اون رو داخل جذول images جلوی عکس هاش بدارم . ok?? اگه لازمه بیشتر توضیح بدم؟

اَرژنگ
جمعه 16 دی 1384, 09:28 صبح
من از بانک sql serveer2000 استفاده می کنم . صورت سوالم رو هم گذاشتم . تور رو خدا کمککککککککککککککککککککککک ککککککککککککککککککککککککک کککککککککککککککککککک




INSERT INTO jobs (job_desc,min_lvl,max_lvl)
VALUES ('Accountant',12,125)
SELECT @@IDENTITY AS 'Identity'


مثال از:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_globals_50u1.asp

hamed_bostan
جمعه 16 دی 1384, 09:29 صبح
ببینید
یک خبر می تونه n تا عکس داشته باشه و بالعکس یه عکس می تونه توی چند تا خبر بیاد . واسه جلوگیری از افزونگی یه جدول واسط news_images گرفتم خوب اگه حتی جدول news_image رو هم حذف کنیم یه news داریم که می تونه n تا عکس داشته باشه درسته؟
خوب من باید کد خبر insert شده رو داشته باشم که بتونم id اون رو داخل جذول images جلوی عکس هاش بدارم . ok?? اگه لازمه بیشتر توضیح بدم؟

hamed_bostan
جمعه 16 دی 1384, 09:34 صبح
از هم فکری همه دوستان ممنونم . فکر کنم اخرین post ارژنگ جان مشکل منو حل کنه اما خوب اگه بابت ساختاری که گفتم راه حل بهتری سراغ دارید با تمام وجود مشتاق شنیدنم .
باز هم ممنون

اَرژنگ
جمعه 16 دی 1384, 09:36 صبح
میشه اِن تا تصویر را در یک فلدر که اسمش آی‌دی جدیده ذخیره کنید.

hamed_bostan
جمعه 16 دی 1384, 09:40 صبح
چرا ارژنگ چان ممنونم . جواب گرفتم اما در مورد عملکردم گفتم اگه کسی راه بهتری واسه این سیستم سراغ داره بهم بده واگذنه چرا جوابم ر من گرفتم. باز هم ممنون

اَرژنگ
جمعه 16 دی 1384, 09:41 صبح
چرا ارژنگ چان ممنونم . جواب گرفتم اما در مورد عملکردم گفتم اگه کسی راه بهتری واسه این سیستم سراغ داره بهم بده واگذنه چرا جوابم ر من گرفتم. باز هم ممنون
استاد پست قبلیم را عوض کردم، شاید بکارتان بیاد.

Hamedm
جمعه 16 دی 1384, 09:42 صبح
سلام




INSERT INTO jobs (job_desc,min_lvl,max_lvl)
VALUES ('Accountant',12,125)
SELECT @@IDENTITY AS 'Identity'

مثال از:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_globals_50u1.asp
از کدی که دادی ممنون. استفاده کردیم.

در پناه حق موفق باشید و پرتوان

hamed_bostan
جمعه 16 دی 1384, 09:47 صبح
از همگی ممنونم که وقت گداشتید. با حق