Экспорт таблицы DBF

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Экспорт таблицы DBF

Сообщение Nicky » 05.04.2006 (Ср) 8:38

Здравствуйте все!
Подскажите правильный запрос вставки/создания таблицы из второй базы данных, что-то типа
Код: Выделить всё
Dim db As DAO.Database 'Microsoft DAO 3.6
Set db = OpenDatabase("C:\db1", 0, 0, "dBase IV")
db.Execute "Insert into [dBase IV;database=C:\db2].t2 select * from t1"
db.Execute "Select * into [dBase IV;database=C:\db2].t2 from t1"

С таблицами Access прекрасно работает запрос:
Код: Выделить всё
Set db = OpenDatabase("C:\db1")
db.Execute "Insert into t2 in 'c:\db2' select * from t1"
db.Execute "Select * into t2 in 'c:\db2' from t1"

Пр попытке проделать то же с dbf падает по ошибке
"Файл 'C:\db2' не может быть открыт ядром базы данных Microsoft Jet. Файл уже открыт другим пользователем для монопольного доступа или требуется разрешение на просмотр данных."

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 05.04.2006 (Ср) 10:54

Так елы палы, openDatabase открывает только Jet.



Для DBF надо делать так:



Код: Выделить всё
DoCmd.TransferDatabase acLink, "dBase IV", "c:\db2", acTable

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Re: Экспорт таблицы DBF

Сообщение Nicky » 05.04.2006 (Ср) 11:04

Возможно, неправильно выразился
Nicky писал(а):...С таблицами Access прекрасно работает запрос...

Имелось в виду, с таблицами в разных mdb файлах
Программа на VB6

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 05.04.2006 (Ср) 11:33

Ну так тогда просто, корректно открывай базу в openDatabase. Посмотри в хелпе нужный коннекшен стринг.

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 05.04.2006 (Ср) 12:12

Ура! Сделал даже 2-мя вариантами:
Код: Выделить всё
Set db = OpenDatabase("C:\db1", 0, 0, "dBase IV")
'Вариант 1
db.Execute "select * into t2 in 'C:\db2' 'dBASE IV;' from t1"
db.Execute "insert into t2 in 'C:\db2' 'dBASE IV;' select * from t1"
 
'Вариант 2
db.Execute "select * into t3 in '' [dBASE IV; Database=C:\db2;] from t1"
db.Execute "insert into t3 in '' [dBASE IV; Database=C:\db2;] select * from t1"

Может, кому-то понадобится
Инфу нашел в DAOSDK.CHM

blinow
Обычный пользователь
Обычный пользователь
 
Сообщения: 53
Зарегистрирован: 27.06.2005 (Пн) 3:13

Сообщение blinow » 15.04.2006 (Сб) 3:38

Тока у меня с DAO ужо ни одна dbfина не открывается, а сваливает приложение. А с ADO Foxpro OLE DB 9.0 вроде ниче работает.


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList