Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 взаимодействие MySQL и MS SQL  [new]
FeetS
Member

Откуда:
Сообщений: 10
Доброе время суток. Появился вопрос такой :

MySQL база уже существует, а мне нужно создать клиентское приложение (на С++ билдере, не суть) используя MSSQL, беря информацию из MySQL. Т.е. программа отображает список юзеров(MSSQL) и можно посмотреть какие документы(MySQL) у них на руках.

Имеется MySQL таблица с номером документа (id_doc) и его описанием (discr).
Имеется MSSQL таблица с ФИО (id_user, name).

У каждого человека(из MSSQL) может иметься более одного документа(из MySQL).
Как обеспечить взаимодействие этих таблиц в программе для вывода списка документов на руках у каждого юзера?
Я думаю может добавить столбец в MSSQL, в котором будут хранится id_doc для каждого юзера - на пример Иванов И.И. у него на руках имеются документы с id_doc 1, 123, 1092. Но как это будет работать не понимаю =) как считывать из одной ячейки сразу несколько значений.

Грубо говоря, как привязать к одному значению из ms sql несколько значений из mysql. Или тут возможны другие варианты? Спасибо за внимание.
17 апр 13, 07:45    [14190190]     Ответить | Цитировать Сообщить модератору
 Re: взаимодействие MySQL и MS SQL  [new]
aleks2
Guest
1. Может лучче в управдомы?
2. Связь многие-ко-многим
Таблица
(id_user, id_doc)
17 апр 13, 07:51    [14190193]     Ответить | Цитировать Сообщить модератору
 Re: взаимодействие MySQL и MS SQL  [new]
FeetS
Member

Откуда:
Сообщений: 10
aleks2
2. Связь многие-ко-многим
Таблица
(id_user, id_doc)


Хорошо, а что делать если id_doc находится в MySQL, а id_user в MS SQL? =(
17 апр 13, 08:36    [14190233]     Ответить | Цитировать Сообщить модератору
 Re: взаимодействие MySQL и MS SQL  [new]
aleks2
Guest
FeetS
aleks2
2. Связь многие-ко-многим
Таблица
(id_user, id_doc)


Хорошо, а что делать если id_doc находится в MySQL, а id_user в MS SQL? =(


Ты чо, издеваешься?
Таблице
(id_user, id_doc)
без разницы, какие числа ты туды напишешь и где она будет расположена.

Или ты надеешься на "самозаполнение" - дык кнопка "Сделать так як Я хОчу!" пока в стадии альфа-тестирования.
17 апр 13, 08:49    [14190259]     Ответить | Цитировать Сообщить модератору
 Re: взаимодействие MySQL и MS SQL  [new]
FeetS
Member

Откуда:
Сообщений: 10
aleks2

Ты чо, издеваешься?
Таблице
(id_user, id_doc)
без разницы, какие числа ты туды напишешь и где она будет расположена.

Или ты надеешься на "самозаполнение" - дык кнопка "Сделать так як Я хОчу!" пока в стадии альфа-тестирования.


Походу издеваюсь ) дело в том что таблица с id_doc постоянно изменяется (изменяется описание документа), нужно поддерживать актуальность. Каждую минуту копировать таблицу с документами из mysql в mssql? Или можно сделать так чтобы id_doc из связующей таблицы в mssql ссылалось на id_doc в mysql - такое реально? я что-то вообще запутался >_<
17 апр 13, 09:05    [14190297]     Ответить | Цитировать Сообщить модератору
 Re: взаимодействие MySQL и MS SQL  [new]
kain111
Member

Откуда:
Сообщений: 227
в чем проблема то ?
как тебе указывали, создаешь таблицу дополнительно на одном из серверов и складываешь туда связи (id_user, id_doc)
Ты в своем клиентском приложении как взаимодействие с БД строить будешь ? наверняка создашь функции get_id_user() вызвав которую ты получишь список всех пользователей. в теле которой будет запрос к бд MySQL , затем получив нужного пользователя вызовешь функцию get_id_docs(id_user), в которой будет выполняться селект к серверу на котором будет связующая таблица. затем уже ызовешь функции det_doc(id_doc) для всех возможных id_doc и получишь нужные документы.
17 апр 13, 09:27    [14190387]     Ответить | Цитировать Сообщить модератору
 Re: взаимодействие MySQL и MS SQL  [new]
PaulYoung
Member

Откуда: Москва
Сообщений: 2567
Сдается мне, что никакой огород городить вообще не нужно... MySQL, MSSQL... Что мешает хранить данные в одном месте без этого геморроя?
17 апр 13, 10:03    [14190565]     Ответить | Цитировать Сообщить модератору
 Re: взаимодействие MySQL и MS SQL  [new]
FeetS
Member

Откуда:
Сообщений: 10
Как зная id_user, через связующую таблицу mssql получить данные из mysql? Т.е. id_user = 1, смотрим в связующую таблицу(mssql) и там у нас есть несколько строк с этим id_user, для каждой строки берем id_doc и его смотрим в другой таблице (mysql) и выводим их на экран. Вот как это организвоать? Были бы эти таблицы в одной БД можно былобы через ADOQuery запрос сделать, а тут незнаю (
14 май 13, 20:10    [14295354]     Ответить | Цитировать Сообщить модератору
 Re: взаимодействие MySQL и MS SQL  [new]
iiyama
Member

Откуда:
Сообщений: 642
что мешает Вам создать второй коннекшен к БД Mysql и сделать запрос через уже указанный вами компонент ADOQuery?
14 май 13, 20:37    [14295422]     Ответить | Цитировать Сообщить модератору
 Re: взаимодействие MySQL и MS SQL  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
FeetS,

Distributed Queries
14 май 13, 20:41    [14295427]     Ответить | Цитировать Сообщить модератору
 Re: взаимодействие MySQL и MS SQL  [new]
komrad
Member

Откуда:
Сообщений: 5760
FeetS,

linked server на базу MySQL
14 май 13, 20:45    [14295438]     Ответить | Цитировать Сообщить модератору
 Re: взаимодействие MySQL и MS SQL  [new]
iiyama
Member

Откуда:
Сообщений: 642
komrad, человек 2 дня как с мускулом познакомился, а Вы ему про linked server
ИМХО ему быстрее и проще будет разобраться с доступом к mysql на клиенте.
14 май 13, 21:14    [14295574]     Ответить | Цитировать Сообщить модератору
 Re: взаимодействие MySQL и MS SQL  [new]
iiyama
Member

Откуда:
Сообщений: 642
к предидущему посту,
уже плохо помню стройку лет 10 не писал, но из штатных средств- dbExpress (прилинковать мускульную либу к проекту не забудь + мидас) либо ADO - скачать драйвер ODBC; Либо нештатные -**DAC и куча другого.
но все это уже в другую ветку форума.
14 май 13, 21:22    [14295608]     Ответить | Цитировать Сообщить модератору
 Re: взаимодействие MySQL и MS SQL  [new]
FeetS
Member

Откуда:
Сообщений: 10
Спасибо. Да я ODBC использую.
Делаю запрос ADOQuery1 с сервера mssql
ADOQuery1->SQL->Text = "SELECT * FROM table_hlp WHERE ID_sotrudniki = Мое значение"; // тут он мне выдает результат о том какие ID_doc у сотрудника конкретного. 


Поидеи вот и запросить эти ID_doc с другого сервера осталось. Но какой синтакисис то, вот чего не понимаю. Т.е. я щас использую ADOQuery2 для запроса на mysql
ADOQuery2->SQL->Text = "SELECT * FROM Doc WHERE ID_doc IN 
                                      (SELECT * FROM table_hlp WHERE ID_sotrudniki = Мое значение"); // Но эта таблица на другом сервере, он   не поймет что от него требуют.


Если только можно как-то так указать?
ADOQuery2->SQL->Text = "SELECT * FROM Doc WHERE ID_doc IN 
                                      (ADOQuery1->SQL->Text = "SELECT * FROM table_hlp WHERE ID_sotrudniki = Мое значение"); // Но, что-то мне подсказывает что это бред
14 май 13, 23:44    [14296177]     Ответить | Цитировать Сообщить модератору
 Re: взаимодействие MySQL и MS SQL  [new]
komrad
Member

Откуда:
Сообщений: 5760
FeetS,

так и делай - работай через сиквел
только если создашь linked server на свою базу MySQL, запросы к удаленной таблице будут выглядеть примерно так :

select * from MYSQLLinkedServer.MYSQLdatabase.owner.Table1


линков как это сделать куча, вот, например, с картинками и по шагам
15 май 13, 01:01    [14296447]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить