Access 5 ¬ластивост≥ об ТЇкта Recordsetожний об ТЇкт Recordset характеризуЇтьс¤ визначеним типом курсора, тобто типом обТЇкта, що обслуговуЇ даний наб≥р. ¬ ADO визначено 4 типи курсора, один з ¤ких вказуЇтьс¤ при в≥дкритт≥ обТЇкта Recordset.
ƒл¤ створенн¤ об ТЇкту Recordset використовуЇтьс¤ наступний синтаксис:Dim MyRec As ADODB.Recordset Set MyRec = New ADODB.Recordset « конкретним з ТЇднанн¤м (обТЇктом Connection ) та джерелом запис≥в (таблиць, запит≥в) обТЇкт Recordset звТ¤зуютьс¤ при його в≥дкритт≥ (метод Open).Ќе вс≥ з властивостей та метод≥в об ТЇкта Recordset можуть п≥дтримуватись обраним провайдером даних. “ому одна й та ж програмна конструкц≥¤, ¤ка добре працюЇ з одним провайдером, може не працювати з ≥ншим провайдером.ќсновн≥ властивост≥
ActiveConnection. ¬ластив≥сть вказуЇ на зТЇднанн¤ (Connection), ¤кому належить активний обТЇкт Recordset. ¬ластив≥сть доступна не т≥льки дл¤ читанн¤, а й дл¤ запису, тобто з њњ допомогою можна звТ¤зати обТЇкт Recordset з обТЇктом Connection. якщо обТЇкт Connection в≥дкрито, то в ¤кост≥ значенн¤ властивост≥ вказуЇтьс¤ його ≥мТ¤. ¬ластивост≥ BOF() та EOF(). CursorType. «адаЇ один з чотирьох тип≥в курсора, ¤кий будуть використовуватись з набором даних (обТЇктом Recordset): adOpenDynamic (динам≥чний наб≥р), adOpenKeyset (ключовий наб≥р), adOpenStatic (статичний наб≥р), adOpenForwardOnly (наб≥р з ≥терац≥Їю т≥льки вперед). EditMode. ¬ластив≥сть т≥льки дл¤ читанн¤, вказуЇ статус редактуванн¤ поточного запису, повертаючи одну з констант: adEditNone (поточний запис не можна редактувати), adEditInProgress (поточний запис скоп≥юваний в буфер дл¤ редактуванн¤, но зм≥ни ще не збережен≥), adEditAdd (було добавлено новий запис, але зм≥ни ще не збережен≥, adEditDelete (поточний запис було видалено). LockType. ¬ластив≥сть вказуЇ на тип блокуванн¤, що застосовуЇтьс¤ до редагованих запис≥в при одночасному доступ≥ до них к≥лькох користувач≥в. ћоже мати одне з наступних значень:
Source. ¬ластив≥сть вказуЇ на джерело даних обТЇкту Recordset. якщо обТЇкт Recordset в≥дкрито, то властив≥сть Source доступна т≥льки дл¤ читанн¤. ¬ ¤кост≥ значенн¤ властивост≥ можна вказати р¤док, що м≥стить ≥мТ¤ базовоњ таблиц≥, запиту або SQL-оператор. ћетоди обТЇкту Recordset дозвол¤ють ман≥пулювати ¤к окремими записами набору даних, так ≥ ц≥лим набором. « њх допомогою ви можете орган≥зувати пошук необх≥дних даних, перем≥щенн¤ по набору даних та ≥нш≥ д≥њ.
MyRec.Open Source, ActiveConnection, CursorType, LockType, Options MyRec- оголошена ран≥ше зм≥нна типу Recordset. ћетод маЇ 5 аргумент≥в ¬с≥ вони необовТ¤зков≥, але перш≥ 2 повинн≥ бути вказан≥ ран≥ше (наприклад, за допаомогою властивостей Source та ActiveConnection. ѕриклад Dim MyConn As ADODB.Connection Dim MyRec AS ADODB.Recordset Dim Constr As String Constr=ФProvider=Microsoft.Jet.OLEDB=4.0; Data Source=C:\db2.mdbФ Set MyConn = New.ADODB.Connection Set MyRec=New.ADODB.Recordset MyConn.Open ConStr MyRec.Open УtempФ,MyConn, adOpenDynamic, adLockOptimistic MyRec.Close MyConn.Close якщо тип блокуванн¤ ¤вно не вказаний, то за замовчуванн¤м прийматиметьс¤ тип блокуванн¤ adLockReadOnly. ¬ результат≥ ви не зможете, добавл¤ти, видал¤ти та модиф≥кувати записи.MyRec.AddNew MyRec![Kod]=Фss55fФ MyRec[Price]=13.12 MyRec.Update ожному методу AddNew повинен в≥дпов≥дати св≥й метод Update або UpdateBatch,¤кщо ви використовуЇте метод в≥дкладених поновлень.‘ормат запуску: MyRec.Find Criteria, SkipRows, SearchDirection Criteria Ц критер≥й пошуку; SkipRows Ц зм≥щенн¤ початковоњ позиц≥њ пошуку в≥д поточного запису. «наченн¤ за замовчуванн¤м цього аргументу Ц 0. SearchDirection Ц задаЇ напр¤мок пошуку, може приймати значенн¤ adSearchForward Ц напр¤мок пошуку вперед, пошук припин¤Їтьс¤, коли властив≥сть Eof Ц набуваЇ значенн¤ У≤стинаФ, та adSearchBackward Ц напр¤мок пошуку назад. ѕриклад MyRec.Find У[ од лиента]Ф Like СQU*Т Do While Myrec.EOF<>True Debug.Print MyRec![ од л≥Їнта] MyRec.Find У[ од лиента]Ф Like СQU*Т,1,adSearchForward LOOP
ќбТЇкт Command ќб ТЇкт використовуЇтьс¤ дл¤ формуванн¤ запит≥в до бази даних. ќбТЇкт зручно використовувати дл¤ запуску запит≥в на доданн¤ та видаленн¤ запис≥в. ѕосл≥довн≥сть д≥й при в≥дкритт≥ обТЇкту:
Dim MyConn As ADODB.Connection
Set MyComm= New ADODB.Command
MyCommand.ActiveConnection=MyConn
MyComm.CommandText=ФDelete * from [Temp];Ф MyComm.CommandType = adCmdText
ѕриклад ¬икористанн¤ обТЇкта Command дл¤ запуску запиту на виконанн¤(action query) Dim MyConn As ADODB.Connection Dim ConStr As String Dim MyComm As ADODB.Command
Constr=ФProvider=Microsoft.Jet.OLEDB=4.0; Data Source=C:\db2.mdbФ Set MyConn = New ADODB.Connection MyConn.Open ConStr Set MyComm= New ADODB.Command
MyComm.ActiveConnection=MyConn MyComm.CommandText=ФDelete * from [Temp];Ф MyComm.CommandType = adCmdText MyComm.Execute MyConn.Close SET MyConn=Nothing SET MyComm=Nothing ѕриклад ¬икористанн¤ обТЇкта Command дл¤ поверненн¤ набору запис≥в дл¤ обТЇкта RecordsetDim MyConn As ADODB.Connection Dim MyRec As ADODB.Recordset Dim ConStr As String Dim MyComm As ADODB.Command
Constr=ФProvider=Microsoft.Jet.OLEDB=4.0; Data Source=C:\db2.mdbФ Set MyConn = New ADODB.Connection Set MyRec= New ADODB.Recordset MyConn.Open ConStr Set MyComm= New ADODB.Command
MyComm.ActiveConnection=MyConn MyComm.CommandText=Ф[Temp];Ф MyComm.CommandType = adCmdTable SET MyRec= MyComm.Execute Do Until MyRec.EOF Debug.Print MyRec ![ од лиента] MyRec.MoveNext LOOP MyRec.Close MyConn.Close SET MyConn=Nothing SET MyComm=Nothing SET MyRec=Nothing р≥м ≥нших об ТЇкт≥в оголошуЇтьс¤ та створюЇтьс¤ екземпл¤р обТЇкта типу RecordSet. ¬ ¤кост≥ тексту команди дл¤ обТЇкта MyComm вказуЇьс¤ ≥мТ¤ таблиц≥ Temp. ј дл¤ властивост≥ CommandType задаЇтьс¤ в≥дпов≥дна константа adCmdTable. «верн≥ть увагу на формат використанн¤ метода Execute. ќск≥льки в цьому випадку в результат≥ його виконанн¤ повертаЇтьс¤ наб≥р запис≥в, то застосовано конструкц≥ю SET, що ≥н≥ц≥ал≥зуЇ зм≥нну MyRec. ¬ результат≥ виконанн¤ цього р¤дка коду наб≥р даних буде в≥дкрито, тобто в≥дпадаЇ необх≥дн≥сть використанн¤ метода Open обТЇкта RecordSet. ≤люстрац≥Їю цього Ї ≥терац≥¤ по записах набора, ¤ка орган≥зована за допомого циклу DO UNTIL ЕLOOP. Ќа завершенн¤ уривка програми зв≥льн¤ютьс¤ вс≥ ресурси.
|