PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آموزش sql و نحوه کار با آن در vb



TAHA
11-24-2009, 09:49 PM
سلام
این تاپیک رو راه انداختم چون دیدم همه به خاطر در دسترس نبودن منابع خوب دارن به سمت استفاده از Access می رن که اصلاً خوب نیست، چرا که خیلی ضعیفه

مراحل درس دادن اینه:
جلسه اول: آشنایی با SQL و یک سری اسامی که باید یاد بگیریم
جلسه دوم: نحوه اتصال به SQL از طریق VB6 و VB.NET
جلسه سوم: دستورات ساده SQL
جلسه چهارم: دیتا تایپ ها (Data types)
جلسه پنجم: دستورات پیشرفته SQL
.......

TAHA
11-24-2009, 09:49 PM
جلسه اول: آشنایی با SQL و یک سری اسامی که باید یاد بگیریم

کلمه SQL کوتاه شده عبارت Structured Query Language می باشد، که ترجمه آن زبان جستجوی ساخت یافته می باشد.
SQL ابزار قدرتمندی است که ویژوال بیسیک و موتور Microsoft Jet از آن برای دسترسی به انواع پایگاه های داده استفاده می کنند.
SQL در دهه 1970 توسط IBM به منظور استاندارد کردن روش های استخراج داده از پایگاه های داده مختلف، توسعه داده شد. هدف از اختراع این زبان، ارایه وسیله ای مستقل از برنامه نویسی بود.
نام جَد اس کیو ال زبانی به نام سیکوئل(Sequel) می باشد که آن هم توسط IBM اختراع گردید. البته این زبان امروزه وجود ندارد چرا که با آمدن SQL جد این زبان به تاریخ پیوست.

لازم می دونم در اینجا دو مورد رو برای شما تفکیک کنم که اکثر برنامه نویسای مبتدی باهاش مشکل دارن.
یکی کلمه SQL هستش و دیگری SQL Server
SQL مجموعه دستوراتی است که به شما اجازه می دهد به دیتابیس های مختلف وصل شید و روی اون ها اعمالی مثل ثبت، حذف و تغییر رو انجام بدین
SQL Server نام یک دیتابیسه(مثل Access) که دستورات SQL در ابتدا برای این پایگاه داده نوشته شده بود ولی الان شما می تونین از این دستورات برای اتصال به Access و Oracle هم استفاده کنین.

دستورات SQL به دو بخش کلی تقسیم می شوند:
DML یا زبان پردازش داده
DDL یا زبان تعریف داده
دستورات DML برای استخراج، مرتب سازی، خلاصه سازی و محاسبه روی جدول ها بکار می روند.
دستورات DDL شما را قادر می سازند تا در یک پایگاه داده، جدول، اندیس و رابطه تعریف کنین.

این تقسیم بندی صرفاً جنبه آموزشی داره و به صورت عملی هیچ کاربردی نداره

ساختار دستورات SQL توسط مؤسسه استاندارد های ملی امریکا(ANSI) و در کمیته ANSI-SQL مشخص می شود.

TAHA
11-24-2009, 09:53 PM
جلسه اول: آشنایی با SQL و یک سری اسامی که باید یاد بگیریم

تا اینجا بیشتر در مورد SQL و دستوراتش صحبت کردیم حالا بریم سراغ SQL Server

من در اینجا لازم می دونم تا روی ورژن SQL Server 2005 که فراگیرترین نسخه اون هستش صحبت کنم(البته در حال حاضر نسخه 2008 اون هم منتشر شده که من باهاش کار نکردم)

SQL Server2005 در نسخه‌هاي مختلفي عرضه شده است كه از نظر كارايي و قيمت بسيار متفاوت هستند و البته براي كاربران مختلفي نيز طراحي شده‌اند.

