PDA

View Full Version : سوال: بدست اوردن id بعدی از دیتابیس بدون حلقه



دلتنگ اسمان
سه شنبه 08 مهر 1393, 20:51 عصر
سلام
در دیتابیس تصاویری رو با کلید اصلی ID ذخیره میکنم. موقع نمایش تصاویر (هر تصویری رو مثلا5 ثانیه نشون میده)وقتی ID ها به ترتیب و پشت سر هم هستن مشکلی ندارم. اما وقتی تعداد فاصله بیفته(به علت حذف بعضی تصاویر) تا ID بعدی رو لود کنه طول میکشه. چطور میتونم ID بعدی رو سریعتر بدست بیارم.؟ ممنون

omid nasri
سه شنبه 08 مهر 1393, 21:28 عصر
روش های متفاوتی وجود داره !

یکی از این روش ها استفاده نکردن از فیلد ای دی به صورت مستقیم هستش، مثال میزنم دقت کنید :

شما وقتی عکسی وارد دیتابیس میکنید، یک فیلد دیگر رو مقدار دهی کنید که شماره ادرس بعدی رو در خودش ذخیره کنه، وقتی عکس شماره 20 برای مثال حدف شد پس شماره قبلی رو باید از 20 به 21 تغییر بدی با این کار هر وقت شما یک رکورد رو حذف کیند ، رکورد قبلی اپدیت شده و فیلد شماره به یک شماره جلوتر اپدیت میشود

مجدد مثال :

رکورد اول با ای دی 1 شماره رکورد دوم رو داره
رکورد دوم با ای دی 2 شماره رکورد سوم رو داره
رکورد سوم با ای دی 3 شماره رکورد چهارم رو داره

حالا فرض کن رکورد دو حذف بشه ، بعد از حذف شماره رکورد 2 رکورد 1 به 3 اپدیت میشه ، مشکل داشتی پخ بزن
omid8nasri@yahoo.com

البته خیلی خیلی روش وجود داره که این برای من راحتر هستش، و مدیریت شده.

programer1389
چهارشنبه 09 مهر 1393, 03:24 صبح
سلام
در دیتابیس تصاویری رو با کلید اصلی ID ذخیره میکنم. موقع نمایش تصاویر (هر تصویری رو مثلا5 ثانیه نشون میده)وقتی ID ها به ترتیب و پشت سر هم هستن مشکلی ندارم. اما وقتی تعداد فاصله بیفته(به علت حذف بعضی تصاویر) تا ID بعدی رو لود کنه طول میکشه. چطور میتونم ID بعدی رو سریعتر بدست بیارم.؟ ممنون

با این دستور میتونید
select top(1) * from tbl1 where id>curentid

دلتنگ اسمان
چهارشنبه 09 مهر 1393, 06:52 صبح
ممنون حل شد.
ولی چرا عدد 1 رو داخل پرانتز میذارم خطا میده؟(چون بدون پرانتز جواب میده یعنی طبق کد زیر)


select top 1 IDPIC from pictures where idpic>" + t

programer1389
چهارشنبه 09 مهر 1393, 10:30 صبح
حق با شماست بعضي وقتها چون با برنامه هاي مختلف کار ميکنم يک همچين اشتباهاتي هم ميشه اون پرانتز نياز نيست