Juri Shutenko Personal Homepage. Visual FoxPro.

CursorAdapter. Часть V. Создание CursorAdapter'а программно (ADO) (черновик)

Простейшей вариант создания CursorAdapter'a для работы с источником данных типа "ADO" мы рассмотрели в предыдущей статье. Теперь посмотрим, как это сделать программно. В действительности все достаточно просто. Во-первых нужно создать объект CA, для чего используем стандартную команду VFP Createobject, при этом условимся, что наш создаваемый программно CursorAdapter будет назваться caADOTypeDS:

caADOTypeDS=Createobject("CursorAdapter")

Установим для нашего СА тип источника данных "ADO", для чего присвоим это значение свойству СА DataSourceTypе:

caADOTypeDS.DataSourceType="ADO"

Если в случае ODBC в качестве источника данных, устанавливаемого для свойства СА DataSource мы использовали хэндл соединения, то в случае, если тип источника данных - ADO, мы будем использовать объект ADODB.Recordset, для которого потребуется иная структура - объект ADODB.Connection. Этот объект мы также создадим стандартной функцией VFP:

loConnection2DataSource = Createobject('ADODB.Connection')

У полученного объекта имеется свойство ConnectionString, которому мы должны присвоить строку, содержащую параметры соединения:

loConnection2DataSource.ConnectionString = ;
   [Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;] + ;
   [Initial Catalog=Northwind;Data Source=SERVER;]

Объекту ADODB.Recordset, который будет использоваться в качестве источника данных мы можем передать объект ADODB.Connection с открытым соединением, то есть предварительно открыть соединение и, при необходимости, проверить - действительно-ли оно.

loConnection2DataSource.Open()

Вернемся к созданному объекту СА. Установим, как уже говорилось выше, в качестве источника данных объект ADODB.RecordSet, для чего вновь воспользуемся стандартной функцией VFP:

caADOTypeDS.Datasource = Createobject('ADODB.RecordSet')

и пропишем для источника данных значения екоторых его свойств:

caADOTypeDS.Datasource.CursorLocation      =3
caADOTypeDS.Datasource.Datasource.LockType =3
caADOTypeDS.Datasource.LockType=3

и в завершении присвоим его свойству ActiveConnection полученный объект loConnection2DataSource.

caADOTypeDS.Datasource.ActiveConnection = loConnection2DataSource

Осталось установить, что мы хотим получить в результате. Как и в предыдущей статье, пусть это будет идентификатор потребителя, имя компании и имя контактного лица - соответственно поля CustomerID,CompanyName и ContactName из таблицы Customers базы данных Northwind. SQL-выражение, обеспечивающее такую выборку мы поместим в свойство SelectCmd нашего объекта СА.

caADOTypeDS.SelectCmd="SELECT CustomerID,CompanyName,ContactName FROM Customers"

Осталось заполнить курсор содержимым выборки, для чего исполним команду:

caADOTypeDS.CursorFill

Поскольку мы не меняли значений прочих установок, то мы получим выборку из 92 записей, содержащихся в таблице Customers. Выпоолним следующую последовательность команд:

Browse
Use
loConnection2DataSource.Close()
Release All

Суимарно - код будет выглядеть так:

caADOTypeDS=Createobject("CursorAdapter")
caADOTypeDS.DataSourceType="ADO"
Set Multilocks On
loConnection2DataSource = Createobject('ADODB.Connection')
loConnection2DataSource.ConnectionString = ж
   [Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;] + ;
   [Initial Catalog=Northwind;Data Source=SERVER;]
loConnection2DataSource.Open()
caADOTypeDS.Datasource = Createobject('ADODB.RecordSet')
caADOTypeDS.Datasource.CursorLocation      =3
caADOTypeDS.Datasource.Datasource.LockType =3
caADOTypeDS.Datasource.LockType            =3
caADOTypeDS.Datasource.ActiveConnection    = loConnection2DataSource
caADOTypeDS.SelectCmd = ;
   "SELECT CustomerID,CompanyName,ContactName FROM Customers"
caADOTypeDS.CursorFill
Browse
Use
loConnection2DataSource.Close()
Release All

Незавершена. Будет продолжено

Селектор для быстрого перехода на сайты, связанные с Visual FoxPro.