PDA

View Full Version : مشکل در vb با sql server 2000



vb341
جمعه 31 تیر 1384, 22:53 عصر
با سلام خدمت دوستان
من زمانیکه اطلاعات رو از طریق برنامه vb بر روی server که sql 2000 نیز بر روی اون نصب شده
ذخیره میکنم هیچ مشکلی بوجود نمیاد و کلیه حروف و علائم ذخبره میشه . ولی موقعی که میخوام یک جستجو انجام بدم با وجود اینکه اون چیزی رو که میخوام در sql ذخیره شده و روی server نمایش میده . از طریق client که جستجو انجام میشه هیچ رکوردی با اون شرط برگشت داده نمیشه . از بعضی دوستان پرسیدم و فرمودند مشکل از unicode میتونه باشه ولی من هر کار کردم درست نشد . در ضمن sql بر روی win server 2000 نصب شده

sanaz_eidinezhad
یک شنبه 02 مرداد 1384, 10:35 صبح
اگر منظور شما مشکل با حروف و علائم فارسی است در محیط sql وارد design جدول شده و روی فیلدهایی که می خواهید شرطی را اعمال کنید کلیک کرده و در جدول column که در پایین آن قرار دارد روی علامت ... گزینه collation کلیک کرده و در پنجره باز شده در منوی windows collation گزینه arabic را انتخاب کنید.

titbasoft
یک شنبه 02 مرداد 1384, 11:55 صبح
برای ذخیره سازی اطلاعات رشته ای حتما از N قبل از اونها استفاده کنید . مثلا :

insert into mytable values(N'hi')

vb341
یک شنبه 02 مرداد 1384, 20:49 عصر
من از طریق Vb6 و ado اطلاعات رو ذخیره میکنم . و اطلاعات بدرستی ذخیره میشه و رو سرور و کلاینت هم بدرستی فارسی نمایش داده میشه . ولی زمانیکه از طریق یک رشته sql و با استفاده از یک دیتا کامبو رکوردی رو جستجو میکنم هیچ رکوردی پیدا نمیشه د ر صورتیکه با همون کد روی سرور 2000 رشته مورد نظر را بر میگردونه . در ضمن من برای تست سرور 2003 سرویس پک 1 ,sql 2000 رو با هم نصب کردم و از طریق کلاینت با Vb که جستجو میکنم جواب گرفتم ولی وقتی ویندوز server 2000 با sql 2000 نصب میکنم در جستجو مشکل دارم و رکوردی پیدا نمیشه
نمونه کد :
dim sql1 as string
sql1="select * from table1 where age='" & datacombo1.text & "'"
و بقیه ...
حالا هاشم آقا نیاز هست که زمانیکه در وی بی اطلاعات ذخیره میشه برای رشته از n استفاده کنم؟

titbasoft
یک شنبه 02 مرداد 1384, 21:29 عصر
استفاده از N قبل از رشته ها به معنای ذخیره سازی به صورت unicode است تا مشکل collation حل بشه. یعنی دیگه لازم نباشه collation تعریف بشه. و البته اگر رشته ها unicode ذخیره شده باشن باید به صورت unicode هم جستجو بشن.
اما احساس می کنم این نوشته شما:

د ر صورتیکه با همون کد روی سرور 2000 رشته مورد نظر را بر میگردونه
با نوشته اولتون متناقضه چون توی پست اولتون گفته بودید روی سرور 2000 جواب نمی گیرید.
به هر حال تجربه ثابت کرده در درصد بالایی از موارد مشکل در ساختن string ای است که به عنوان commandText در نظر گرفته می شه. برای چک کردن این موضوع روی همین خطی که در پست قبل نوشتید یک breack point بزارید. زمانی که در زمان اجرا به اون خط رسیدید اون رو توی immediate windows (اگر نمی بینیدش از منوی view انتخابش کنید) کپی کنید و با enter اجراش کنید . سپس اون رو با استفاده از ? چاپ کنید (مثال : sql ?) حالا سstring ای رو که چاپ شده توی محیط query analyzer تست کنید . فکر کنم مشکل حل بشه.

sanaz_eidinezhad
دوشنبه 03 مرداد 1384, 08:20 صبح
دوست عزیز یک نکته دیگر که باید توجه کنی این است که نوع داده در combo box و یا سایر کنترلهای vb از نوع رشته ای است و اگر شما فیلد مثلاً age خود را از نوع عددی انتخاب کرده باشید هیچ نتیجه ای را به شما برنمی گرداند.

tayebeh
دوشنبه 03 مرداد 1384, 09:08 صبح
سلام
من یه برنامه وبی بی دارم که از طریق adodc اطلاعات رو بصورت صحیح وارد دیتابیس می کنه . ولی برای جستجو گاهی اوقات جواب می ده گاهی اوقات جواب نمیده . قبلش بگم که واسه جستجو از حرفN هم استفاده کردم همینطور در فیلد موردنظر از جدول هم collationهم تنظیم شده . یک کومبو دارم که نام اداره از اون انتخاب میشه و واحدهای اون اداره بعد از جستجو در یک کومبوی دیگه نمایش داده میشه . سئوال اینجاست که چرا بعضی وقتا جواب می ده بعضی وقتا نه؟ من اول فکر کردم ایراد از فونت باشه ولی من معمولا فونت tahoma استفاده می کنم که مشکلی هم فکر نمی کنم داشته باشه . فونتهای arial ، times new roman رو هم امتحان کرده بیدم ولی مشکلم حل نشده بید.
باتشکر
بای

vb341
دوشنبه 03 مرداد 1384, 20:48 عصر
هاشم آقا ببخشید منظورم از 2000 همون 2003 بود