Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перенос данных из DBF в SQL SERVER [D6, MSSQL, dBase, FoxPro]


DDP1 ©   (2003-06-03 11:36:00) 

Добрый день!
Задачка такая:
есть 2 ADOConnection"а - 1 к DBF-кам, другой - к SQL SERVER"у
Нужно перенести табличку bp DBF в SQL.
Можно ли это сделать как-нибудь кроме построчного перебора DBF-ного НД и записью в SQL?
Я присваиваю Recordset одного ADOQuery другому, но данные все равно не заносятся.
Заранее спасибо.


DDP1   (2003-06-03 16:40:00) [1]

Ничего не выходит и с JET. А как ODBC подлечить? MDAC переустановить?


stone   (2003-06-03 16:16:00) [2]

sniknik © (03.06.03 16:09) прав, подобным образом я перегоняю от 2 до 19 млн. записей без проблем, лишь вопрос времени и производительности компа.


sniknik   (2003-06-03 16:09:00) [3]

еще можно попробовать Jet (может у тебя ODBC или драйвер его "поломался") и указывать в запросах все параметры. а то в укороченном мало ли что по умолчанию вставляется. поменялись настройки в ODBC (версию обновил а там по другому) и привет.

через Jet вот так попробуй
SELECT KODT, NAZV, SHIF, TO_SLOT, SOOE2 FROM
OpenDataSource("Microsoft.Jet.OLEDB.4.0",
"Data Source="D:\Load\Base\Buf";Extended properties=dBase IV")...TOVAR


если получится а твой даже с полными параметрами не сработает то чтото у тебя с ODBC случилось.


DDP1   (2003-06-03 14:47:00) [4]

Через Fox - овский драйвер вообще не работает - зависает


DDP1   (2003-06-03 14:44:00) [5]

Фишка в том, что сначала запрос работал, а потом ЭТОТ ЖЕ запрос перестал работать. Я поискал на sql.ru, там некотоым помогла перегрузка сервера, некоторым помогло
DBCC TRACEON(-1,7300)

Меня ни то ни другое не спасло :(


sniknik   (2003-06-03 12:44:00) [6]

думаеш лутше будет? если с одними файлами работает а с другими нет то это формат файлов виноват. (может это и не dBase)

а например Fox
попробуй к примеру

SELECT *
FROM OpenRowset("MSDASQL",
"DRIVER={Microsoft dBase VFP Driver (*.dbf)};UID=;SourceDB=d:\;SourceType=DBF;",
"select KODT, NAZV, SHIF, TO_SLOT, SOOE2 from TOVAR")


DDP1   (2003-06-03 12:14:00) [7]

>sniknik © (03.06.03 12:02)

Да я так и делал сначала:


SELECT *
FROM
OpenRowset
("MSDASQL",
"Driver={Microsoft dBase Driver (*.dbf)};DBQ=D:\Load\Base\Buf",
"select KODT, NAZV, SHIF, TO_SLOT, SOOE2 from TOVAR")


но потом стала вылетать ошибка


OLE DB provider "MSDASQL" reported an error. The provider did not give any information about the error.
OLE DB error trace [OLE/DB Provider "MSDASQL" IDBInitialize::Initialize returned 0x80004005: The provider did not give any information about the error.].


Пытался с эим бороться, но не получилось, поэтому решил побробовать загружать данные через ADO.


sniknik   (2003-06-03 12:02:00) [8]

можно если убрать коннект к DBF-кам, и пользоватся к SQL SERVER и его же методами (MSSQL), OPENROWSET посмотри в BOL.

(по строгому соотвеоствию условиям задачи только перебор)


Наверх

Титульная страница Поиск, карта сайта Написать письмо