ورود

View Full Version : سوال: خطا در دستور Incorrect syntax near '?'.



amir_monster
چهارشنبه 21 اسفند 1387, 10:15 صبح
سلام

دستور زیر در اکسس اجرا میشه و مشکلی نداره اما وقتی همین دستور یا Query رو برای SQL اجرا می کنم ارور syntax

در کل این دستور با Provider اکسس مشکل نداره اما برای SQL این خطا رو میده





"SELECT * FROM [ipcountry] WHERE (([BeginIP] <= ?) AND ([EndIP] >= ?))"



البته این دستور در اکسس با نوع تایپ Double کار میکنه و من در SQL نوع فیلد را برابر با NUMERIC قرار دادم ، آیا میتونه به نوع تایپ مربوط باشه ؟؟

اگه راهنمایی کنین ممنون میشم

EffatBandehlou
چهارشنبه 21 اسفند 1387, 10:21 صبح
دوست عزيز مشخصات جدولت رو بفرست شايد بتونم كمكت كنم

EffatBandehlou
چهارشنبه 21 اسفند 1387, 10:21 صبح
اگه منظورت از علامت سوالها پارامترها باشه فكر نكنم درست كار كنه

amir_monster
چهارشنبه 21 اسفند 1387, 11:01 صبح
آره به جای علامت سوال پارامتر گذاشتم مشکل حل شد



"SELECT * FROM [ipcountry] WHERE (([BeginIP] <= @BeginIP) AND ([EndIP] >= @EndIP))"



اما یه سوال : تعداد رکورد های این جدول حدودا 110,000 هزاره ، آیا جستجو در میان این همه رکورد لود صفحه رو با کندی مواجه میکنه ؟

البته در local که خیلی سریع پاسخ داده میشه ، اما من تجربه کار با این همه رکورد رو به روی سرور ندارم

EffatBandehlou
چهارشنبه 21 اسفند 1387, 11:35 صبح
دوست عزيز اساساً طراحي بانكهاي اطلاعاتي براي نگهداري و بازيابي تعداد بسيار بالايي ركورد است كه عدد شما در مقابلش چندان مهم نيست.
در خصوص لود كردنش در تو برنامه بستگي به خودتون داره كه بخوائين با چه كنترلي انجام بشه و چه تعداد ركورد بياد.معمولاً تو هيچ برنامه اي لازم نيست اين تعداد ركورد حتماً يكجا آورده بشه

amir_monster
چهارشنبه 21 اسفند 1387, 12:51 عصر
نه قرار نیست این همه رکورد نمایش داده بشه ، در جدول مورد نظر ip آدرس همه کشور ها ثبت شده حالادر هنگام ورود کاربر به سایت ip کاربر گرفته میشه و در بانک جستجو میشه که این کاربر از کدام کشور وارد سایت شده است .

برای همین سوال کردم که آیا جستجو در رکوردهایی با این تعداد باعث کندی در برنامه میشود یا نه ؟

EffatBandehlou
چهارشنبه 21 اسفند 1387, 13:01 عصر
خير.براي سرعت بخشيد در عمل جستجو مي تونيد اون فيلد رو براش Index بزاريد تا بانك اطلاعاتي از توانمنديهاي افزونتري براي جستجو استفاده كند

masoud.ramezani
چهارشنبه 21 اسفند 1387, 15:41 عصر
سلام

چند روز پيش من داشتم مطلبي ميخواندم در مورد index ها و patIndex. فکر ميکنم اگر در اين زمينه مطالعه بکني خيلي به دردتون بخوره.

amir_monster
چهارشنبه 21 اسفند 1387, 16:51 عصر
خیلی ممنون از راهنمایتون ، اما چطور میشه برای یک یا چند فیلد ایندکس بزاریم ؟؟

میشه لطفا یک نمونه بنویسید ؟
و اینکه آیا مثل stored precedure ها در مکان خاصی قرار میگیره ؟؟

masoud.ramezani
چهارشنبه 21 اسفند 1387, 17:06 عصر
خواهش ميکنم. چون مطلب خيلي جامع و کامل است توصيه ميکنم خودتان کامل آن را مطالعه کنيد. در ضمن من خودم به طور کامل با آن کار نکردم. براي شروع فکر کنم دو آدرس زير بتواند به شما کمک کند :


http://www.developer.com/db/article.php/3446891
http://msdn.microsoft.com/en-us/library/ms142541.aspx

در ضمن براي استفاده از patIndex بايد با Reg Exp آشنا باشيد. به لينک زير دقت کنيد.

http://msdn.microsoft.com/en-us/library/ms188395.aspx


اميدوارم که تونسته باشم کمکي کرده باشم.

amir_monster
چهارشنبه 21 اسفند 1387, 17:12 عصر
یک مقاله فارسی هم بنده در آدرس زیر در مورد ساختن index دیدم که شاید بد نباشه دوستان ببینند :

http://www.daneshju.ir/forum/f542/t53628.html#post245127