آژانس هواپیمایی
pop up

ارتباط ويژوال بيسيك با ديتابيس

شروع موضوع توسط saalek ‏28 نوامبر 2005 در انجمن Visual Basic 6

  1. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها
    اول سلام مي كنم به تمامي اساتيد و كاربران گرامي اين سايت. چون اين پست دوم من است و اجازه مي گيرم از سروران گرامي.
    من در اين زمينه هيچ تجربه اي ندارم. مي خواهم در اين تاپيك از تجربيات دوست گرامي بلا بلا و بقيه اهل فن كمك بگيرم.
    البته خودم تمام انرژي خود را مي گذارم تا مطلب پيدا كنم ، ولي به راهنمايي دوستان كاملا محتاجم.
    خواهشمندم هر جا نكته اي هست بگوييد و اگر اشتباه چيزي را گفتم ، بي ملاحظه تصحيح كنيد.
    هدف يك نوع يادگيري جمعي است . و من اجازه مي خواهم هر يك از دوستان چيزي ياد داد ، در فروم ديگر بي ذكر فروم و فقط ذكر اسم گوينده استفاده كنم. چون مسئله مهم براي من همكاري بين فرومي است براي حل اين قضيه كه براي خيلي ها مثل من معضلي شده. يعني:
    ارتباط دادن ويژوال بيسيك با ديتابيس.
     
  2. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها
    ado چيست؟
    براي شروع دستورات اوليه و محيط كار را معرفي كنيد.
    .دستورات
    sql
    را چطور بايد استفاده كنيم؟
     
  3. emad86_20011

    emad86_20011 Registered User

    تاریخ عضویت:
    ‏4 فوریه 2004
    نوشته ها:
    176
    تشکر شده:
    2
    محل سکونت:
    Mashhad, Iran
    تاپيك خوبيه!! من هم تو ديتابيس صفرم!! اگه يكي بياد آموزش بده خوشحال ميشم!!:)
     
  4. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها
    night11
    ADO (Activex Data Object) یک Component object model هست شی ء برای دسترسی به منابع داده .
    ADO یک لایه بین زبان برنامه نویسی و OLE DB که به توسعه دهندگان اجازه می دهد برنامه ای بنویسند که به داده ها دسترسی داشته باشند .بدون اینکه اینکه بدانند پایگاه داده چگونه پیاده سازی شده .
    شما فقط برای ارتباط باید از پایگاها داده اطلاع داشته باشید .
    برای دسترسی به پایگاه داده وقتی که از ADO استفاده می کنید نیازی به دانستن دستورات SQL ندارید .
    هر چند یکبار می توانید ADO را بوسیله ی دستورات SQL اجرا کنید .
    اشکال این کار این است که این معرفی کردن وابستگی بر روی پایگاه داده ایجاد می کند .

    ADO شامل چندین سطع شی ء هست .

    Connrction : نمایش ارتباط با پایگاه داده
    Recordsetدسترسی به یک دسته از رکوردهای پایگاه داده :
    Command : نمایش یک دستور SQL
    Record :نمایش یک دسته از داده ها ، بطور نمونه از یک منبع متفاوت یک پایگاه داده
    Stream : نمایش مسیر داده ها از یک فایل متنی یا صفحه وب
    Error : ذخیره کردن خطاها
    Field : نمایش فیلدهای پایگاه داده
    Parameter : نمایش پارامترهای SQL
    Property : ذخیره اطلاعات شی ها

    ADO برای ارتباط با زبانهای سطح بالا استفاده می شود .
    همانند محیط VBScript in an Active Server Pages (ASP) و Visual Basic حتی Delphi که محیط توسعه مایکروسافت رقیب برلند .
    هم اکنون اجازه داده شده که از ADO برای اتصال به پایگا ههای داده مختلف استفاده کنید .
    در چارچوب جدید برنامه نویسی .NET مایکروسافت یک نسخه بروز از ADO رو حاضر کرده که ADO.NETنامیده می شود که ساختار شی آن کاملا با قبلی متفاوت است .

    منبع : http://en.wikipedia.org/wiki/ADO

    يك امتياز به اونوري ها
     
  5. emad86_20011

    emad86_20011 Registered User

    تاریخ عضویت:
    ‏4 فوریه 2004
    نوشته ها:
    176
    تشکر شده:
    2
    محل سکونت:
    Mashhad, Iran
    خيلي ممنون!! فقط اگه يه sample هم بزاري خيلي خوبه راحت تر ميشه فهميد!!:rolleyes:
     
  6. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها
    سلام عماد جان . ممنون از حمايتت.
    .
    -----------------------------------------
    چيزي كه من از بحثهاي بالا فهميدم اين بود كه ado يك شي هست از نوع com .
    حالا com را دقيقا نمي دونم چيه. اگر كسي توانست يك توضيحي بدهد.
    ولي اين ado ، انگار به دليل شي بودنش يكسري دستورات داره براي ارتباط با ديتا بيس.
    حالا اولين سئوال من اينه كه :
    آيا اين دستورات متعلق به اين شي است يا دستورات sql است. يك كم زير ديپلم بگيد تا ما هم ياد بگيريم.
    Ole db چيه؟ كلا راجع به ole هم به زبان ساده يك كم توضيح بدهيد. چون مي خواهيم اين تاپيك براي همه قابل استفاده باشه. اگر هم فعلا كسي شرحي آماده نداره، مهم نيست. فعلا شروع مي كنيم به استفاده از دستورات، بعدا تئوري ها را بحث مي كنيم.
    ((معرفی کردن وابستگی بر روی پایگاه داده ایجاد می کند .))
    ايني كه گفتيد يعني چه؟ اين وابستگي چه طوري ايجاد شده و چه مشكلاتي ايجاد مي كند و راه رفعش چيست؟ حداقل يكي از اين 3 سئوال را يك نفر جواب بدهد.

    كلا ado چيه؟ آيا جزو ويژوال بيسيك و دات نت هست يا جدا نصب ميشه؟ آيا قابل جدا كردن است از ويژوال بيسيك و asp و دات نت؟

    اگر ميشه در ويژوال بيسيك روش استفاده از اين دستورات را بگيد. البته اگر وقت نداريد ، بعدا من خودم پيدا مي كنم از سورسها.
    فعلا تا اينجا خيلي خوب بود . دست شما درد نكنه.
    .
     
  7. boxilink
  8. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها
    night11:

    خواهش می کنم !
    ============================
    حالا com را دقيقا نمي دونم چيه. اگر كسي توانست يك توضيحي بدهد.
    ============================
    Component Object Model یک پایگاه برای اجزاء نرم افزارها است و برای فعال کردن ارتباط وپیوند زدن اجرا و ایجاد اشیای پویا در هر زبان برنامه نویسی که از این تکنواوژی پشتیبانی میکند .
    Com اغلب در جهان توسعه نرم افزاری بعنوان لفظ حفاظ استفاده می شود که تکنولوژی های OLE, ActiveX, COM+ and DCOM را در احاطه قرار داده است .
    COM در سال 1993 بوجود آمد اگر چه مایکروسافت در سال 1997 به آن رسمیت بخشید .
    هر چند که COM طی چند دوره تکمیل شده اما اصولا با Microsoft Windows عرضه می شود .

    ============================
    آيا اين دستورات متعل به اين شي است يا دستورات sql است. يك كم زير ديپلم بگيد تا ما هم ياد بگيريم.
    ============================
    گفتم که برای استفاده از ADO نیازی به SQL نیست و و قتی که نیازی نباشه و ما از SQL استفاده کنیم برنامه بانک اطلاعاتی ما از واسط SQL استفاده کرده
    در واقع ما بدون استفاده از SQL و فقط با استفاده از ADO هم می توانیم برنامه بانک اطلاعاتی بنویسیم .

    ============================
    Ole db چيه؟ كلا راجع به ole هم به زبان ساده يك كم توضيح بدهيد.
    ============================
    یک API هست که مایکرو سافت برای دسترسی به بانک های اطلاعاتی طراحی کرده است .
     
  9. mostafa_gm

    mostafa_gm Registered User

    تاریخ عضویت:
    ‏4 آپریل 2005
    نوشته ها:
    1,719
    تشکر شده:
    231
    محل سکونت:
    My House
    ببخشید ولی من که از روند این تاپیک چیزی سر در نیاوردم!!
     
  10. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها
    روندش مهم نيست.
    مهم بحث مورد نظر است.
    اگه توضيح راجع به روندش مي خواهيد بگم كه من در 2 فروم به طور همزمان بحث را دنبال مي كنم تا زودتر به نتيجه برسيم و از تجربيات افراد بيشتري استفاده بشه. چون در اين بحث زياد رفرنس موجود نيست و كار بيشتر تجربي است و من مي خواهم باعث انتقال تجربيات اهل فن باشم. هم به خود . هم ديگران. در ضمن من مطالب اين تالار را دنبال مي كردم و از اطلاعات و تجربيات شما و بقيه دوستان مطلعم.

    و مي خواهم كه به ما كمك كنيد.
    .
     
  11. phyma

    phyma کاربر تازه وارد

    تاریخ عضویت:
    ‏21 اکتبر 2004
    نوشته ها:
    39
    تشکر شده:
    0
    سلام
    اين بحث خوبه من خودم 5 سال پيش سروع کردم به يادگيري اون که اون موقه منبع دست درموني نبود ولي الان منبع زياده و با توجه به آمدن .net 2005 ديگه بايد رفت سراغ کار با اون و ارتباطش با اين ويرايش جديد. من خودم تازه س ماه هست شروع کردم اول کارم بيايد بيشتر توي اين زمينه با مطرح کردن يک سورس و بحث در مورد اون پيشرفت کنيم چون فقط توضيح اصلا بدرد نمي خوره
    ;)
     
  12. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها
    سلام. من دقيقا دنبال همين كار هستم.
    سورسهايي را هم دانلود كرده ام.
    راجع به دات نت هم بايد بگم كه اين تاپيك به درخواست كساني ايجاد شده كه هنوز مثل خود من با ويژوال بيسيك كار مي كنند.
    پس من سورسها را مي گذارم. دوستان در شرح عمليات كمك كنند.
    اگر منبع يا سورسي هم كسي داشت لطف كند.
     
  13. mostafa_gm

    mostafa_gm Registered User

    تاریخ عضویت:
    ‏4 آپریل 2005
    نوشته ها:
    1,719
    تشکر شده:
    231
    محل سکونت:
    My House
    آها حالا فهمیدم.
    خوب پس بهتره که سوالات و جوابهای اونها دقیقا مشخص و دسته بندی بشه تا یکی که میخواد بحث این تاپیک رو مطالعه کنه سردرگم نشه.
     
  14. avajang.com .leftavajang.com.right
  15. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها
    چشم . بيشتر رعايت مي كنم.
    تا حالا يك نفر جواب سئوالات من را داد كه با ذكر اسمش نقل كردم. اگر سئوال و جوابي بود عينا منتقل مي كنم.
    با تشكر.
     
  16. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها
    گزارش كار:
    روي 10 تا سورس كار كردم. ولي نتونستم چيزي ازشون در بيارم.
    قسمت ديتابيس ويژوال بيسيك msdn را خواندم ، ولي خيلي msdn بد گفته و بيشتر گيج شدم
    البته به علت مفصل بودنش و ضعيف بودن انگليسي من ، اين حرف را مي زنم
    الان در حال دانلود سورس از سايت پلانت هستم
    اگر سايتي كه ديتابيس را ساده شرح داده بلديد بگيد
    .
     
  17. emad86_20011

    emad86_20011 Registered User

    تاریخ عضویت:
    ‏4 فوریه 2004
    نوشته ها:
    176
    تشکر شده:
    2
    محل سکونت:
    Mashhad, Iran
    موافقم, msdn خيلي كم توضيح داده!! من خودم هم ازش هيچي سر در نميارم!!
     
  18. zapata-es24

    zapata-es24 Guest

    تاریخ عضویت:
    ‏24 نوامبر 2005
    نوشته ها:
    35
    تشکر شده:
    0
    سلام به برو بچ صفر کیلومتر:D
    خوشحالم که افرادی مثل خودم رو پیدا کردم. :) :rolleyes:
    خب ببینید از این دستور چیزی میفهمید. طریقه استفاده از دستورات sql در ado هست. راحته :p
    "Adodc1.ConnectionString = " Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\DATABASE NAME.mdb
    " Adodc1.RecordSource = "select FIELD1,FIELD2,FIELD X...... from DATABASE NAME where SHART
    Adodc1.Refresh
    خب سطر اول کار معرفی نوع دیتا بیس رو انجام میده
    در سطر دوم جستجو انجام میشه . نکته اینه که دستورات SQL در داخل جفت " " قرار میگیرند.
    سطر سوم هم درصورتی که یک جدول یا DATAGRID به کنترل ADO متصل شده باشه جدول را REFRESH میکنه.
    :wacko: :wacko: :wacko: ;) ;)
    نمیدونم به دردتون میخوره یانه.
    فعلا بای
    خوش باشید
     
  19. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها
    آقا خيلي خوب بود.
    و چسبيد ولي كم بود.
    يكسري هم سئوال برام پيش اومد:
    اول اينكه آيا بايد شي adodc را بر روي فرم اضافه كنيم.
    دوم آيا اينها دستورات sql است يا دستورات متعلق به شي adodc است؟
    سوم چطور از اين دستورات براي نمايش جدول ديتابيس لود شده (مثلا در datagird ) استفاده بشه.
    چهارم : بيشتر توضيح بده. اگه ميشه جوري بنويس كه بشه اجرا كرد. من خطا دريافت كردم. و با توضيحات كم شما نمي دونم چطور برنامه را تكميل كنم.
    پنجم : كلا بيشتر رو كن.
    ششم : لطف كردي.
    راجع به اين كه فرموديد دستورات اس كيو ال داخل كوتيشن قرار مي گيره هم راهنمايي خوبي بود.
    .
     
  20. zapata-es24

    zapata-es24 Guest

    تاریخ عضویت:
    ‏24 نوامبر 2005
    نوشته ها:
    35
    تشکر شده:
    0
    بازم سلام
    اولا باید یک کنترل ADO ویک کنترل DATAGRID روی فرم بزارید.
    دوما : راست کلیک روی ADO و رفتن روی تب GENERAL بعدش کلیک روی USE CONNECTION STRING
    بعدش کلیک روی دکمه BUILD
    در تب PROVIDER انتخاب گزینه MICROSOFT JET 4.0 OLE DB PROVIDER
    بعد در تب CONNECTION انتخاب فایل اطلاعاتی خودتون
    بعد هم OK
    در تب RECORDSOURCE قسمت COMMAND TYPE گزینه ADCMDUNKNON رو انتخاب کرده بعدشم در قسمت COMMAND TEXT یک دستور SQL بنویس مثلا بنویس SELECT * FROM TABEL NAME
    بعدش OK کن
    خب حالا فقط باید DATAGRID خودت رو به ADO متصل کنی . FVHD HDK;HV روی DATAGRID کلیک میکنی و از پنجره PROPERTIES قسمت DATASOURCE گزینه ADODC1 رو انتخاب کن
    بعدشم برنامه خودت رو اجرا کن . حالا دیگه باید لیست همه اطلاعات جدولت توی DATAGRID اومده باشه.

    :wacko: :wacko: :wacko: :wacko: کف کردم به خدا.
    مشکلی بود بازم بپرس سعی میکنم اگه سوادشو داشتم جواب بدم.:D
    خوش باشی جوون.:happy:
     
  21. zapata-es24

    zapata-es24 Guest

    تاریخ عضویت:
    ‏24 نوامبر 2005
    نوشته ها:
    35
    تشکر شده:
    0
    بازم سلام
    اولا باید یک کنترل ADO ویک کنترل DATAGRID روی فرم بزارید.
    دوما : راست کلیک روی ADO و رفتن روی تب GENERAL بعدش کلیک روی USE CONNECTION STRING
    بعدش کلیک روی دکمه BUILD
    در تب PROVIDER انتخاب گزینه MICROSOFT JET 4.0 OLE DB PROVIDER
    بعد در تب CONNECTION انتخاب فایل اطلاعاتی خودتون
    بعد هم OK
    در تب RECORDSOURCE قسمت COMMAND TYPE گزینه ADCMDUNKNON رو انتخاب کرده بعدشم در قسمت COMMAND TEXT یک دستور SQL بنویس مثلا بنویس SELECT * FROM TABEL NAME
    بعدش OK کن
    خب حالا فقط باید DATAGRID خودت رو به ADO متصل کنی . برای اینکار روی DATAGRID کلیک میکنی و از پنجره PROPERTIES قسمت DATASOURCE گزینه ADODC1 رو انتخاب کن
    بعدشم برنامه خودت رو اجرا کن . حالا دیگه باید لیست همه اطلاعات جدولت توی DATAGRID اومده باشه.

    :wacko: :wacko: :wacko: :wacko: کف کردم به خدا.
    مشکلی بود بازم بپرس سعی میکنم اگه سوادشو داشتم جواب بدم.:D
    خوش باشی جوون.:happy:
     
  22. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها
    ابتدا از منوي پروجكت ، زير منوي كامپوننت ، دو شي microsoft ado data control 6.0(oledb) و microsoft datagrid control 6.0(oledb) را به جعبه ابزار ( toolbox ) افزودم.

    بعد هر دو را روي فرم قرار دادم.

    بعد راست كليك كردم روي كنترل ado و پراپرتي را انتخاب كردم. يك پنجره باز شد. Tab اول general بود. در اين تب ، 3 آپشن باتن موجود بود ، سومي use connection string بود.
    با زدن دكمه build يك پنجره ديگر باز شد به نام data link property ، در تب اول كه تب provider بود ، من انتخاب microsoft jet 4.0 ole db provider را برگزيدم. در تب دوم كه تب connection بود ، محلي براي browse داشت. كه فايلي كه با اكسس ساخته بودم را برگزيدم.
    بعد ok كردم. تا به پنجره باز قبلي برگرديم. در اين پنجره به تب recordsource رفتم و در آنجا در كومبو باكس command type ، گزينه 8-adCmdUnknown را انتخاب كردم. و در همين تب ، كمي پايين تر ، در قسمت command text(sql) اين دستور را نوشتم:

    select * from table1​

    چون اسم جدول داخل ديتابيس من
    table1
    بوده.

    بعدش هم ok كردم.

    حالا مي خواهم datagrid خود را به ado متصل كنم.
    پس روي datagrid كليك مي كنم تا بروم به پنجره پراپرتي و بعد صفت datasource را adodc1 قرار دادم.

    بعد برنامه را اجرا كردم. درسته جدول در datagird نمايان است. دست شما درد نكنه. خسته هم نباشيد. عكسشم اينه:

    [​IMG]
    .
    البته درست نيست سئوال الان بپرسم چون خسته شديد ، ولي آن كدهايي كه قبلا ذكر كرديد اينجا استفاده نشد. فكر كنم ميشه استفاده كرد. اگر ميشه چند دستور sql و روش استفاده اش را بگيد و بگيد كه دستورات sql آيا همه جا مجازند استفاده بشوند در ويژوال بيسيك يا شرايطي داره.