powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ADO - два connection - общие данные?
8 сообщений из 8, страница 1 из 1
ADO - два connection - общие данные?
    #32719554
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A97
Есть два ADODB.connection:
одно к Oracle
другое к .mdb

как перекачивать данные из mdb Oracle?
- открыв в каждом соединении по рекродсету?
а дальше что?

если нельзя, то как по-другому?
ADO+Oracle - DAO+mdb?
...
Рейтинг: 0 / 0
ADO - два connection - общие данные?
    #32719572
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ADODB.Stream
...
Рейтинг: 0 / 0
ADO - два connection - общие данные?
    #32719592
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
см. также
отсоединенный recordset
...
Рейтинг: 0 / 0
ADO - два connection - общие данные?
    #32719599
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ох..неть до чего люди в своих исследованиях доходят, короче, изголяется кто, как может. Интересно как такая связка вообще работает, в смысле стабильности.
...
Рейтинг: 0 / 0
ADO - два connection - общие данные?
    #32719699
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно еще воспользоватся гетерогенными Jet запросами

вот например как я заливаю данные из MSSQL в локальный MDB-к
Dim dbe As DAO.DBEngine
Dim db As DAO.Database
Dim q As DAO.QueryDef

Set dbe = New DAO.DBEngine
If Dir(CurrentProject.Path + "\" + GetUserName() + "__tmpDSA_MJ.mdb", vbNormal) <> "" Then _
Kill CurrentProject.Path + "\" + GetUserName() + "__tmpDSA_MJ.mdb"
Set db = dbe.Workspaces(0).CreateDatabase(CurrentProject.Path + "\" + GetUserName() + "__tmpDSA_MJ.mdb", dbLangGeneral)
Set q = db.CreateQueryDef("spq")
q.Connect = "ODBC;DRIVER={SQL Server};SERVER=" + GetServerName() + ";DATABASE=" + GetDBName() + ";Trusted_Connection=yes;dsn=;"
q.SQL = "exec dbo.DSA_MJ_p '" + SQLDate(dtDateBeg()) + "','" + SQLDate(dtDateEnd()) + "'"
q.Close
db.Execute "select * INTO TmpWr1 from spq"

Очевидно что для Oracle поменяется только строка q.Connect
запрос к серверу можно использовать для обратной перекачки mdb->сервер
но гетерогенные запросы сравнительно медленны т.к.
выполняются клиентом мощность которого может быть ограничена
поэтому я предпочитаю в этом случае получать доступ к MDB
со стороны сервера используя вьюхи типа
SELECT *
FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0',
'Password="";User ID=Admin;Data Source=\\СетевойПуть\МойФайл.mdb;Mode=Share Deny Write;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don''t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False'
)...[МояТаблица] Rowset_1
или линкованный сервер
Есть ли такая возможность в Oracle я не знаю.
...
Рейтинг: 0 / 0
ADO - два connection - общие данные?
    #32719821
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извратишься не до того
когда через ODBC перекачивает на сервер 10 записей/сек
(при 100000 записей время посчитаешь сам ;)

народ, а примерчик с ADO бы?
читать таблицу mdb - > писать в ADO рекордсет, открытый к серверу?
как это все вместе соединить?
...
Рейтинг: 0 / 0
ADO - два connection - общие данные?
    #32720355
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например вот так
Dim rsa As ADODB.Recordset
Dim rsd As DAO.Recordset

cnn.Execute "CREATE TABLE #DSA_TmpRep (MeetingID int NOT NULL ,MeetAdrDate smalldatetime NOT NULL,Sort_ID [int] IDENTITY (1, 1) NOT NULL)"

Set rsd = Me.Recordset.Clone
rsd.Filter = Me.Filter
rsd.Sort = Me.OrderBy

Set rsa = New ADODB.Recordset
rsa.Open "#DSA_TmpRep", cnn, adOpenForwardOnly, adLockBatchOptimistic, adCmdTable

Do While Not rsd.EOF
rsa.AddNew Array("MeetingID", "MeetAdrDate"), _
Array(rsd!MeetingID, rsd!MeetAdrDate)
rsd.MoveNext
Loop
rsa.UpdateBatch
rsa.Close
Set rsa = Nothing
rsd.Close
Set rsd = Nothing


DoCmd.OpenReport "DSA_MJ_rep", acViewPreview
cnn.Execute "drop table #DSA_TmpRep"
...
Рейтинг: 0 / 0
ADO - два connection - общие данные?
    #32720863
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Было дело, перекачивал большие обьёмы данных из mdb в MySQL.

Самый быстрый способ оказался следующим:
- импортируем набор данных в текстовый файл из mdb;
- посылаем запрос на сервер (MySQL), который закачивает данные из текстового файла;

Загрузка происходила раз в 100 быстрее.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ADO - два connection - общие данные?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]