PDA

نسخه کامل مشاهده نسخه کامل : SQL Compact + SQL Server Managment Studio



bad_boy_2007
08-07-2009, 20:46
سلام دوستان
یادمه چند وقت پیش تو همین انجمن یه جایی در مورد SQLCE بحث شد بوده و یکی از دوستان هم میخواست بدونه که آیا محیطی برای کار کردن با SQLCE غیر از IDE خود VS.Net وجود داره یا نه ؟
که در همون تاپیک استاد _H2_ هم گفته بودن که احتمالا از طریق SSME باید این کار امکان پذیر باشه ولی ظاهرا امکانی برای این کار در SSME پیدا نشد .
متاسفانه به دلیل سرعت کم اینترنت (تازه که ADSL هم هست !! ) نمیتونم تاپیک رو پیدا کنم .
خلاصه اینکه الان نیاز دارم با دیتابیس اس کیو ال کامپک کار کنم و یه سرچی تو نت زدم به این سایت رسیدم :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

توی تصویر و توضیحاتی که نویسنده تهیه کرده دیده میشه که محیط SSME قابلیت کار با SQLCE رو داره ولی این گزینه واسه من غیر فعاله ، لطفا دوستانی که تجربه دارن هم رو سیستماشون برسی کنن و اگه میدونن مشکل از چیه راهنماییم کنن .

در ضمن من SQLCE رو با ابزارهای کامل رو سیستمم نصبه و با محیط VS.Net میتونم باهاش کار کنم

bad_boy_2007
09-07-2009, 14:35
این هم از دانشنامه ویکی پدیا گیر آوردم :


SQL Server Management Studio 2005 can read and modify CE 3.0 and 3.1 database files (with the latest service pack), but SQL Server Management Studio 2008 (or later) is required to read version 3.5 files. Microsoft Visual Studio Express 2008 SP1 can create, modify and query CE 3.5 SP1 database files.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

متاسفانه SSMSE 2008 رو هم هنوز نتونستم نصب کنم ، آخه همش گیر میده !!!

bad_boy_2007
09-07-2009, 15:07
توی چند تا سایت دیگه هم رفتم و دیدم به همین راحتی نوشتن که با استفاده از منجمنت استودیو باید ServerType رو به SQLCE تغییر بدیم ولی آخه واسه من غیر فعاله !!!
هیچ توضیحی هم در مورد چگونگی فعال کردنش پیدا نکردم !


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

bad_boy_2007
09-07-2009, 15:14
هنوز 2008 رو نصب نکردم ولی اینطور که از مطالب و تصاویر سایت ذیل پیداست ، باید با منجمنت استودیو 2008 هم به راحتی به اس کیو ال کامپکت وصل شد :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

bad_boy_2007
10-07-2009, 11:17
توی متنی که به نقل از دانشنامه ویکیپدیا گذاشته بودم به این نکته دقت نکرده بودم که نوشته بود آخرین سرویس پک SSMES2005 این قابلیت رو داره

این هم SSMEE2005 sp2 :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

تست کردم جواب داد :10::20:

bad_boy_2007
10-07-2009, 11:43
و اما مشکل بعدی !!
یادمه حدود 3 یا 4 ماه پیش که با SQLCE کار میکردم به یک ابزار برخوردم که دیتابیس SQL Server 2005 رو به دیتابیس SQLCE تبدیل میکرد ، ولی اصلا اسمش یادم نمیاد و الان هم به همچین ابزاری نیاز دارم !
الان میخوام دیتابیس برنامم رو به SQLCE تبدیل کنم و اطلاعاتش رو روی PocketPC باز کنم
یه سرچی تو گوگل زدم چیز خاصی گیر نیووردم !
اگه کسی با همچین ابزاری کار کرده دریغ نکنه :31:

_H2_
10-07-2009, 14:30
سلام

... الان میخوام دیتابیس برنامم رو به SQLCE تبدیل کنم ...
اگر جداولتان را در CE ساخته اید و فقط مانده دیتاهای مندرج در دیتابیس اصلی ...
وارد SSMS شوید و به دیتابیس اصلی وصل شوید روی دیتابیس راست کلیک و...

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در بخشهای بعدی ویزارد جداول مورد نظر را انتخاب کنید و باز Next و Finish کنید.

یک سری دستور SQL ساخته و نمایش داده میشود که حاوی دستورات INSERT مناسب است و شما میتوانید به راحتی ان را در CS اجرا کنید تا دیتاهایتان درج شوند.

یعنی اینبار باز SSMS را متصل میکنید به CE و روی دیتابیس CE راست کلیک و گزینه NewQuery را انتخاب میکنید و اسکریپ قبلی را copy و paste و اجرا میکنید.

bad_boy_2007
10-07-2009, 14:38
سلام

اگر جداولتان را در CE ساخته اید و فقط مانده دیتاهای مندرج در دیتابیس اصلی ...
وارد SSMS شوید و به دیتابیس اصلی وصل شوید روی دیتابیس راست کلیک و...

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در بخشهای بعدی ویزارد جداول مورد نظر را انتخاب کنید و باز Next و Finish کنید.

یک سری دستور SQL ساخته و نمایش داده میشود که حاوی دستورات INSERT مناسب است و شما میتوانید به راحتی ان را در CS اجرا کنید تا دیتاهایتان درج شوند.

یعنی اینبار باز SSMS را متصل میکنید به CE و روی دیتابیس CE راست کلیک و گزینه NewQuery را انتخاب میکنید و اسکریپ قبلی را copy و paste و اجرا میکنید.

