وبلاگ تخصصي برنامه نويسي با VB

Server-Side ActiveX Dll Programming - بخش سوم


خلاصه ای بر چگونگی کار با بانک های اطلاعاتی ( Database ) در وی بی :
+ برای آشنايي کامل با چگونگی کار با بانک های اطلاعاتی در ويژوال بيسيک و بطور کلی Database Programming به کتاب برنامه نويسی بانک های اطلاعاتی در ويژوال بيسيک انتشارات نص رجوع کنيد .

قبل از اينکه چگونگی نوشتن يک کلاس Database برای استفاده در ASP را آموزش دهم ، مقدمه ای بر چگونگی کار با بانک های اطلاعاتی در وی بی را شروع می کنم .
برای کار با بانک های اطلاعاتی در ويژوال بيسيک روشها و امکانات مختلفی وجود دارد که يکی از بهترين آنها استفاده از تکنولوژی ( ADO ( ActiveX Data Object می باشد . بدون هيچ توضيحی در مورد ساختار اين تکنولوژی و نيز ساير روشهای ديگر ، به سراغ روش استفاده از اين تکنولوژی می روم :
- برای کار با ADODB ابتدا بايستی از Reference ها مورد Microsoft ActiveX Data Object را انتخاب کرد .
- قدم بعد تعريف يک شی ADO Connection برای اتصال به بانک اطلاعاتی است :

Dim cn As ADODB.Connection


- سپس بايستی اين شی ADO Connection را ايجاد نمود :

Set cn = New ADODB.Connection


- همچنين بايستی يک شی ADO Recordset برای گرفتن مجموعه ای از رکوردهای بانک اطلاعاتی تعريف کرد :

Dim rs As ADODB.Recordset


- حال بايستی اتصال به بانک اطلاعاتی را باز نمود . در اين مرحله با توجه به نوع بانک اطلاعاتی و اتصالی که می خواهيم داشته باشيم عبارت اتصال ممکن است متفاوت باشد . فرض کنيم عبارت اتصال را در يک متغير نوع String به اسم ConnString قرار دهيم :
• در صورتی که بانک اطلاعاتی مقصد SQL Server باشد و بخواهيم بطور مستقيم و بدون استفاده از واسط ODBC به آن متصل شويم :

ConnString=”Provider=SQLOLEDB.1;Password=yourpassowrd;Persist Security Info=True;User ID=yourusername; Initial Catalog=yourDatabaseName;Data Source=yourServerName”


• در صورتی که بانک اطلاعاتی مقصد SQL Server باشد و بخواهيم با استفاده از واسط ODBC به آن متصل شويم :

ConnString=”Provider=MSDASQL.1;Password=yourpassowrd;Persist Security Info=True;UserID=yourusername;DataSource=yourODBC_DataSourceName;Mode=ReadWrite”


• در صورتی که بانک اطلاعاتی مقصد Access باشد :

ConnString=” Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=yourDatabaseFilePath;Persist Security Info=False”



حال بايستی اين اتصال را باز نمود :

cn.Open(ConnString)x



- قدم بعدی ايجاد شی ADO Recordset می باشد :

Set rs = New ADODB.Recordset



- سپس بايستی با توجه به کاری که می خواهيم با جداول آن بانک اطلاعاتی انجام دهيم يک sql query را توسط شی Recordset به آن بفرستيم :

rs.Open yourSQLquery,cn,OpenKeyset, adLockOptimistic


بعبارت ديگر نوع باز کردن Recordset متفاوت است و توسط query مورد نظر مشخص می شود برای مثال برای انتخاب فيلدهای يک Table :
SELECT DISTINCT yourfields from yourtable WHERE yourcondition
نکته : نوع قفل کردن مجموعه رکورد می تواند adLockReadOnly نيز باشد .

- حال با استفاده از اين Recordset می توان يکسری کار را روی رکوردهای موجود در جداول انجام داد برای مثال :
۱ – حرکت به ابتدای مجموعه رکورد :

rs.MoveFirst


۲ – حرکت در طول مجموعه رکورد :

Do
tmp = rs.fields(0)x
.
.
.
rs.MoveNext
Loop Until (rs.EOF)x


3 – بستن مجموعه رکورد و بستن اتصال به بانک اطلاعاتی :

rs.Close
cn.Close


4 – حذف رکورد جاری از مجموعه رکورد :

rs.delete


5 - ايجاد رکورد جديد در مجموعه رکورد :

Dim fields(RecordsetFieldsCount) As Variant
Dim values(RecordsetFieldsCount) As Variant
fields(0) = Field 1 Name
fields(1) = Field 2 Name
.
.
.
fields(n) = Field n Name

values(0) = Field 1 Value
values(1) = Field 2 Value
.
.
.
values(n)= Field n Value

rs.AddNew fields, values
rs.update



ادامه دارد ....

+ حامد شیدائیان ; ۱۱:٥۳ ‎ق.ظ ; یکشنبه ۱۱ خرداد ،۱۳۸٢
comment نظرات ()