Работа с DBF файлами через ADO
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) |
||
| Строка 1: | Строка 1: | ||
Файлы DBF представляют собой таблицы [http://en.wikipedia.org/wiki/DBase СУБД dBase] и часто используются для передачи данных от одного приложения к другому. Драйвер [http://en.wikipedia.org/wiki/ActiveX_Data_Objects ADO] встроен в систему Windows и не нуждается в отдельной установке. | Файлы DBF представляют собой таблицы [http://en.wikipedia.org/wiki/DBase СУБД dBase] и часто используются для передачи данных от одного приложения к другому. Драйвер [http://en.wikipedia.org/wiki/ActiveX_Data_Objects ADO] встроен в систему Windows и не нуждается в отдельной установке. | ||
| − | |||
| − | |||
==== Создание подключения ==== | ==== Создание подключения ==== | ||
| Строка 12: | Строка 10: | ||
</source> | </source> | ||
| − | где FilePath –- путь к папке с файлом DBF. | + | где FilePath –- путь к папке с файлом DBF. Строки подключения для разных источников данных можно найти [http://www.connectionstrings.com/ здесь]. |
==== Создание объекта-комманды ==== | ==== Создание объекта-комманды ==== | ||
| Строка 28: | Строка 26: | ||
</source> | </source> | ||
| − | + | ==== Создание новой таблицы ==== | |
<source lang="vbnet"> | <source lang="vbnet"> | ||
| Строка 35: | Строка 33: | ||
</source> | </source> | ||
| − | Пример работы | + | ==== Пример работы с DBF файлами через ADO ==== |
<source lang="vbnet"> | <source lang="vbnet"> | ||
| Строка 217: | Строка 215: | ||
</source> | </source> | ||
| − | [[Category:Учебный курс]] [[Category:Импорт/экспорт данных]] | + | === См. также === |
| + | |||
| + | * Информация по [http://msdn.microsoft.com/en-us/library/ms807498.aspx ADO] в MSDN | ||
| + | |||
| + | [[Category:VBScript]] | ||
| + | [[Category:Учебный курс]] | ||
| + | [[Category:Импорт/экспорт данных]] | ||
Текущая версия на 16:26, 10 марта 2011
Файлы DBF представляют собой таблицы СУБД dBase и часто используются для передачи данных от одного приложения к другому. Драйвер ADO встроен в систему Windows и не нуждается в отдельной установке.
Содержание |
[править] Создание подключения
set ADOConnection = CreateObject("ADODB.Connection") call ADOConnection.Open("Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & FilePath & ";" & _ "Extended Properties=""dBASE IV;"";")
где FilePath –- путь к папке с файлом DBF. Строки подключения для разных источников данных можно найти здесь.
[править] Создание объекта-комманды
set ADOCommand = CreateObject("ADODB.Command") ADOCommand.ActiveConnection = ADOConnection
[править] Выполнение запроса и получение результата
ADOCommand.CommandText = " SELECT COUNT(*) as c_all FROM [" & Filename & "]" set ADODataset = ADOCommand.Execute
[править] Создание новой таблицы
ADOCommand.CommandText = " CREATE TABLE NEW.DBF (kod_plat CHAR(4), debet decimal(10), kredit decimal(10))" ADOCommand.Execute
[править] Пример работы с DBF файлами через ADO
' Создадим подключение к файлу DBF set ADOConnection = CreateObject("ADODB.Connection") call ADOConnection.Open("Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=d:\;") ' Создадим объект ADODB.Command и подключим его к файлу DBF set ADOCommand = CreateObject("ADODB.Command") ADOCommand.ActiveConnection = ADOConnection ' Запрос на получение всех данных файла ADOCommand.CommandText = " SELECT * FROM [" & Filename & "]" set ADODataset = ADOCommand.Execute ADODataset.MoveFirst do while not ADODataset.EOF if ADODataset.Fields.Item("DEBET").Value = ADODataset.Fields.Item("KREDIT").Value then call MsgBox("Нулевое сальдо") end if ADODataset.MoveNext loop ' Закрыть подключение ADOConnection.Close
[править] Схема используемых классов
Connection = class методы: BeginTrans: Integer Cancel Close CommitTrans Execute(CommandText: String; RecordsAffected: Variant; Options: Integer): _Recordset Open(ConnectionString: String; UserID: String; Password: String; Options: Integer) OpenSchema(Schema: Integer(перечисление); Restrictions: Variant; SchemaID; Variant): _Recordset RollbackTrans свойства: Attributes: Integer CommandTimeout: Integer ConnectionString: String ConnectionTimeout: Integer CursorLocation: Integer(перечисление) DefaultDatabase: String Errors: Errors IsolationLevel: Integer(перечисление) Mode: Integer(перечисление) Properties: Properties Provider: String State: Integer Version: String Command = class методы: Cancel CreateParameter(Name: String; Type: Integer(перечисление); Direction: Integer(перечисление); Size: Integer(перечисление); Value: Variant): Variant Execute(RecordsAffected: Variant; Parameters: Variant; Options: Integer): _Recordset свойтва: ActiveConnection: _Connection CommandStream: Variant CommandText: String CommandTimeout: Integer CommandType: Integer(перечисление) Dialect: String Name: String NamedParameters: Boolean Parameters: unknown Prepared: Boolean Properties: Properties State: Integer Recordset = class методы: _xClone: _Recordset _xResync(AffectRecords: Integer(перечисление)) _xSave(FileName: String; PersistFormat: Integer(перечисление)) AddNew(FieldList: Variant; Values: Variant) Cancel CancelBatch(AffectRecords: Integer(перечисление)) CancelUpdate Clone(LockType: Integer(перечисление)): _Recordset Close CompareBookmarks(Bookmark1: Variant; Bookmark2: Variant): Integer(перечисление) Delete(AffectRecords: Integer(перечисление)) Find(Criteria: String; SkipRecords: Integer(перечисление); SearchDirection: Integer(перечисление); Start: Variant) GetRows(Rows: Integer; Start: Variant; Fields: Variant): Variant Move(NumRecords: Integer(перечисление); Start: Variant) MoveFirst MoveLast MoveNext MovePrevious NextRecordset(RecordsAffected: Variant): _Recordset Open(Source: Variant; ActiveConnection: Variant; CursorType: Integer(перечисление); LockType: Integer(перечисление); Options: Integer) Requery(Options: Integer) Resync(AffectRecords: Integer(перечисление); ResyncValues: Integer(перечисление)) Save(Destination: Variant; PersistFormat: Integer(перечисление)) Seek(KeyValues: Variant; SeekOption: Integer(перечисление)) Supports(CursorOptions: Integer(перечисление)): Boolean Update(Fields: Variant; Values: Variant) UpdateBatch(AffectRecords: Integer(перечисление)) свойства: AbsolutePage: Integer(перечисление) AbsolutePosition: Integer(перечисление) ActiveCommand: IDispatch ActiveConnection: Variant BOF: Boolean Bookmark: Variant CacheSize: Integer Collect: Variant CursorLocation: Integer(перечисление) CursorType: Integer(перечисление) DataMember: String DataSource: Неопределен EditMode: Integer(перечисление) EOF: Boolean Fields: _Fields Filter: Variant Index: String LockType: Integer(перечисление) MarshalOptions: Integer(перечисление) MaxRecords: Integer(перечисление) PageCount: Integer(перечисление) PageSize: Integer Properties: unknown RecordCount: Integer(перечисление) Sort: String Source: Variant State: Integer Status: Integer StayInSync: Boolean Fields = class методы: _Append(Name: String; Type: Integer(перечисление); DefinedSize: Integer(перечисление); Attrib: Integer(перечисление)) Append(Name: String; Type: Integer(перечисление); DefinedSize: Integer(перечисление); Attrib: Integer(перечисление); FieldValue: Variant) CancelUpdate Delete(Index: Variant) Refresh Resync(ResyncValues: Integer(перечисление)) Update свойства: Count: Integer Item(Index: Variant): _Field default Field = class методы: AppendChunk(Data: Variant) GetChunk(Length: Integer): Variant свойства: ActualSize: Integer(перечисление) Attributes: Integer DataFormat: Неопределен DefinedSize: Integer(перечисление) Name: String NumericScale: Unsigned char OriginalValue: Variant Precision: Unsigned char Properties: unknown Status: Integer Type: Integer(перечисление) UnderlyingValue: Variant Value: Variant Properties = class методы: Refresh свойства: Count: Integer Item(Index: Variant): Property default Property = class свойства: Attributes: Integer Name: String Type: Integer(перечисление) Value: Variant
[править] См. также
- Информация по ADO в MSDN