Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2012, 10:33   #1
Delphi_developer
Пользователь
 
Регистрация: 19.09.2012
Сообщений: 21
По умолчанию Импорт таблицы Access в существующую базу MS SQL Server (Delphi+Ado+MSS)

Коллеги, недавно написал проект, работающий с СУБД MS SQL Server. Остался один штрих: как программно импортировать таблицу Access в имеющуюся базу MSS?
Пробовал так
Код:
QueryAccess.SQL.Text:='SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','C:\Spravki.mdb';'admin';'',SpravkiSQL)' ;
Выдает ошибку синтаксиса. Как правильно прописать команду или есть другой вариант? Подскажите, пожалуйста.

Задача в том, чтобы из множества mdb файлов импортировать данные в одну общую базу на сервере. Ранее наши специалисты в районах локально работали с Access в отдельности. Теперь все будут работать с одной базой. Обычный парсинг не предлагать. Долго импортирует.
Delphi_developer вне форума Ответить с цитированием
Старый 21.09.2012, 11:01   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Родные средства MS SQL чем не устраивают?

http://msdn.microsoft.com/ru-ru/library/ms140052.aspx
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Sciv; 21.09.2012 в 11:03.
Sciv вне форума Ответить с цитированием
Старый 21.09.2012, 11:45   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Как вариант
Код:
SELECT T.*
  FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
    'Persist Security Info=False;Data Source=d:\db1.mdb')...Таблица1 AS T
  WHERE ...
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.09.2012, 12:04   #4
Delphi_developer
Пользователь
 
Регистрация: 19.09.2012
Сообщений: 21
По умолчанию

Устраивает. Однако нужен именно программный импорт, чтобы специалисты сами подгружали из моей программы. Так-то и в MS Access есть возможность экспорта в MSS через мастер. Я долго искал решение этого вопроса и на крайняк написал сюда. Возможно что-то упустил
Delphi_developer вне форума Ответить с цитированием
Старый 22.09.2012, 00:35   #5
Delphi_developer
Пользователь
 
Регистрация: 19.09.2012
Сообщений: 21
По умолчанию

Сделал так
Код:
QueryAccess.SQL.Text:='SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', OpenDialog.FileName; 'admin';'','Select * from MSEK') As SpravkiSQL;
Я ранее указывал источник данных и имя базы, в которую нужно было импортировать данные на сервере, а в реале надо было в конце указать, из какой ТАБЛИЦЫ Access эти данные брать (select from *...) вместо имени базы-приемника! Я с MSS из Delphi только недавно начал работать. Поэтому не совсем понял логику команды и ушел в режим ожидания)) Одна строка в коде как всегда все намутила. Гадство!)) Спасибо, друзья за поддержку! Удачи. Тема закрыта.

Последний раз редактировалось Delphi_developer; 22.09.2012 в 00:38.
Delphi_developer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подключение к SQL Server через ADO в DELPHI lenuxoid БД в Delphi 10 22.09.2012 19:33
DElphi ado sql access Genas БД в Delphi 23 04.05.2012 15:24
(ADO,SQL) Проверка на не существующую запись в дочерней таблице Never74 БД в Delphi 1 23.02.2012 16:43
Знание Access | SQL Server | ЯП (c++, delphi) Lemo Фриланс 3 04.12.2010 13:19
импорт таблицы *.dbf в ms access через ADO ADO БД в Delphi 6 17.11.2008 15:01