PDA

View Full Version : یک سوال ساده در مورد ADO



Hamedm
سه شنبه 25 اسفند 1383, 18:06 عصر
سلام

چند وقت پیش توی یک پروژه که داشتم با DAO مینوشتم با DAO دچار مشکل شدم برای حل این مشکل به پیشنهاد یکی از دوستان رفتم سراغ ADO. منم که تا اون موقع با ADO کار نکرده بودم مجبور شدم برم یاد بگیرم.
حالا در اولین قدم به مشکل برخوردم. ببخشید که اگه کمی سوالم پیش پا افتاده است.
1. چگونه میتوانم با ADO یک جدول درست کرد.
2.برای کد زیر پیغام زیر رو داد. بنظر شما ایراد از کجاست؟

Private Sub Command1_Click()
Dim CN As New ADODB.Connection
Dim RS As New ADODB.Recordset
Pro = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\1.mdb"
CN.Mode = adModeReadWrite
CN.Open Pro
Set RS.ActiveConnection = CN
RS.Source = "Is"
RS.Open
RS.MoveFirst
While Not RS.EOF
For i = 1 To RS.Fields.Count - 1
RS.Fields(i).Value = Str(i)
Next i
RS.MoveNext
Wend
RS.Close
CN.Close
End Sub

از راهنمایی هاتون ممنون :flower:

موفق باشید و پرتوان :)

Behrouz_Rad
سه شنبه 25 اسفند 1383, 23:02 عصر
1) برای ایجاد Table، دو راه دارید:
الف) استفاده از دستور اس کیو ال Create Table که با متد Execute شی Connection قابل اجرا است.
سینتکس دستور Create Table به شکل زیر است:


CREATE TABLE table (field1 type [(size)] [NOT NULL] [index1] [, field2 type [(size)] [NOT NULL] [index2] [, ...]] [, CONSTRAINT multifieldindex [, ...]])

یک مثال در این رابطه:


Cnn.Execute "CREATE TABLE MyTable (FirstName TEXT, LastName TEXT);"


ب) استفاده از ADOX که مخفف Activex Data Objects For Data Definition Language and Security است.
Reference این کتابخانه، Microsoft ADO Ext. 2.7 For DDL and Security است.
یک مثال در این رابطه:


Dim cat As New ADOX.Catalog
Dim tbl As New ADOX.Table

cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=.\MyDB.mdb;"

With tbl
.Name = "Contacts"
.Columns.Append "StrName", adVarWChar
.Columns.Append "StrFamily", adVarWChar
.Columns.Append "Address", adLongVarWChar
.Columns("Address").Attributes = adColNullable
End With

cat.Tables.Append tbl

Set cat = Nothing


2) در هنگام ایجاد Recordset، نوع قفلی که باید بر روی رکوردها اعمال شود و نحوه دسترسی به آنها باید مشخص شود. (در کد فوق شما این کار را انجام نداده اید!)
مثال:


Connection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=.\MyDB.mdb;"
RecordSet.Open "Select * From MyTable", Cnn, adOpenKeyset, adLockOptimistic

پیشنهاد می کنم که در اکثر اوقات، Recordset را با تنظیمات فوق ایجاد کنید.
موفق باشید.

Hamedm
چهارشنبه 26 اسفند 1383, 06:57 صبح
سلام

آقا بهروز دستت درد نکنه. :flower: :flower: :flower:

موفق باشید و پرتوان