Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: Из DBF(IV) в MDB Добавлено: 19.12.07 19:00  

Автор вопроса:  vangog | Web-сайт: www.inc.su
Приветствую.
использую:
VisualBasic 6.0
Windows XP SP2
References: Microsoft DAO 3.6

Задача стоит такая.
необходимо из базы данных DBF(IV) выбрать определенные значения и записать их базу Access MDB. Причем, запись в базу данных Access лучше сделать, применяя SQL-запрос (jet-SQL)

Выборку из базы данных DBF(IV) я сделать могу, а вот как реализовать запись отобранных данных в другую базу, остается для меня вопросом.


Private Sub Command1_Click()
Dim dbFrom As Database
Dim dbTo As Database

Dim rsTo As Recordset
Dim rsFrom As Recordset

Dim strNameOfDataBase As String
Dim strSqlQuery As String


strNameOfDataBase = "test.mdb"

Set dbFrom = DAO.OpenDatabase("C:\Work\SHOPS\BASE_2\", False, False, "dBASE IV;LANGID=0x0419;CP=866;COUNTRY=0")
Set dbTo = DAO.OpenDatabase(strNameOfDataBase)


strSqlQuery = "CREATE TABLE tblTest "

'Вот здесь необходимо правильно указать источник базы - таблицу IC_CUR.DBF
strSqlQuery = "SELECT  * into tblTest FROM IC_CUR ;"
dbTo.Execute strSqlQuery

End Sub


Практически это конвектор из DBF(IV) в MDB (IC_CUR.DBF -> tblTest). В силу причин я не могу использовать стороннее программное обеспечение. Очень прошу Вас помочь

Ответить

  Ответы Всего ответов: 1  

Номер ответа: 1
Автор ответа:
 nat-z



Вопросов: 13
Ответов: 85
 Профиль | | #1 Добавлено: 20.12.07 19:26
И сюда тоже вставлю.
А вообще-то в самом Acseee есть чтение dbf-файцлов.

BP(R) DBF для VB6
(c) BASIC Production 27/03/2005

Класс для работы с файлами формата DBF.

Содержание
----------
1. Введение.
2. Подключение класса.
3. Создание, открытие и закрытие базы.
4. Работа с несколькими базами одновременно.
5. Функции обслуживания базы данных.

1. Введение.
------------
 Файл формата DBF является базой данных. Состоит он из заголовка, описателей полей и записей. В классе BPDBF записи обозначаются как ряды(Rows), а поля как колонки(Cols или Columns). Каждая запись состоит из фиксированного количества полей фиксированный длины, что свидетельствует о постоянном размере записи независимо от её значения.
 1. Заголовок - служебная информация
 2. Описатель полей - информация о полях в записи
 3. Записи - Поле/Поле/.../Поле
 В заголовке хранится служебная информация; в описателях полей имена, типы и длины каждого поля в записи; а в самой записи - непосредственно значения. Стурктуру базы можно представить как таблицу с фиксированным количеством колонок и неограниченным количеством рядов. Например если вы создали базу данных и в описателе полей у вас описано два поля, то все записи в базе будут иметь два поля.
 Каждое поле имеет свой тип данных, который указывается в описателе полей. Эти типы влияют на поля в записях.
 Запись - Поле Типа1/Поле Типа2/.../Поле ТипаN
Поля следующих типов могут быть в базе данных:
 - Строка; поле может иметь любую длину
 - Дата; фиксированной длины (8 символов) в формате ГГГГММДД
 - Дробное число; двоичное представление дробного числа
 - Логический; ? Y y N n T t F f (? - не инициализировано)
 - Мемо; фиксированной длины (10 символов), содержат номер 512-байтного блока в индексном файле
 - Числовой; целые числа в десятичном представлении (-.0123456789).

2. Подключение класса
---------------------
Добавьте в проект модуль BPDBF.CLS.
В модуле формы объявите объектную переменную ссылкой на класс:
 Private MyDBF As BPDBF
В форме (например в Form_Load) создайте новый экземпляр класса:
 Set MyDBF = New BPDBF
Подключение совершено. Для обращения к методам и свойствам объекта введите имя переменной и нажмите точку.
 MyDBF.

3. Создание, открытие и закрытие базы.
--------------------------------------
3.1 Создание базы.
 Перед созданием базы необходимо предварительно создать колонки (поля) записи с помощью метода AddColumn, в противном случае база не будет создана.
 MyDBF.EraseColumns
 MyDBF.AddColumn "Column 1", N_Decimal, 1
 MyDBF.CreateDBF "Test1.DBF"
В этом примере будет создана база в которой каждая запись будет содержать одно поле в числовом формате длиной 1 байт.

3.2 Открытие базы
 MyDBF.OpenDBF "ИмяБазы"

3.3 Закрытие базы
 MyDBF.CloseDBF

4. Работа с несколькими базами одновременно.
--------------------------------------------
 Построение класса BPDBF позволяет работать одновременно только с одним файлом базы данных. Для одновременной работы с несколькими базами создайте необходимое количество объектных переменных.
 Private MyDBF As BPDBF, MyDBF2 As BPDBF
 Private Sub Form_Load()
  Set MyDBF = New BPDBF: Set MyDBF2 = New BPDBF
 End Sub

5. Функции обслуживания базы данных.
------------------------------------
 Ниже перечислены функции обслуживания базы данных по группам.

5.1. Функции работы с описателем полей. Эти функции доступны только при закрытой базе.
 AddColumn - добавляет информацию о новом поле в описатель полей.
  Параметры:
Caption - Имя (до 11 символов)
ColType - поддерживаемый тип данных
Length - длина поля
DecimalCount - длина дробной части после точки
 RemoveColumn - уменьшает счётчик полей в описателе полей на 1.
 ResetColumns - сбрасывает счётчик полей в описателе полей без очистки самих полей.
 EraseColumns - очищает описатель полей.

5.2. Подготовительные и завершающие функции.
 CreateDBF - создаёт пустую базу данных.
  Параметры: FileName - имя файла для новой базы
 OpenDBF - открывает существующую базу данных
  Параметры: FileName - имя файла базы данных
 CloseDBF - закрывает открытую ранее базу данных.

5.3. Работа с записями.
 AddEmptyRows - добавляет указанное количество пустых записей в базу.
 AddRow - добавляет одну запись в базу
  Параметры: RowCols - строка, содержащая значение записи. Например если запись состоит из 3-х полей длиной 1,2 и 3 байта, то в строке должны быть в первом символе - значение поля1, следующие 2 символа - поля2 и следующие 3 символа - поля3.
 ;DeleteRow - помечает (или снимает пометку) запись как удалённую
  Параметры:
RowNumber - Номер записи
DeleteFlag - Истина - установить пометку на удаление; Ложь - снять пометку
 GetRow - получить строку записи
  Параметры:
RowNumber - номер записи
UseOEM - переводить из кодировки ДОС в Windows
 GetRowCols - получить в массив все поля записи
  Параметры:
ColumnsArray() - любой строчный массив-приёмник
RowNumber - номер записи
UseOEM - переводить из кодировки ДОС в Windows
 GetColumn - получить поле записи по номеру поля
  Параметры:
RowNumber - номер записи
ColNumber - номер поля в записи
UseOEM - переводить результат из кодировки OEM в Windows
 ReplaceRow - заменить значение поля на новое
  Параметры:
RowNumber - номер записи
Value - значение записи
UseOEM - переводить из кодировки Windows в ДОС
 ReplaceRowCols - заменить все поля записи на новые из массива
  Параметры:
ColumnsArray() - строчный массив-источник
RowNumber - номер записи
UseOEM - переводить из кодировки Windows в ДОС
 ReplaceColumn - заменить значение поля в записи
  Параметры:
RowNumber - номер записи
ColNumber - номер поля
Value - новое значение

5.4. Информационные и служебные
 ;DatabaseName - возвращает имя открытой базы;
 IsDbfOpen - возвращает истину если база открыта;
 RowsCount - возвращает количество записей в базе;
 ColumnsCount - возвращает количество полей в записи;
 GetColName - возвращает имя поля (из описателя полей) по указанному индексу;
 GetColSize - возвращает длину поля по указанному индексу;
 GetColType - возвращает тип поля по указанному индексу;
 IsRowDeleted - возвращает наличие отметки удаления в записи;
 ;Defrag - физически удаляет помеченные на удаление записи;

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам