نمایش نتایج 1 تا 4 از 4

نام تاپیک: کار با پایگاه داده خارجی بوسیله DAO

  1. #1
    کاربر دائمی آواتار id1385
    تاریخ عضویت
    آبان 1387
    محل زندگی
    توی رویاهام!!
    پست
    467

    کار با پایگاه داده خارجی بوسیله DAO

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

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

    محتویات کلاس:

    Public Function conectToDB(dbPath As String, Optional dbPassword As String) As Boolean


    همونطور که از اسمش پیداست کار اتصال با پایگاه داده ات و دوتا ورودی داره که یکی آدرس فایل مورد نظر و دیگر رمز فایل است که در صورت نیاز وارد می شود، قبل ازهر کاری باید این عمل انجام شود.

    روش استفاده :
    اول باید یک اینستنس از کلاس میگیریم به این شکل

    Dim dB As New dBA


    که dBA همون نام کلاس هستش

    رمزدار

    dB.conectToDB CurrentProject.Path & "\dB\data1.mdB", "123456789"


    بدون رمز

    dB.conectToDB CurrentProject.Path & "\dB\data1.mdB", ""
    ' or
    dB.conectToDB CurrentProject.Path & "\dB\data1.mdB"



    فانکشن بعدی

    Public Function setSql(StrSql As String) As Boolean


    همونطور که از اسمش پیداست sql رو میگیره
    به این صورت:

    dB.setSql "SELECT MAX(userId) AS highest FROM tbl_a"
    ' or
    dB.setSql "tbl_a"
    ' or
    dB.setSql "SELECT * FROM tbl_a WHERE userId ='" & newUserId & "'"

    برای این فانکشن یا متد هر نوع sql ای که قابلیت اجرا داشته باشه را میشه ارجاع داد


    متد بعدی

    Public Function isValidProcess() As Boolean

    این متد چک میکنه که آیا پردازش قابل اجرا هست یا نه، به این صورت که وقتی یک sql ارجاع داده میشه اگر recordset با خطا مواجه باشه و ست نشده باشه false رو بر میگردونه

    متد آخر این کلاس

    Public Function gRecordCount() As String

    اینم تعداد رکوردهای سلکت شده رو برمیگردونه هر چند اینو توی پردازش هم میشه گرفت


    بعد از اینکه رکوردست ایجاد شد میتوان بقیه پردازش رو اعم از select, add,delete,update بوسیله dB.rst. پیگیری کرد
    مانند کد زیر که وظیفه اففزودن یک مورد را بعهده میگیره:

    'add new item
    If (dB.isValidProcess) Then
    dB.rst.AddNew
    dB.rst.Fields("userId") = "sampleID"
    dB.rst.Fields("name") = "That's User "
    dB.rst.Fields("date") = Now
    dB.rst.Update

    'close database
    dB.cloesDB
    Else
    'Process not valid
    MsgBox "invalid"
    End If



    نمونه استفاده کامل از کد :

    Option Compare Database


    Private Sub Command0_Click()
    'create instance of class
    Dim dB As New dBA
    Dim newUserId As String
    newUserId = 0


    'connect to database using custom params
    dB.conectToDB CurrentProject.Path & "\dB\data.mdB", "8661645875"


    'get highest value in userid field and sum +1
    dB.setSql "SELECT MAX(userId) AS highest FROM tbl_a"
    If IsNull(dB.rst.Fields("highest")) = False Then
    newUserId = dB.rst.Fields("highest")
    End If
    newUserId = CInt(newUserId) + 1


    'select a table
    dB.setSql "tbl_a"

    'add new item
    If (dB.isValidProcess) Then
    dB.rst.AddNew
    dB.rst.Fields("userId") = newUserId
    dB.rst.Fields("name") = "Tha's User " & newUserId
    dB.rst.Fields("date") = Now
    dB.rst.Update


    'select last inserted data
    dB.setSql "SELECT * FROM tbl_a WHERE userId ='" & newUserId & "'"
    If (dB.gRecordCount > 0) Then
    MsgBox "new row:" & vbNewLine & "name: " & dB.rst.Fields("name") & vbTab & "date: " & dB.rst.Fields("date"), vbInformation, "test"
    End If


    'close database
    dB.cloesDB
    Else
    'Process not valid
    MsgBox "invalid"
    End If
    End Sub






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

  2. #2
    کاربر دائمی آواتار id1385
    تاریخ عضویت
    آبان 1387
    محل زندگی
    توی رویاهام!!
    پست
    467

    نقل قول: کار با پایگاه داده خارجی بوسیله DAO

    با سلام
    فرمی برای برنامه اضافه شده که به صورت پیشرفته تری اطلاعات رو ثبت میکنه، فایل مربوطه نیز اتچ شده.


    موفق باشید
    تصویر فرم :
    عکس های ضمیمه عکس های ضمیمه
    فایل های ضمیمه فایل های ضمیمه

  3. #3
    کاربر دائمی آواتار abdoreza57
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    دنياي آمال و آرزوها
    پست
    499

    نقل قول: کار با پایگاه داده خارجی بوسیله DAO

    سلام

    برنامه خوبی ارایه نمودید ققط نمیدونم چرا سرعت عملیات کند میشه تو این روش !

    هم موقع باز شدن برنامه هم با زیاد شدن حجم جدولها سرعت جستجو پایین میاد !

    و یه سوال : چرا از خاصیت لینک کردن جدول استفاده نمیکنید و میایید با کد نویسی این کار را انجام میدید ؟
    لطفا روان توضیح بدید تا منم بتونم استفاده کنم

    خدا نگهدار

  4. #4
    کاربر دائمی آواتار id1385
    تاریخ عضویت
    آبان 1387
    محل زندگی
    توی رویاهام!!
    پست
    467

    نقل قول: کار با پایگاه داده خارجی بوسیله DAO

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

    در مورد لینک هم، نمیدونم شاید من با کدنویی راحت ترم، در کدنویسی دستم بازتره و به نظرم برنامه منعطف تر میشه تا اینکه از خاصیت bound یا link خود اکسس استفاده کنم هرچند قبلاً از هر دو روش استفاده کردم
    اینم بگم که من با اکسس دیگه کار نمیکنم.

    برنامه قبلی: https://barnamenevis.org/showthread.p...=1#post2160842

    موفق باشید

تاپیک های مشابه

  1. سوال: کار با پایگاه داده با استفاده از dao در visual studio 2010
    نوشته شده توسط 30rabi در بخش برنامه نویسی در 6 VB
    پاسخ: 1
    آخرین پست: پنج شنبه 03 فروردین 1391, 21:28 عصر
  2. یه راه حل برای کار با پایگاه داده
    نوشته شده توسط adasahar در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: دوشنبه 21 فروردین 1385, 21:17 عصر
  3. یک کلاس کامل برای کار با پایگاه داده اراکل
    نوشته شده توسط habedijoo در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 0
    آخرین پست: چهارشنبه 17 اسفند 1384, 16:18 عصر
  4. مشکل کار با پایگاه داده Access در شبکه با استفاده از ADO ؟؟؟
    نوشته شده توسط hghodsi در بخش برنامه نویسی در Delphi
    پاسخ: 2
    آخرین پست: چهارشنبه 28 مرداد 1383, 22:51 عصر
  5. کار با پایگاه داده ها
    نوشته شده توسط mehrnoosh در بخش مطالب مرتبط با بانکهای اطلاعاتی در VB6
    پاسخ: 5
    آخرین پست: جمعه 24 بهمن 1382, 14:36 عصر

قوانین ایجاد تاپیک در تالار

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