شنبه پنجم فروردين 1385 ساعت 13:17

ایجاد ارتباط با پایگاه داده رمزگذاری شده

» شاید یکی از مهمترین جنبه های برنامه نویسی پایگاه داده جلوگیری از دسترسی افراد غیرمسئول به اطلاعات درون بانک اطلاعاتی است . یعنی اگر افرادی که صلاحیتی برای دسترسی به اطلاعات از طریق برنامه ای که شما نوشته اید را ندارند بتوانند به راحتی از طریق باز کردن پایگاه داده اطلاعات و داده های ذخیره شده را دستکاری نمایند فاجعه ای وحشتناک رخ خواهد داد . برای همین من امروز می خواهم روش ایجاد ارتباط با پایگاه داده ای که شما قبلا توسط خود برنامه Access رمزگذاری کرده اید را به دو روش ADO و DAO را آموزش دهم .

» باز کردن پایگاه داده با استفاده از DAO : در این روش شما نمی توانید به طور مستقیم با استفاده از کنترل Data با پایگاه داده ارتباط برقرار کنید . برای همین باید از روش کد نویسی اقدام کنیم . برای این منظور یک کنترل Data روی فرم خود قرار دهید . توجه داشته باشید که ما از کنترل برای حرکت به رکورد بعدی یا کارهایی که قبلا با آن انجام می دادیم استفاده نخواهیم کرد . برای همین بهتر است خاصیت Visible = False باشد .

» در قسمت General تعریف های زیر را ایجاد می کنیم :

Dim db As DAO.Database

Dim rs As DAO.Recordset

با توجه به این تعریفات از db برای ایجاد ارتباط و از rs به عنوان رکوردست استفاده خواهیم کرد . کد های زیر را در Form_Load برای برقراری ارتباط بنویسید :

()Private Sub Form_Load

("Set db = OpenDatabase(App.Path & "\db.mdb", False, False, ";pwd=Media

("Set rs = db.OpenRecordset("SELECT * FROM Sample

End Sub

» همانطور که می بینید من کلمه عبور پایگاه داده را به طور پیش فرض Media قرار داده ام . ولی شما باید کلمه عبور پایگاه داده خود را به جای آن قرار دهید .

» همانگونه که ما در هنگام استفاده از کنترل Data از رکوردست آن برای انجام کارهایی از قبیل جستجو و یا حرکت در بین رکوردها استفاده می کردیم ، حال باید این کارها را با rs انجام دهیم . نکته مهمی که در اینجا باید به آن توجه داشته باشید این است که شما اگر بخواهید اطلاعات درون یک فیلد را در یک TextBox نمایش دهید باید به طور دستی داده ها را از فیلد مورد نظر به جعبه متن مورد نظر انتقال دهید .

در این حال شما نباید خاصیت های DataSource و DataField جعبه متن خود را تنظیم کند :

()Private Sub CmdNext_Click

rs.MoveNext

("Text1= rs("Name

End Sub

در این مثال کد مربوط به دکمه ای که به رکورد بعدی حرکت می کند را می بینید که محتویات فیلد نام را در Text1 نمایش می دهد .

» همانطور که دیدید استفاده از DAO برای اتصال به پایگاه داده با کمی کد نویسی بیشتر همراه است ولی اگر شما مایل به این گونه از کارها نیستید پیشنهاد می کنم که از ADO استفاده کنید .

» باز کردن پایگاه داده با استفاده از ADO : کنترل Adodc که شکلی شبیه به کنترل Data دارد نماینده ADO می باشد و دستورات آن بسیار شبیه به کنترل Data است . با استفاده از این ابزار به راحتی می توان با پایگاه داده رمزگزاری شده ارتباط برقرار نمود . برای این کار شما باید ابتدا این کنترل را که با نام MicroSoft ADO Data Control 6.0 درلیست Componnent ها قرار دارد به جعبه ابزار خود اضافه کنید . سپس آن را روی فرم خود قرار داده و دستورات زیر را برای ایجاد ارتباط در Form_Load بنویسید :

()Private Sub Form_Load

_& ";Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0

" Data Source=" & App.Path & "\db.mdb;Jet OLEDB:Database Password=Media;"

"Adodc1.RecordSource = "SELECT * FROM Sample

Adodc1.Refresh

End Sub

» در واقع شما با نوشتن این کد فقط عمل ایجاد ارتباط را انجام داده اید و دیگر نیازی به کار اضافی ندارید و می توانید کارهای قبلی خود را به راحتی انجام دهید . یعنی هم از کنترل Adodc برای حرکت در بین رکوردها استفاده کنید و هم خاصیت DataSource و DataField سایر کنترل ها را در زمان طراحی تنظیم نمایید .

» این هم برنامه های نمونه هر دو روش ذکر شده برای دانلود .