(SQL Server2005 Enterprise Edition (32-bit and 64 bit
اين نسخه در حقيقت نسخه پيشرفته اين نرم‌افزار است و براي محيطي طراحي شده است كه يا داراي بانك اطلاعاتي بسيار بزرگ (از نظر تعداد ركورد يا حجم اطلاعات) يا داراي تعداد پردازش آنلا‌ين بسيار زياد يا نيازمند تحليل پيچيده اطلاعات است. اين نسخه همه قابليت‌هاي اين نرم‌افزار را دارد.

(SQL Server2005 Standard Edition (32-bit and 64-bit
اين نسخه در حقيقت براي شركت‌هاي متوسط مناسب است. نكته مهم اين است كه اين نسخه نيز به راحتي بانك‌هاي اطلاعاتي بزرگ را پشتيباني مي‌كند. اما بعضي از ويژگي‌هاي مورد نياز براي تحليل پيچيده اطلاعات را ندارد و البته قيمت بسيار مناسب‌تري نسبت به نسخه Enterprise دارد.

‌(SQL Server2005 Workgroup Edition (32-bit only
اين نسخه براي شركت‌هاي كوچك و سرويس‌دهنده‌هاي وب و البته بانك‌هاي اطلاعاتي كه به عنوان نسخه پشتيبان استفاده مي‌شوند، مناسب است. اين نسخه در بين نسخه‌هايي كه به كاربران نهايي عرضه مي‌شود، كمترين قيمت را دارد.

(SQL Server 2005 Developer edition (32-bit and 64-bit
اين نسخه از نظر خصوصيات و ويژگي‌ها هيچ تفاوتي با نسخه Entrprise ندارد. اما مختص برنامه‌نويسان است. لذا قيمت بسيار پاييني دارد و شركت‌هاي برنامه‌نويسي در زمينه بانك‌هاي اطلاعاتي از اين نسخه استفاده مي‌كنند. بدين ترتيب اين شركت‌ها ديگر مجبور نيستند براي تست برنامه خود نسخه Entrprise را تهيه كنند.

(SQL Server2005 Express Edition (32-bit only
اين نسخه كاملاً مجاني است و مي‌تواند به عنوان يك سرويس‌دهنده يا يك سرويس گيرنده با حجم كوچكي از اطلاعات استفاده شود. بدين‌ترتيب برنامه‌نويساني نيز كه مي‌خواهند برنامه‌اي بنويسند كه داراي يك بانك اطلاعات كوچك است ديگر نيازي نيست كه نگران بانك اطلاعاتي خود باشند. چرا كه مي‌توانند برنامه خود را همراه با يك نسخه مجاني Exprees Edition ارائه كنند.

‌SQL Server 2005 Compact Edition و SQL Server2005 Mobile Edition
اين دو نسخه جزء نسخه‌هايي هستند كه بعدها به مجموعه اصلي اضافه شده‌اند كه فعلاً از بحث ما خارج هستند.

منبع: مجله شبکه

TAHA
11-24-2009, 09:53 PM
جلسه اول: آشنایی با SQL و یک سری اسامی که باید یاد بگیریم

مسلماً اگه ما بخوایم برنامه ای بنویسیم که با دیتابیس SQL Server کار کنه، باید خود SQL Server رو نصب کرده باشیم

آماتور ها این رو نخونن: اگه برنامه بخواد Local کار کنه، باید SQL Server حتماً نصب باشه ولی اگه برنامه تحت شبکه بخواد اجرا بشه کافیه روی سرور نصب باشه و روی کلاینت ها نمی خواد نصب شه(البته کلاینت ها به MDAC احتیاج دارن که توی Setup شون باید دیده بشه!)

در اینجا با آموزش نصب SQL Server 2005 آشنا می شید:

بعد از قرار دادن دي‌وي‌دي SQL Server2005 در دستگاه و اجراي فايل Setup و تأييد License برنامه، صفحه‌اي را مشاهده مي‌كنيد كه برنامه‌هاي مورد نياز براي نصب SQL Server2005 را در كامپيوتر شما نصب مي‌كند. اين موارد به‌طور مشخص NET FRAMWORK 2.0. و NATIVE CLIENT براي دسترسي به سرويس‌دهنده شبكه و تعدادي فايل حمايتي براي نصب SQL Server2005 است.
http://pnu-club.com/imported/2009/11/1727.jpg جهت مشاهده اندازه واقعی روی آن کلیک کنید.



بعد از انتخاب گزينه Install صفحه آغازين نصب SQL Server2005 ظاهر مي‌شود و با انتخاب گزينه Next صفحه‌اي مانند شكل زیر ظاهر مي‌شود.
http://pnu-club.com/imported/2009/11/1728.jpg جهت مشاهده اندازه واقعی روی آن کلیک کنید.



اين صفحه در حقيقت قسمت چك كردن سيستم براي مشخص كردن مهيا بودن سيستم براي نصب SQL Server2005 است. همان‌طور كه مي‌بينيد، مواردي مانند نصب بودن ماژول‌هاي حمايت از XML و وجود Service pack در سيستم‌عامل يا دارا بودن حداقل نيازهاي سخت‌افزاري براي نصب SQL Server2005، نصب بودن IIS و ... در اين صفحه چك مي‌شود.
اگر پيام خطا در مورد سخت‌افزار دريافت كرديد، خيلي نگران نباشيد. زيرا اگر اختلاف سخت‌افزار شما با آنچه مايكروسافت مي‌خواهد زياد نباشد، مشكلي در نصب نخواهيد داشت. اگر مانند شكل قبل ديديد كه IIS روي سيستم شما نصب نيست يا اگر نمي‌خواهيد با بستر اينترنت و ماژول توليد گزارش كار كنيد، بدون توجه به اين اشكال به مرحله بعد برويد.
در ادامه نصب SQL Server2005 روي كامپيتر شما آغاز مي‌شود. در ادامه صفحه بايد شماره سريال را وارد كنيد كه با انجام اين كار صفحه‌اي مانند شكل زیر ظاهر مي‌شود.
http://pnu-club.com/imported/2009/11/1729.jpg جهت مشاهده اندازه واقعی روی آن کلیک کنید.



در اين صفحه مي‌توانيد با انتخاب سرويس‌هاي مناسب ادامه نصب نرم‌افزار را پي بگيريد. مايكروسافت اكيداً توصيه مي‌كند كه براي داشتن امنيت بهتر اگر از ماژولي استفاده نمي‌كنيد، از نصب آن خودداري كنيد. اما اگر به منظور آموزش نرم‌افزار را نصب مي‌كنيد، مي‌توانيد همه ماژول‌هاي آن را نصب كنيد.
توصيه مي‌كنم همه مثال‌ها و راهنماي نرم‌افزار كه به آن Books On Line مي‌گوييم را نيز حتماً نصب كنيد كه بعداً حتماً به كارتان خواهد آمد. براي نصب همه ماژول‌ها مي‌توانيد با انتخاب گزينه Advance از صفحه بعدي كمك بگيريد.
http://pnu-club.com/imported/2009/11/1730.jpg جهت مشاهده اندازه واقعی روی آن کلیک کنید.



در صفحه بعدي شما دو انتخاب خواهيد داشت: انتخاب اول، گزينه Default instance است. اين گزينه هنگامي استفاده مي‌شود كه براي اولين بار مشغول نصب SQL Server روي سيستم خود هستيد. اما اگر روي سيستم خود داراي SQL Server هستيد، سيستم جديدي كه نصب مي‌كنيد، حتماً بايد داراي يك نام جديد باشد تا قابل شناسايي باشد.
بنابراين گزينه Named Instance را انتخاب مي‌كنيم و يك نام را در قسمت مربوطه براي سيستم خود وارد مي‌كنيم و سپس با گزينه Next به صفحه بعد مي‌رويم. شايد از خود بپرسيد: به چه دليلي ممكن است نياز داشته باشيم چند نسخه از اين نرم‌افزار را روي سيستم خود داشته باشيم.
مايكروسافت چهار دليل را براي اين مسئله بيان مي‌كند: اول هنگامي كه بخواهيد چند نسخه مختلف را به طور همزمان روي سيستم خود داشته باشيد. دوم هنگامي كه مي‌خواهيد كار يك برنامه براي برقراري ارتباط بين چند سيستم را تست كنيد.
بدين ترتيب به جاي اين‌كه چند سيستم را روي چند كامپيوتر اجرا كنيد، همه سيستم‌ها را روي يك كامپيوتر نصب مي‌كنيد و بعد تست مي‌كنيد. بديهي است اين روش داراي صرفه اقتصادي بيشتري است. دليل سوم هنگامي كه داراي چند مشتري هستيد كه هر كدام سيستم خود را مي‌خواهند و چهارم مربوط به زماني است كه داراي چند برنامه روي سيستم خود هستيد كه هر برنامه نيازمند سيستم خود است.
http://pnu-club.com/imported/2009/11/1731.jpg جهت مشاهده اندازه واقعی روی آن کلیک کنید.



در ادامه بايد كاربران مجاز را با سطح دسترسي مشخص براي سيستم معلوم كنيد. براي اين كار سه راه وجود دارد: اول شما انتخاب مي‌كنيد كه افرادي كه به كامپيوتري كه سيستم مديريت پايگاه شما روي آن نصب است دسترسي دارند با همان username و password به SQL Server2005 دسترسي خواهند داشت. حالت دوم هنگامي است كه خود username و password جديد براي كاربر انتخاب مي كنيد. حالت سوم نيز هنگامي است كه به ازاي هر سرويس، كاربر تعريف مي‌كنيد.
http://pnu-club.com/imported/2009/11/1732.jpg جهت مشاهده اندازه واقعی روی آن کلیک کنید.



همان‌طور كه در شكل بالا مي‌بينيد، مي‌توانيد از قسمت پايين سرويس‌هايي كه بعد از نصب مي‌خواهيد اجرا شود را انتخاب كنيد. با انتخاب گزينه NEXT به صفحه بعد مي‌رويد. در اين صفحه نحوه تعيين هويت را براي SQL Server2005 معلوم مي‌كنيد.
براي اين‌ كار دو راه‌حل داريد: اول انتخاب Windows Authentication Mode كه موجب مي‌شود سيستم از روال‌هاي امنيتي سيستم‌عامل استفاده كند و دوم Mixed Mode كه هم روال‌هاي سيستم‌عامل است و هم ساير روال‌هاي تعريف شده براي خود SQL Server. بايد توجه داشت كه با انتخاب Mixed Mode بايد نام و رمز مدير سيستم را معلوم كنيد.
در اينجا دو نكته اساسي وجود دارد: اول اين‌كه Windows Authentication Mode از امنيت بيشتري برخوردار است. دوم اين‌كه، اگر از Mixed Mode استفاده مي‌كنيد، حتماً بايد براي مدير سيستم از يك Password قوي استفاده كنيد. توجه داشته باشيد كه Mixed Mode هنگامي كاربرد دارد كه كاربران زيادي از طريق يك برنامه با SQL Server2005 ارتباط برقرار مي‌كنند.
http://pnu-club.com/imported/2009/11/1733.jpg جهت مشاهده اندازه واقعی روی آن کلیک کنید.



منبع: مجله شبکه

TAHA
11-24-2009, 09:54 PM
جلسه اول: آشنایی با SQL و یک سری اسامی که باید یاد بگیریم

ادامه نصب SQL Server2005......

در صفحه بعد مي‌توانيد نحوه ذخيره‌سازي اطلاعات را از نظر نحوه كد شدن حروف و كاراكترها انتخاب كنيد. توجه داشته باشيد كه اين انتخاب براي حالت كلي است و البته در خروجي شما هنگامي كه مي‌خواهيد خروجي منظم باشد، اثر مستقيم دارد.
يعني هر Collation داراي نظم خاصي است. البته مي‌توانيد به ازاي هر سرويس قرارداد خاصي تنظيم كنيد. براي اين ‌كار كافي است فقط تيك اول صفحه را فعال كنيد. اما فعلاً بهتر است به همان صورت پيش فرض نصب كنيد.
http://pnu-club.com/imported/2009/11/1734.jpg جهت مشاهده اندازه واقعی روی آن کلیک کنید.



در صفحه بعد دو گزينه مي‌بينيد: اولي براي اين‌كه اگر سيستم به مشكلي برخورد كرد، اطلاعات خطاي شما به صورت خودكار براي مايكرو سافت ارسال شود تا بتواند از آن براي بهتر شدن محصولات خود استفاده كند و در عين حال سعي كند مشكل شما را حل كند.
دوم براي اين است كه اطلاعات كاربرد و ويژگي‌هاي مورد استفاده شما از SQL Server2005 به مايكروسافت فرستاده شود تا اگر در كار شما مطلب يا كاربرد جديدي بود، در نسخه هاي بعدي به عنوان قسمتي از راهنما به كاربران عرضه شود.
در صفحه بعد خلاصه‌اي از چيزي كه قرار است روي سيستم شما نصب شود، مشاهده مي‌كنيد و با انتخاب گزينه Install فرآيند نصب آغاز مي‌شود و البته خوشبختانه فرايند پيشرفت در هر سرويسي جداگانه نمايش داده مي‌شود كه اين خود براي كاربر درك بهتري پديد مي‌آورد.
http://pnu-club.com/imported/2009/11/1735.jpg جهت مشاهده اندازه واقعی روی آن کلیک کنید.



و بدين ترتيب نصب SQL Server2005 به پايان مي‌رسد.

منبع: مجله شبکه

TAHA
11-24-2009, 09:55 PM
جلسه دوم: نحوه اتصال به SQL از طریق VB6 و VB.NET

برای وصل شدن به بانک اطلاعاتی SQL Server، باید دو کار رو انجام بدیم. یکی تعریف یک کانکشن(Connection) برای وصل شدن به دیتابیس و تعریف یک دستور(Command) برای ارسال دستورات به بانک اطلاعاتی

شاید اینجا این سوال پیش بیاد که چرا ما باید به بانک اطلاعاتی، دستور بفرستیم؟
فرض کنین می خواین از بانک اطلاعاتیتون فقط اون رکورد هایی رو ببینین که توشون کلمه "سلام" وجود داره، اگه ما نتونیم این موضوع رو به بانک اطلاعاتی بگیم، مجبوریم بعد از دریافت همه رکورد ها از دیتابیس یه برنامه بنویسیم که تمام رکورد هایی که کلمه "سلام" رو ندارن، نشون نده. حالا اگه حجم اطلاعات توی دیتابیس خیلی زیاد باشه، برنامه ما از کار می افته چون داره روی رکورد ها دنبال کلمه "سلام" می گرده و کاربر رو مجبور می کنه بیکار بشینه تا کار برنامه ما تموم بشه. اما SQL این مشکل رو حل کرده و چیزی به نام دستور(Command) تعریف کرده که شما توسط اون می تونین دستورات لازم رو بهش ارسال کنین تا وقت دریافت اطلاعات از دیتابیس نیاز به محاسبه دوباره اون ها نباشه. سرعت پردازش SQL نسبت به برنامه هایی که ما برای پردازش می نویسیم انقدر بالا هستش که هیچ کسی بدون دستورات SQL برنامه ننویسه.(برنامه ای دارم می نویسم که روی 105 میلیون دیتا پردازش های زیادی انجام می ده.انجام این کار با دستورات SQL توی 7 دقیقه انجام می شه ولی با VB احتمالاً بیشتر از 7 ساعت)

پس تا اینجا گفتیم به دو متغییر احتیاج داریم: کانکشن(Connection) و دستور(Command).
برای تعریف این دو متغییر در VB6 باید مراحل زیر رو دنبال کنیم:

از منوی پروژه(Project) گزینه References رو انتخاب می کنیم
http://pnu-club.com/imported/2009/11/1736.jpg

از صفحه باز شده گزینه Microsoft ActiveX Data Objects 6.0 Library رو انتخاب کنین:
http://pnu-club.com/imported/2009/11/1737.jpg

در حقیقت ما با این کار به کتابخانه VB یه سری اشیا اضافه کردیم. می دونم این جمله، عین این کتابای درپیت تو بازار شد به خاطر همین بیشتر توضیح می دم.
وقتی می خوایم یه متغیر رو تعریف کنیم، می نویسیم Dim A as String، وقتی می خوایم نوع متغیر رو تعریف کنیم(در اینجا String) یه لیستی رو VB باز می کنه که اسم انوع متغیر ها توشه. حالا وقتی ما Microsoft ActiveX Data Objects 6.0 Library رو به پروژمون اضافه می کنیم یه سری گزینه به اون لیسته اضافه می شه و در حقیقت ما می تونیم متغیر ها رو با انواع بیشتری تعریف کنیم.

حالا به محیط کد نویسی ویژوال بیسیک برید و در قسمت General بنویسین(قسمت جنرال به بالاترین جایی که می تونین توش کد بنویسین می گن، اون جا شما متغیر های اصلی رو تعریف می کنین که توی همه روال های برنامه به کار می آن):
کد:

Dim cn As New ADODB.connection
Dim rs As New ADODB.Recordset


cn یا کانکشن، همون متغیری هستش که قراره باهاش عمل کانکشن رو انجام بدیم
rs یا رکوردست، همون متغیری هستش که می خوایم باهاش دستورات رو به دیتابیسمون بفرستیم

حالا توی رویداد Form_Load بنویسید:
کد:

cn.Open "Provider=SQLOLEDB.1;User ID=sa;password=;Initial Catalog=Master;Data Source = (Local);"
rs.Open "SELECT * FROM sys.databases", cn, adOpenStatic, adLockOptimistic


همون طور که مشخصه توی خط اول، کانکشن رو ساختیم، به عبارتی که جلوی cn.Open نوشته شده می گن ConnectionString
ما توی ConnectionString به ترتیب این ها رو گفتیم:
Provider=SQLOLEDB.1 یعنی به چه دیتابیسی وصل شو(در اینجا SQL)
User ID=sa نام کاربری رو تعریف کردیم که از طریقش به دیتابیس وارد بشیم. نام کاربری sa حتی روی کامپیوتر شما هم وجود داره، چون وقتی SQL Server رو نصب می کنین خودش به صورت اتومات این نام کاربری رو می سازه
password= در اینجا هم رمز عبور برای نام کاربری sa رو مشخص می کنین، که این نام کاربری احتیاج به رمز نداره
Initial Catalog=Master مشخص کردیم که می خوایم به کدوم دیتابیس وصل بشیم. که اینجا دیتابیس Master هستش(این هم به صورت پیش فرض وجود داره)
Data Source = (Local) و در نهایت گفتیم که به چه سروری وصل بشیم که ما تحت شبکه کار نمی کنیم و اینجا نوشتیم local. اون پرانتز هایی که دور local هستن رو حتماً بذارین!!!

اینجا لازم می دونم یه توضیح برای اون دوستانی بدم که پیش خودشون دارن می گن پس چرا توی این ConnectionString ما آدرس دیتابیس رو مثلاً به صورت C:\DB.mdf نمی دیم:
در حقیقت سیستم SQL یه خورده متفاوته! شما یه سری سرور داری(یا تحت شبکه یا محلی) و روی اونها دیتابیس هاتو می سازی، پس وقت وصل شدن هم لازم نیست از آدرس کاملش استفاده کنی، صرفاً کافیه نام سرور و نام دیتابیس رو ذکر کنی
اینو آماتور ها نخونن: می شه توی ConnectionString آدرس فایل دیتابیس رو هم داد که البته باید Permission دسترسی به اون آدرس رو داشته باشید. این کار فقط زمانی انجام می شه که دیتابیستون تحت سرور تعریف نشده و نمی خواین هم به سرور Attach کنینش

حالا بریم سراغ خط دوم:
ما با خط دوم داریم دستورات رو به دیتابیسمون می فرستیم. جلوی rs.Open یه عبارت نوشته شده که بهش Command گفته می شه.
من در اینجا نمی خوام این Command رو توضیح بدم چون توی درس سوم به صورت مفصل در موردش صحبت می کنیم. تا همین جا بدونین که ما با این دستور به دیتابیس گفتیم همه اطلاعات رو از جدول sys.databases بیار
جلوی Command نوشتیم این دستور رو به کدوم کانکشن بفرسته و به همین خاطر نوشتیم cn
در دو قسمت بعدی نوشتیم adOpenStatic, adLockOptimistic. لازم نیست بدونین که چی نوشتیم ولی در همین حد بدونین که نوع دسترسی به دیتابیس رو مشخص کردیم. برای گرفتن اطلاعات بیشتر می تونین به این آدرس مراجعه کنین: What CursorTypes are available with Jet - adOpenStatic.com (http://www.adopenstatic.com/FAQ/jetcursortypes.asp)

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

اگه خیلی دوست دارین تا نتیجه رو هم ببینن باید این کار رو بکنین که من خیلی اجمالی توضیح می دم چون به بحث ما مربوط نمی شه:
به منوی پروژه(Project) می رین و گزینه Components رو انتخاب می کنین. از لیست باز شده گزینه Microsoft DataGrid Control 6.0(OLEDB) رو انتخاب کنین
و صفحه رو با زدن دکمه OK ببندین، حالا از تولباکس(Toolbox) سمت چپ گزینه اضافه شده رو به فرمتون اضافه کنین. حالا توی همون رویداد Form_Load در آخرین خط(بعد از rs.Open) بنویسین: Set DataGrid1.DataSource = rs
حالا برنامه رو اجرا کنین و از دیدن کاری که کردین لذت ببرین

TAHA
11-24-2009, 09:55 PM
جلسه دوم: نحوه اتصال به SQL از طریق VB6 و VB.NET

توی پست قبلی یاد گرفتیم که چه جوری از طریق VB6 به دیتابیس SQL وصل بشیم. توی این پست می خوایم همین کار رو از طریق VB.NET انجام بدیم.
با توجه به اینکه توی پست قبل اصول کار رو توضیح دادم توی این پست فقط نحوه وصل شدن رو می گم:

توی قسمت General (یا همون Declaration) رفته و متغیرهای زیر رو تعریف کنین:
کد:


Dim Cn As SqlClient.SqlConnection
Dim Comm As SqlClient.SqlCommand
Dim SQL As String



حالا به رویداد Form1_Load رفته و دستورات زیر رو بنویسین:
کد:


Cn.ConnectionString = "Server=(local);user id=sa;Password=;database=Master;"
Cn.Open()
Comm.Connection = Cn
SQL = "CREATE TABLE Books(Name nchar(60),Author nchar(60))"
Comm.CommandText = SQL
Comm.ExecuteNonQuery()



ما تا اینجا تونستیم یک دستور رو به دیتابیس بفرستیم. البته دستوری که ما فرستادیم ساختن جدولی بنام Books بود که 2 تا فیلد داشت(به نام های Name و Author). در حقیقت ما یه دستور به دیتابیس فرستادیم و اگه Error نگیریم یعنی این دستور با موفقیت ارسال شده و توسط SQL هم انجام شده.
ولی اگه ما بخوایم اطلاعات درون جدول رو ببینیم چی؟ یا به طور کلی ما بخوایم دستوری ارسال کنیم که باید خروجی داشته باشه. اون موقع باید مراحل زیر رو بریم:

یک Datagridview روی فرمتون بسازید.
حالا به قسمت General (یا همون Declaration) رفته و بنویسید:
کد:


Dim Cn As New SqlClient.SqlConnection
Dim Comm As New SqlClient.SqlCommand
Dim Da As SqlClient.SqlDataAdapter
Dim Ds As DataSet
Dim SQL As String


حالا به رویداد Form1_Load رفته و بنویسید:
کد:


Cn.ConnectionString = "Server=(local);user id=sa;Password=;database=Master;"
Cn.Open()
SQL = "SELECT * FROM sys.databases"
Da = New SqlClient.SqlDataAdapter(SQL, Cn)
Comm = New SqlClient.SqlCommand(SQL, Cn)
Da.SelectCommand = Comm
Ds = New DataSet()
Da.Fill(Ds, "sys.databases")
DataGridView1.DataSource = Ds.Tables("sys.databases")


حالا می تونین اطلاعات رو روی DataGridView ببینین

TAHA
11-24-2009, 09:56 PM
کلاً کانکشن استرینگ(Connection String) های مختلفی وجود دارن که هر کدوم با هم فرق هایی دارن
من همشون رو براتون می ذارم:



Standard security
Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;


Standard Security alternative syntax
Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connecti on=False;


Trusted Connection
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;


Trusted Connection alternative syntax
Server=myServerAddress;Database=myDataBase;Trusted _Connection=True;


Connecting to an SQL Server instance
Server=myServerName\theInstanceName;Database=myDat aBase;Trusted_Connection=True;​


Trusted Connection from a CE device
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;User ID=myDomain\myUsername;Password=myPassword;


Connect via an IP address
Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;


Enabling MARS (multiple active result sets)
Server=myServerAddress;Database=myDataBase;Trusted _Connection=True; MultipleActiveResultSets=true;


Attach a database file on connect to a local SQL Server Express instance
Server=.\SQLExpress;AttachDbFilename=c:\mydbfile.m df;Database=dbname; Trusted_Connection=Yes;


Attach a database file, located in the data directory, on connect to a local SQL Server Express instance
Server=.\SQLExpress;AttachDbFilename=|DataDirector y|mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;


Using an User Instance on a local SQL Server Express instance
Data Source=.\SQLExpress;Integrated Security=true; AttachDbFilename=|DataDirectory|\mydb.mdf;User Instance=true;


Database mirroring
Data Source=myServerAddress;Failover Partner=myMirrorServer;Initial Catalog=myDataBase;Integrated Security=True;


Asynchronous processing
Server=myServerAddress;Database=myDataBase;Integra ted Security=True;Asynchronous Processing=True;

منبع: www.connectionstrings.com (http://www.connectionstrings.com/)

TAHA
11-24-2009, 09:59 PM
جلسه سوم: دستورات ساده SQL

قبل از شروع جلسه سوم، لازم مي دونم از دوستاني كه نسبت به من لطف داشتن تشكر كنم و همينطور هم به خاطر وقفه اي كه توي آموزش افتاد معذرت بخوام.

توي جلسات گذشته تونستيم SQL Server رو نصب كنيم، و توي برنامه نويسي هامون ازش استفاده كنيم. حالا مي خوايم با يه سري از دستورات آسونش آشنا بشيم.
اولين دستوري كه همه جا آموزش مي دن، دستور SELCET هستش ولي من مي خوام توي اين آموزش سنت شكني كنم و با دستوراتي كار رو شروع كنم كه برنامه نويسان بهش احتياج دارن.

اولين دستوري كه ياد مي گيريم دستوري هست كه يه ديتابيس SQL برامون مي سازه:

کد:


CREATE DATABASE database_name

كه بايد به جاي عبارت database_name، نام ديتابيسي كه مي خوايم بسازيم رو بنويسيم.
اين جا اين سوال پيش مياد كه اگه ما هنوز هيچ ديتابيسي نداريم، بايد توي كانكشن استرينگمون به كدوم ديتابيس وصل بشيم و دستور Create Database رو بهش ارسال كنيم؟
جواب اينه كه وقتي SQL Server نصب مي شه، داراي يه سري ديتابيس هاي آماده هستش كه به همين منظور ساخته شدن. نام ديتابيسي كه ما بايد بهش وصل بشيم Master هستش. پس اگه بخوايم يه Database بسازيم بايد به شكل زير عمل كنيم:

وي بي 6:
کد:


Dim cn As New ADODB.connection
Dim rs As New ADODB.Recordset

cn.Open "Server=(local);Database=Master;Trusted_Connection= True;
", cn, adOpenStatic, adLockOptimistic"
rs.Open "CREATE DATABASE database_name", cn, adOpenStatic, adLockOptimistic"

وي بي دات نت:

کد:


Dim Cn As SqlClient.SqlConnection
Dim Comm As SqlClient.SqlCommand
Dim SQL As String

Cn.ConnectionString = "Server=(local);Database=Master;Trusted_Connection= True;"
Cn.Open()
Comm.Connection = Cn
SQL = "CREATE DATABASE database_name", cn, adOpenStatic, adLockOptimistic"
Comm.CommandText = SQL
Comm.ExecuteNonQuery()


يه نكته مهم اين جا وجود داره و اون هم اينه كه ما اول بايد چك كنيم، ديتابيسي كه مي خوايم بسازيم موجود نباشه و بعدش شروع به ساختش كنيم. حالا از كجا بايد بفهميم ديتابيسمون موجوده يا نه؟
توي ديتابيس Master، يه Table وجود داره به نام Sys.databases (توي نسخه SQL 2000، اسمش sysdatabases) كه نام همه ديتابيس هايي كه روي سرور موجوده، توي اين Table ذخيره مي شه.(توي فيلدي به نام Name)
اينو آماتورها نخونن: براي فهميدن اينكه ديتابيسمون موجوده اول به Master وصل مي شيم بعد با دستور SELECT به sys.databases وصل مي شيم و آخر همون دستور SELECT با قرار دادن يه WHERE متوجه مي شيم كه ديتابيسمون موجوده يا نه كه در حقيقت اين جوري مي شه:
کد:


SELECT Name FROM sys.databases WHERE Name = 'database_name'


تو اين جلسه ياد گرفتيم چطوري يه ديتابيس بسازيم. توي جلسه آينده با ساختن Table آشنا مي شيم

TAHA
11-24-2009, 10:00 PM
جلسه سوم: دستورات ساده SQL

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

قبل از هر چیزی لازم می دونم به فرق بین SQL و Access اشاره کنم. ما توی Access ابتدا دیتابیس رو می ساختیم، بعد Table ها رو می ساختیم بعد به هر Table، فیلد اضافه می کردیم؛ ولی توی SQL ما دیتابیس رو می سازیم، بعد Table ها رو همراه فیلد هاشون اضافه می کنیم.

حالا بریم سراغ ساختن جدول: بعد از اینکه دیتابیسمون رو ساختیم(اگه یادتون باشه، برای ساختش باید به دیتابیسی به نام Master وصل می شدیم) باید از دیتابیس Master، قطع بشیم و به دیتابیسی که ساختیم وصل بشیم. پس باید این دستور رو بنویسیم:

وی بی 6:
کد:


cn.Close
cn.Open "Server=(local);Database=database_name;Trusted_Conn ection=True;
", cn, adOpenStatic, adLockOptimistic"

وی بی دات نت:
کد:


Cn.Close
Cn.ConnectionString = "Server=(local);Database=database_name;Trusted_Conn ection=True;"
Cn.Open()


همونطور که فهمیدین، توی ConnectionString به جای Master نوشتیم database_name (که اسم دیتابیسی هست که ساختیم)
حالا وقتشه که با دستور ساخت جدول و فیلد ها آشنا بشیم. به همین منظور در ادامه کدهامون این دستورات رو می نویسیم:

وی بی 6:
کد:


rs.Open "CREATE TABLE table_name(Name varchar(100),Password varchar(28))", cn, adOpenStatic, adLockOptimistic"

وی بی دات نت:
کد:


Comm.Connection = Cn
SQL = "CREATE TABLE table_name(Name varchar(100),Password varchar(28))", cn, adOpenStatic, adLockOptimistic"
Comm.CommandText = SQL
Comm.ExecuteNonQuery()



مطمئناً فهمیدین که ما با این دستورات، یه Table ساختیم به نام table_name، که شامل دو فیلد به نام های Name و Password هستش.
توجه کنین که بعد از اسم فیلد ها از کلمه varchar استفاده شده. در حقیقت این کلمه داره، نوع فیلد رو مشخص می کنه که اینجا از نوع تکست تعریف کردیم و توی پرانتز هم طول تکستی که می تونه توی اون فیلد قرار بگیره رو گفتیم. توی جلسه بعد در مورد Datatype ها(همونی که نوشتم varchar) بیشتر صحبت می کنیم.

TAHA
11-24-2009, 10:01 PM
جلسه چهارم: دیتا تایپ ها (Data Types)

جلسه قبلی، یادگرفتیم چگونه برای دیتابیسمون جدول بسازیم و فهمیدیم در زمان ساخت جدول باید فیلد های جدول و نوع هرکدوم رو مشخص کنیم. توی این جلسه و چند جلسه آینده می خوایم با نوع فیلد ها یا همون Data Type ها بیشتر آشنا بشیم:

به طور کلی 7 نوع دیتا تایپ وجود داره که تقسیم بندیشون به این شکله:
کد:

1.Exact numerics
2.Unicode character strings
3.Approximate numerics
4.Binary strings
5.Date and time
6.Other data types
7.Character strings


توی این جلسه و جلسه بعد فقط با نوع اول و زیرگروه های اون یعنی Exact numerics آشنا می شیم.

این نوع از دیتا تایپ ها، همون طور که از اسمش هم مشخصه برای عدد هایی با طول مشخص به کار می ره.
مثلاً ما می خوایم یه فیلد درست کنیم که قراره توش شماره ملی افراد درج بشه، با توجه به اینکه می دونیم شماره ملی یه کد 10 رقمی هستش و همیشه طولش همین قدره، پس نوع فیلدمون رو از گروه Exact numerics انتخاب می کنیم.

زیر گروه های Exact numerics عبارت اند از:
کد:

bigint
numeric
bit
smallint
decimal
smallmoney
int
tinyint
money


می ریم سراغ bigint، int، smallint و tinyint.
فضایی که bigint از دیتابیسمون می گیره، 8 بایت هستش؛ فضایی که int از دیتابیسمون می گیره، 4 بایت هستش؛ فضایی که smallint از دیتابیسمون می گیره، 2 بایت هستش و نهایتاً فضایی که tinyint از دیتابیسمون می گیره، 1 بایت هستش.
bigint از -9,223,372,036,854,775,808 تا 9,223,372,036,854,775,807 رو توی خودش جا می ده؛ int از -2,147,483,648 تا 2,147,483,647 رو توی خودش جا می ده؛ smallint از -32,768 32,767 رو توی خودش جا می ده و نهایتاً tinyint از 0 تا 255 رو توی خودش جا می ده.
یادم رفت بگم که int از کلمه integer اومده و به معنی عدد صحیح هستش. پس با این توصیف فهمیدیم که توی دیتا تایپ های بالا عدد 12.6 رو نمی تونیم ذخیره کنیم؛ یا 12 یا 13.

می ریم سراغ decimal و numeric.
توی decimal و numeric می تونیم از اعداد اعشاری استفاده کنیم. به این شرط که طول عددمون از 38 رقم بیشتر نشه. هر عدد اعشاری رو می تونیم با دو مؤلفه تعریف کنیم. یکی تعداد ارقام صحیح، یکی تعداد ارقام اعشاری. تعداد ارقام صحیح یا همون precision، می تونه از 1 تا 38 باشه. تعداد ارقام اعشاری یا همون scale هم می تونه از 0 تا precision باشه. پس اگه precision رو با p و scal رو با s نشون بدیم، یه همچین چیزی داریم: 0 <= p >= s.

توی جلسه بعدی با bit و money آشنا می شیم.

TAHA
11-24-2009, 10:01 PM
جلسه چهارم: دیتا تایپ ها (Data Types)

اول به خاطر وقفه توی آموزش عذرخواهی می کنم، و از همه دوستانی که با تشکرهاشون برای ادامه این آموزش، به من دلگرمی دادن، تشکر می کنم.

می خوایم توی این جلسه، با دیتا تایپ های smallmoney, money و bit که جزو زیرشاخه های Exact numerics هستن آشنا بشیم.

می ریم سراغ money و smallmoney:
این نوع دیتا تایپ همون طور که از اسمش پیداست، برای ذخیره کردن اعدادی هست که بیانگر پول هستن. این اعداد عموماً خیلی طولانی می شن. نوع money می تونه از -922,337,203,685,477.5808 تا 922,337,203,685,477.5807 رو توی خودش جای بده و 8 بایت از فضا رو به خودش اختصاص می ده. نوع smallmoney می تونه از - 214,748.3648 تا 214,748.3647 رو توی خودش جا بده و 4 بایت رو مصرف می کنه.

می ریم سراغ bit:
bit یک دیتا تایپه که دو ورودی رو قبول می کنه. 0 و 1!!! مثلاً به درد ستون هایی مثل جنسیت می خوره که مثلاً 0 برای مرد و 1 برای زن هستش.

تا اینجا در مورد دیتا تایپ Exact numerics صحبت کردیم و تمام زیرشاخه هاشو با هم مرور کردیم.

توی جلسه بعد، با نوع Unicode character strings و زیرشاخه هاش آشنا می شیم.

aras11
12-16-2011, 04:23 PM
سلام جلسات بعدی از کجا ببینیم کدوم قسمته با تشکر