ورود

View Full Version : مقاله: تبدیل دیتابیس MS SQL به دیتابیس Sqlite



alimanam
سه شنبه 03 مرداد 1391, 17:38 عصر
" در شرکت در حال انجام پروژه ای هستیم که دیتابیس برنامه بر روی SQLEXPRESS هست. مشکلی که با SQLEXPRESS داریم این هست که موقع نصب برنامه، برای نصب SQLEXPRESS زمان زیادی می برد و برای کارفرما و کاربر عادی تقریبا این زمان خیلی زیاد هست. به همین دلیل تصمیم گرفتم که دیتابیس را بر روی SQLite پیاده سازی کنم.
برای این مهاجرت بین دیتابیس ها ۲ مشکل بر سر راه بود :
۱- طراحی و ساخت دوباره دیتابیس بر اساس توانایی و محدودیت های SQLite
2- انتقال اطلاعات موجود در دیتابیس مبدا به مقصد.

چون جداول و قوانین موجود بر روی دیتابیس مبدا کم بود پس مشکل اول به راحتی حل شد. چون دیتابیس حجم زیادی از اطلاعات را دارد. اما مشکل دوم همچنان به قوت خود باقی ماند تا اینکه با جستجو در گوگل به برنامه برخورد کردم که ۲ مشکل رو به راحتی حل می کرد. "


http://1mohammadi.ir/wp-content/uploads/2012/07/converter.png

" برنامه Convert SQL Server DB to SQLite DB که می توانید سورس آن را هم از CodeProject دریافت کنید، ابتدا یک دیتابیس SQLite را ساخته، سپس ساختار و جداول دیتابیس SQLEXPRESS را در آن پیاده سازی می کند و بعد داده های موجود در دیتابیس مبدا را وارد دیتابیس مقصد می کند.
تنها نکته ای که باید رعایت کنید این است که اگر از CodeProject فایل Debug شده را دانلود می کنید، کتابخانه System.Data.SQLite.dll در پوشه آن موجود نیست و باید آن را در پوشه اضافه کنید. این کتابخانه در در پوشه سورس برنامه وجود دارد.
برای مدیریت دیتابیس های SQLite هم می توانید از نوشته مدیریت پایگاه های داده SQLite استفاده کنید. "

دانلود (http://www.codeproject.com/Articles/26932/Convert-SQL-Server-DB-to-SQLite-DB)
منبع (http://1mohammadi.ir/sql/convert-sql-server-database-to-a-sqlite-database/)

موفق باشید./

Hossis
چهارشنبه 19 شهریور 1393, 18:05 عصر
با تشکر
آیا هنگام انتقال اطلاعات، فیلد آی دی(اتونامبر) هم به همان شکل مبدا نگه داشته میشه؟
چون ارتباط بین جداول با این فیلد در نظر گرفته میشه

Hossis
چهارشنبه 19 شهریور 1393, 18:30 عصر
ساخت دیتابیس سکولایت به چه نحوه ای هست؟ یعنی جدای از کد نویسی راهی برای ساختش هست؟
از طریق کد نویسی چی؟ چون فکر می کنم کد ساخت دیتابیس و ایجاد فایل اون با اسکیوال سرور متفاوته

Hossis
چهارشنبه 19 شهریور 1393, 18:36 عصر
یک مسئله با این سورس کدپروجکت پیش اومد و اون اینه که با فایل دیتابیس اتچ شده کار نمی کنه
مثلا من یک فایل mdf در داکیومنت خودم دارم که برنامه به اون وصل میشه و این سورس نمی تونه این فایل رو انتخاب کنه
لطفا راهنمایی کنید.

alimanam
جمعه 21 شهریور 1393, 12:18 عصر
با تشکر
آیا هنگام انتقال اطلاعات، فیلد آی دی(اتونامبر) هم به همان شکل مبدا نگه داشته میشه؟
چون ارتباط بین جداول با این فیلد در نظر گرفته میشه

با سلام

یادمه ایجاد میکرد ولی اگرم مشکلی بود میتونید بعد از تبدیل دیتابیس بوسیله نرم افزارهای مدیریت دیتابیس sqlite مثل navicat و امثالهوم فیلدهای ساخته شده رو ادیت کنید .



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

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



یک مسئله با این سورس کدپروجکت پیش اومد و اون اینه که با فایل دیتابیس اتچ شده کار نمی کنه
مثلا من یک فایل mdf در داکیومنت خودم دارم که برنامه به اون وصل میشه و این سورس نمی تونه این فایل رو انتخاب کنه
لطفا راهنمایی کنید.


خوب دوست عزیز وقتی دیتابیس اصلی ( Ms Sql ) نرم افزار شما به برنامه متصل هست نمیشه اتصال دیگری ( منبع دیگری خارج از نرم افزاری که الان بهش متصل هست ) رو بهش متصل کنین برای حل این موضوع تمامی کانکشن های اتصال و Pool ها رو Close یا Clear (http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.clearallpools( v=vs.110).aspx) کنید .

موفق باشید./

Hossis
شنبه 22 شهریور 1393, 14:05 عصر
من کانکشن رو هم تغییر دادم ولی باز هم تبدیل رو کامل انجام نداد یعنی تنها کاری که کرد این بود که یک فایل خالی دیتابیس اسکیولایت درست کرد و دیگه نه از جدول خبری بود و نه از رکوردها و اطلاعات یعنی نه ساختار رو درست کرده بود و نه دیتا ها رو منتقل.
با این که تو پیامش اسم جداول رو می آورد.

alimanam
شنبه 22 شهریور 1393, 15:26 عصر
من کانکشن رو هم تغییر دادم ولی باز هم تبدیل رو کامل انجام نداد یعنی تنها کاری که کرد این بود که یک فایل خالی دیتابیس اسکیولایت درست کرد و دیگه نه از جدول خبری بود و نه از رکوردها و اطلاعات یعنی نه ساختار رو درست کرده بود و نه دیتا ها رو منتقل.
با این که تو پیامش اسم جداول رو می آورد.

با سلام

دوست عزیز سورس کد لینک داده شده !!!! برین چک کنید ببینین کجاش مشکل داره البته من قبلا تستش کردم و بدرستی تبدیل میکرد .

موفق باشید./