ممنون استاد _H2_
ولی من میخوام دیتابیس SQLServer 2005 رو به SQL Compact 3.5 تبدیل کنم
میدونم این وسط یه سری از ویژگی ها از بین میره مثلا استور پروسیجر ها ، ویو ها ، تریگر ها و... چون توی Compact 3.5 پشتیبانی نمیشن
میخواستم تک تک جدولهام رو دوباره ایجاد نکنم ، میدونم یک ابزار واسه این کار هست ولی نمیدونم اسمش چی بود !:31:

یعنی اگه بخوام کامل بگم ،
همون دستور GenerateScript رو میخوام از SQL Server 2005 بگیرم که خروجیش بشه SQL Compact 3.5

_H2_
12-07-2009, 12:11
سلام
من برنامه ای که شما میخواهید را نمیشناسم ولی معمولاً مشکلاتم را با همان SSMS حل میکنیم ...

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

==============

وارد SSMS شوید و به دیتابیس اصلی وصل شوید روی دیتابیس راست کلیک و...


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

در بخشهای بعدی ویزارد فقط و فقط جداول مورد نظر را انتخاب کنید و باز Next و Finish کنید




سپس که اسکریپت ساخته و نمایش داده شد ...
- بخشهای ON PRIMARY در انتهای دستورات ساخت جدول را حذف کنید.
(میتوانید فرمان Edit->Find and Replace بدهید و عبارات " ON [PRIMARY]" را با "" جایگزین کنید)

- در صورت فعال کردن Script Data اسکریپت های INSERT هم خواهید داشت که باید حتماً دستی یک نقطه ویرگول ";" به انتهای هر دستور INSERT اضافه کنید.

- کلیه دستورات SET را تا GO بعدیشان کلاً حذف کنید تا فقط بدنه دستورات اصلی بماند ...
(اگر دستورات زیاد است میتوانید از Edit->Find هم کمک بگیرید)

بعد SSMS را متصل میکنید (یا در همان نمونه یا با بازکردن جدید) به CE و روی دیتابیس CE راست کلیک و گزینه NewQuery را انتخاب میکنید و اسکریپ قبلی را copy و paste و با علامت تعجب ! در نوار ابزار اجرایش میکنید.

=====

حالا باید هم جداول ساخته شده باشند و هم دیتاها ...
ولی اطلاعات خاص برخی فیلدهای جداول را باید دستی ست کنید...
مثلاً ....
- فیلدی که PrimaryKey جدول است.
- فیلدی که Identity یا AutoNumber جدول است.
- فیلدهایی که Unique هستند.

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

==============

بهرحال من فقط تا اینجا میتوانم کمک کنم که با روش فوق جدول و دیتا را بسازید و لی برنامه ای برای تبدیل نمیشناسم.

نمیدانم ولی امیدوارم مفید بوده باشد.:11:
موفقث باشید.

bad_boy_2007
12-07-2009, 18:08
ممنون استاد تست میکنم خبرشو میدوم ولی ظاهرا با این کد هم مشکل داره :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

معادل varchar(100) رو هم باید پیدا کنم

راستی یه چیزی ، خیلی دنبال این مطلب بودم که از داده های درون دیتابیسم اسکریپت بگیرم ولی همچین موردی پیدا نکردم .
تو توضیحات گفته بودید که :

Script Data=True (اگر دیتایی برای انتقال دارید این را هم فعال کنید تا اسکریپ درج اطلاعات را بسازد)
ولی همچین گزینه ای وجود نداره

_H2_
12-07-2009, 18:33
سلام
طبیعتاً باید جداول شما قابل تبدیل باشند ...
varchar و char و text هم مثل SP ها در نسخه Compact وجود ندارد.
این نسخه به صورت عمومی و در جهت کوچک شدن هسته و در عین حال تطابق با فرهنگ های مختلف کل اطلاعات متنی را با کمترین پردازش ممکن فقط و فقط به صورت Unicode ای (و احتمالاً UTF8) ذخیره میکند تا هم دیتاهای Ascii در کمترین جا قرار گریند و هم دیتاهای Unicode قابل ذخیره باشند و کدهای داخلی هم برای هر فیلد روش کدینگ را تغییر ندهند ...

مثل خود دات نت که در داخل برنامه فقط نوع char و string را دارد که هر دو یونیکدی هستند و دیگری نوعی مخصوص ascii جداگانه ندارد.

نتیجتاً به جای varchar و char و text از nvarchar و nchar و ntext استفاده کنید.


راستی یه چیزی ، خیلی دنبال این مطلب بودم که از داده های درون دیتابیسم اسکریپت بگیرم ولی همچین موردی پیدا نکردم
همانطور که در هم در پست 7 و هم در پست 9 گفتم، شما به راحتی با Script Data=True میتوانید از دیتاها هم به صورت دستورات جداگانه و مستقل INSERT اسکریپت بسازید


ولی همچین گزینه ای وجود نداره
اگر وجود ندارد احتمالاً به دلیل نگارش SSMS است که استفاده میکنید.
من الآن در رایانه خودم از SSMS 2008 Developer Edition استفاده میکنم ولی اگر درست یادم مانده باشد گمانم گزینه مذکور در SSMS 2005 Developer Edition هم وجود داشته ...
نتیجتاً حدس میزنم فقدان گزینه مذکور مربوط به نسخه Express میشود.
در صورت نیاز پیشنهاد میکنم یک CD یا DVD نسخه های پولی (غیر Express) از SQLServer2005/2008 تهیه و نصب کنید.

موفق باشید.

bad_boy_2007
13-07-2009, 23:33
ممنون استاد از جوابتون :11:
راهنمایی هاتون مثل همیشه تخصصی و کامل بود
در مورد SQL هم باید مشکل از منجمنت استودیو من باشه ، آخه از نسخه Express استفاده میکنم