نمایش نتایج: از شماره 1 تا 4 , از مجموع 4

موضوع: نحوه ی اتصال vb6 و sql 2008 از طریق کدنویسی در vb6

  1. #1

    32 نحوه ی اتصال vb6 و sql 2008 از طریق کدنویسی در vb6

    سلام،
    میشه لطفانحوه ی برقراری ارتباط از طریق کد نویسی در ویژوال بیسیک 6 با sql 2008 رو توضیح بدید؟

  2. #2
    معاونت سایت
    تاریخ عضویت
    2012/06/05
    محل سکونت
    Tabriz
    نوشته ها
    14,398

    Eh

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

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

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

    از منوی پروژه(Project) گزینه References رو انتخاب می کنیم


    از صفحه باز شده گزینه Microsoft ActiveX Data Objects 6.0 Library رو انتخاب کنین:


    در حقیقت ما با این کار به کتابخانه 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. لازم نیست بدونین که چی نوشتیم ولی در همین حد بدونین که نوع دسترسی به دیتابیس رو مشخص کردیم. برای گرفتن اطلاعات بیشتر می تونین به این آدرس مراجعه کنین: 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
    حالا برنامه رو اجرا کنین و از دیدن کاری که کردین لذت ببرین

  3. #3

    پیش فرض

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

  4. #4

    پیش فرض

    کسی میتونه راهنمایی بکنه لطفا؟
    مطالب بالا کامل خونده شده
    اما درست کار نکرد،
    اول اینکه پایگاه داده و جداول و فیلدهای من از قبل ایجاد شده است که در آن لینک به این موضوع اشاره ای نشده است.
    دوم اینکه پایگاه داده ی من User Name و Password ندارد و در هنگام کدنویسی در لینک ذکر شده، به این موضوع هیچ اشاره ای نشده است.

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •