Форум: "Базы";
Текущий архив: 2002.09.26;
Скачать: [xml.tar.bz2];
ВнизДоступ из MS Access к данным из других СУБД с пом. SQL Найти похожие ветки
← →
Nikolai_S (2002-09-02 17:24) [0]Вопрос такой: как из Access с помощью SQL-запроса получить доступ к данным других СУБД? Например, можно сделать такой запрос:
INSERT INTO [DestinationTable] SELECT * FROM [SourceTable] IN "AccessFile.mdb"
Можно ли так же построить запрос, но данные брать из другой СУБД (например SQL Server). Ведь можно же произвести импорт из баз данных ODBC с помощью мастера.
← →
Mike Kouzmine (2002-09-02 18:03) [1]Можно. Сделай связь с таблицами и используй их в аксесовском запросе, а из делфи - как обычно.
← →
Nikolai_S (2002-09-02 18:17) [2]А программно это можно как-то сделать?
← →
Mike Kouzmine (2002-09-02 18:23) [3]Скорее всего можно, правда ни разу не делал, но надо или в аксесе написать функцию на подключение таблицы (передавать параметр) и выполнять ее, или через закладку Servers посылать соответствующие команды.
← →
sniknik (2002-09-02 18:36) [4]Все что можно делать в Access то можно и программно (пока получалось) и линк скорей всего тоже но как конкретно? разбирайся читай хелпы по ADOX, DAO, MSJERO.
только зачем это нужно и так есть прямой доступ
dBase, Excel, Exchange, Lotus, Paradox, Text форматы (*.txt;*.csv;*.tab;*.asc)
чего еще?
Надо круче делай из MSSQL оттуда почти до всего достучишся.
← →
Nikolai_S (2002-09-03 11:34) [5]Из SQL Server"а конечно легко, но если Access"ский файл лежит где-то в сети, то к нему не достучишься, если не сделать директорию доступной через сеть. В моем случае так делать не стоит. Но вот с помощью SQL я все-таки достучался до внешних СУБД! Вот пример работы с СУБД через ODBC:
SELECT * FROM [ODBC;DSN=MyODBCLink;UID=DB_USER;PWD=my_password;DATABASE=my_db_name;].DB_USER.TABLE_NAME
← →
Nikolai_S (2002-09-03 11:36) [6]Забыл сказать, это я из SQL Server делаю выборку
← →
sniknik (2002-09-03 17:02) [7]А вот если Access"ский файл лежит где-то в сети то похоже ты не можеш его открыть потому как нет прав на создание/редактирование файла. (он там *.ldb файл пытается создать, блокировка пользователей, не удается и он дает ошибку типа занят или эксклюзивно открыт). Да прав не у тебя, а у MSSQL - ля, попробуй в Anzliser подключится не через "sa" а через виндового юзера, и он должен быть прописан на той машине где Access файл лежит, и вот тогда пробуй, должно получится..... теоретически.... может быть. (дорвусь до сети попробую пока это я так теоретизирую :)
выборка через ODBC для Access алиаса тоже не проходит?
← →
Nikolai_S (2002-09-04 10:00) [8]Так вот я даже пробовать не стал. Ведь нужно в SQL-Server указать полный путь к Access"кому файлу. А для этого нужно, чтобы у пользователя была зашарена (Shared) папка, где Access"кая база лежит, причем с разрешением на запись. Так что ты прав. Поэтому-то я пытался из Access"а достучаться до SQL-Server, а не наоборот. И это удачно у меня получилось (см. мое предыдущее сообщение). Я привел пример как я это сделал.
← →
sniknik (2002-09-04 10:39) [9]Дествительно так лутше, меньше мороки, для полного счастья осталось добится подключения через строку, без ODBC алиаса.
← →
Nikolai_S (2002-09-04 10:54) [10]Можно и без ODBC-алиаса, но не для всех СУБД, увы! MS SQL Server почему-то не входит в число таких СУБД. Если ты пользовался когда-нибудь мастером преобразования данных из Access в SQL Server, то наверное обращал внимание, что там тоже только через ODBC алиас можно данные передавать. А если тебе интересно, как для других СУБД (парадокс и т.д.) можно без ODBC работать, то скажи, я вышлю примеры.
← →
sniknik (2002-09-04 11:18) [11]это можно узнать без проблем, запускаеш regedit и смотриш HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\ISAM Formats
(ODBC там нет он в енжайнах, каждый исам подключен к какому нибудь енжайну а ты к нему напрямую подключился).
← →
sniknik (2002-09-04 17:34) [12]А она всетаки вертится!!!!
(это я от полного счастья см. sniknik © (04.09.02 10:39))
SELECT * FROM [ODBC;DRIVER={SQL Server};SERVER=NIKS;UID=sa;PWD=;DATABASE=tempdb;].sysusers
работает без ODBC алиасов. не надо на каждой машине прописывать!
← →
Nikolai_S (2002-09-04 17:48) [13]Слушай! Я такое описание доступа к SQL Server ведь видел, но не разобрался что к чему! Молодец, ты! Это просто круто! Я проверил и впрямь работает без ODBC-алиаса!!!
← →
Nikolai_S (2002-09-04 17:49) [14]2 sniknik
Есть еще один отвлеченный вопрос: как составить рекурсивный запрос?
Имеется таблица TABLE с полями:
ID int
PARENT_ID int
NAME varchar
Записи в таблице представляют собой дерево (поле PARENT_ID ссылается на поле ID - т.е. на запись-предок).
Вопрос такой: можно ли составить SQL запрос таким образом, чтобы получить выборку, содержащую всех предков записи с заданным ID в порядке, начиная с самого верхнего по уровню предка?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.09.26;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c