کیوت و sql server
-
p{direction:rtl;text-align:right;}. برا بازار ایران که هرجا که میری دیتابیسشونو با SQL Server پیاده کردن میتونه خوب باشه اما من که حالم از SQL Server به هم میخوره .... :دی
"QtExperts":http://www.qte.ir/?ref=b42e49f3da9b1cf676561ad2f9e44d47
-
p{direction:rtl;text-align:right;}. بحث اینجاس که برای ارتباط با بانک sql server باید از odbc استفاده کرد که با incompatibility هاش مشکل ساز میشه. باید یک درایور native داشته باشه که نمیشه گفت 100% native ولی با استفاده از IPC بتونه دستورات رو به درستی اجرا کنه و نتیجه رو درست برگردونه.
"QtExperts":http://www.qte.ir/?ref=e512946fd57f2c58c128f2943f3b4786
-
p{direction:rtl;text-align:right;}. اصلا به نظر من کار درستی نیست که بخوای با SQL SERVER کار کنی!
p{direction:rtl;text-align:right;}. شما به نظرم اصلا به فکر چنین کاری نباشید ، چون هیچوقت کسی MYSQL جذاب ، قدرتمند و سریع و از همه مهم تر رایگان و اوپن سورس رو ول نمیکنه بیاد با SQL Server کار کنه!
p{direction:rtl;text-align:right;}. اینو جدی میگم !
"QtExperts":http://www.qte.ir/?ref=cbc17380a3398e6468d31efb7f01ff9c
-
p{direction:rtl;text-align:right;}. آخه اینطوری که نمیشه گفت! مثلا ما اخیرا یه پروژه داشتیم که باید با یه برنامه دیگه که بانکش sql server بود کار میکرد. توی فرمان های insert update delete اصلا سینک نمیشد. odbc نمیدونست کی اجرای فرمان تموم شده فقط timeout که میشد ok میداد! برای این موضوع یه wrapper ایجاد کردیم!!!
p{direction:rtl;text-align:right;}. بهرحال اونم بانک اطلاعاتیه دیگه و خیلی ها دارن ازش استفاده میکنن.
"QtExperts":http://www.qte.ir/?ref=1b6ea91ceef18199bc364c0f32239332
-
p{direction:rtl;text-align:right;}. آره درست میگی.
p{direction:rtl;text-align:right;}. خیلیا تو ایران استفاده می کنن ازش و واقعا مشکله اگه بخوای سینکش کنی.
p{direction:rtl;text-align:right;}. همین هفته پیش اتفاقا داشتم چنین کاری میکردم.افتضاح بود!
"QtExperts":http://www.qte.ir/?ref=20b602db587c1de3123256b79568b501
-
p{direction:rtl;text-align:right;}. اصلاً امکان چنین کاری وجود داره یا نه؟ فکر نمیکنم مایکروسافت API های سطح پایین مربوطه رو منتشر کرده باشه. نهایتاً میشه یه wrapper براش نوشت که اجرا بشه و روی TCP کوئریها رو بگیره تحویل آقای SQL Server بده. برای این کار باید از ابزار مایکروسافت استفاده بشه. مشکلات حقوقی هم خواهد داشت قطعاً.
-
p{direction:rtl;text-align:right;}. نیازی به استفاده از tcp نیست. اولا تولید wrapper یا ابزاری که از api استفاده کنه هیچ منع قانونی نداره.
p{direction:rtl;text-align:right;}. دوما sql server از پروتکل TDS استفاده میکنه که قبلا پروژه هایی مثل freeTDS برای یونیکس تولید شده و همچنین پورتش برای سیستم عامل های دیگه. چیزی که به ذهنم میرسه استفاده از این پروژه هست.
p{direction:rtl;text-align:right;}. تنها موردی که نگرانشم و نمیدونم اینه که شنیده بودم sql 2012 دیگه از موتور sybase استفاده نمیکنه. حالا نمیدونم پروتکلش هم از TDS تغییر کرده یا نه.
"QtExperts":http://www.qte.ir/?ref=05304a26f8f6206ab5942677868e52a5
-
p{direction:rtl;text-align:right;}. الان این رو دیدم http://blog.qt.digia.com/blog/2010/02/09/tds-driver-deprecation
p{direction:rtl;text-align:right;}. ظاهرا قبلا بوده تو سیستم ولی بخاطر اینکه TDS دیگه پشتیبانی نمیشه از کیوت حذف شده.
p{direction:rtl;text-align:right;}. راه حل جایگزین میتونه استفاده از shared memory یا pipe باشه که sql server جفتشون رو ساپورت میکنه. فقط اگر منابعی تو اینترنت از تبادل اطلاعاتشون نباشه باید spy بشن !http://qte.ir/stable/smiley/disdain.png(Disdain)!
"QtExperts":http://www.qte.ir/?ref=540c13e075a6119b3ccdfe89dfc6e660
-
p{direction:rtl;text-align:right;}. ODBC یک استاندارد تعریف شده برای تمام بانک های اطلاعاتیه. طبیعیه که نتونه عملیات native مربوط به هر بانک رو هندل کنه. یک نمونه از مشکلی که بوجود میاد رو بالاتر گفتم. تازه این فقط یه مشکل کوچیکه! با استفاده از ODBC نوع فیلد ها با اون چیزی که در بانک تعریف شده فرق داره و ممکنه اون مقدار دهی که میکنی تو بانک طور دیگه ای ذخیره بشه. مثلا نوع boolean رو با mysql امتحان کن. مقداری که بعد از ذخیره شدن میگیری ازش تو odbc با libmysql فرق داره. اگر از اول بانک رو طوری طراحی کنی که odbc compatible باشه مشکلی نیست ولی همه بانک ها باید odbc compatible باشن؟ که بازم مشکلاتی مثل همون sync نبودن همچنان وجود داره.
p{direction:rtl;text-align:right;}. از نظر سرعت هم که odbc خیلی پایین تره.
p{direction:rtl;text-align:right;}. راه حل دیگه ای که به ذهنم رسید این بود که چون قبلا این درایور برای کیوت ایجاد شده میشه همون رو از سر گرفت و از اون طرف TDS رو هم زنده کرد. چون خوندم که هنوز sql server از tds استفاده میکنه.
"QtExperts":http://www.qte.ir/?ref=b4c2cf29efb24335ef7e534aa3a410b7
-
p{direction:rtl;text-align:right;}. TDS خیلی قدیمییه. عجیبه که مایکروسافت از اون استفاده کرده باشه. مخصوصاً این که پیادهسازی OpenTDS روی ویندوز با MinGW اصلا قابل کامپایل نیست.
p{direction:rtl;text-align:right;}. من هیچ دلیلی برای استفاده از SQL Server نمیبینم. برنامهنویسهای وطنی که عاشقش هستن و تقریباً نود درصد پروژههای انجام شده با اون نوشته شده. با این حال اگه قرار باشه کدی رو تحویل بگیرم، اولین کاری که میکنم تبدیل اسکیما به MySQL هست. خیلی غیرمنطقییه آدم بخواد از SQL Server استفاده کنه.
اینو ببین:
"http://www.mysql.com/why-mysql/migration/":http://www.mysql.com/why-mysql/migration/