16 / 1 / 0
Регистрация: 01.08.2013
Сообщений: 121
Записей в блоге: 1

Как обеспечить взаимодействие MS SQL Server и MySQL

03.09.2014, 15:19. Показов 11381. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть база access типа файл-файл
Вот-вот таблицы переедут на SQL сервер, а запросы будут переделаны на запросы к серверу. И будет файл-сервер.
Сервер - это обычный комп (разве что мощнее немного остальных), который к локальной сети подключён.

А теперь о сути вопроса: есть необходимость на сайте сделать страничку, где при вводе, например, номера паспорта и ещё чего-нибудь будет осуществляться поиск по базе и выводиться определённый результат туда же - на сайт.
Причём не хочется хранить на MySQL все таблицы, а только те, по которым поиск будет вестить и результат выводиться.

Так вот - как быть? Если тут SQLServer, а там MySQL. Как связать? Как наладить? Что вообще делать и с чего начинать? Какая идея и принцип?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.09.2014, 15:19
Ответы с готовыми решениями:

Как обеспечить взаимодействие EntityFramework 4.1 c SQL Server Express
Здравствуйте. Очень прошу помочь. Осваиваюсь в сабже. В основном по хорошей книге ASP NET MVC 3 Все прекрасно понятно но на этапе...

Взаимодействие C# и SQL Server
Парни подскажите пожалуйста, как можно сделать в Си-шарпе через консольное приложение, чтобы программа написаная через консоль связывалась...

Как обеспечить взаимодействие JavaScript и C#
Господа, Есть в JavaScript карта гугловская, на ней из SQL маркеры. Отображается в опере или подобном. Нужно нажатие на маркер...

15
 Аватар для Ice_and_Fire
512 / 298 / 37
Регистрация: 22.06.2011
Сообщений: 929
03.09.2014, 16:20

Не по теме:

файл-файл
Вот-вот
Вы из Баден-Бадена?


Линкованный сервер
OpenRowSet
http://connectionstrings
1
16 / 1 / 0
Регистрация: 01.08.2013
Сообщений: 121
Записей в блоге: 1
03.09.2014, 21:11  [ТС]
Перелапатил десяток бесплатных хостингов с MySQL, но ни к одной из этих бах подключиться не могу...
В строчке Сервер нужно же указывать адрес база дынных типа kzkzkz.com?
нифига не выходит.
Где можно гарантированно законектиться?

Добавлено через 3 часа 26 минут
Ice_and_Fire,

Спасибо за ссылки. Удалось найти хостинг с MySQL, который поддреживает удалённый доступ к базе.
Скачал драйвер для ODBC. Подключил MySQL успешно.
Создал в SQL SERVER связанный сервер.
Попробовал написать запрос к серверу:

SQL
1
SELECT *  FROM OPENROWSET('MSDASQL.1','DSN=Site;PWD=мой пароль;UID=имя пользователя;', 'select * from Autumn ')
но ничего не выходит. пишет:
Кликните здесь для просмотра всего текста
Сообщение 15281, уровень 16, состояние 1, строка 1
SQL Server заблокировал доступ к STATEMENT "OpenRowset/OpenDatasource" компонента "Ad Hoc Distributed Queries", поскольку он отключен в результате настройки конфигурации безопасности сервера. Использование "Ad Hoc Distributed Queries" может быть разрешено администратором при помощи хранимой процедуры sp_configure. Дополнительные сведения о включении "Ad Hoc Distributed Queries" см. в разделе "Настройка контактной зоны" в электронной документации по SQL Server.


Как быть?(

Добавлено через 18 минут
Ice_and_Fire,

заработало другое:
SELECT * FROM OPENquery(My_SQL, 'Select * from Autumn')

А как добавить данные в таблицу? Причём не из MySQL, а из SQLServer, которая на компьютере?
Т.е. добавить, например, из базы base из таблицы Клиент все поля ИД_Клиента в базу mysql (связанные сервер под именем My_SQL) в таблицу autumn в поле ИД.
Причём не совсем добавить, а обновить новыми значениями, а старые оставить?
0
 Аватар для Ice_and_Fire
512 / 298 / 37
Регистрация: 22.06.2011
Сообщений: 929
04.09.2014, 10:17
А как добавить данные в таблицу? Причём не из MySQL, а из SQLServer, которая на компьютере?
SQL
1
2
INSERT openquery(My_sql, 'SELECT [список полей] FROM [имя таблицы на my_SQL_сервере]')
        VALUES ([значения полей])
Причём не совсем добавить, а обновить новыми значениями, а старые оставить?
Update какой-нибудь, не знаю my_sql. Что-то там было типа INSERT ON DUPLICATE KEY UPDATE

Добавлено через 14 минут
"MERGE openquery" попробуй вместо "INSERT openquery". Не пробовал для линка
0
16 / 1 / 0
Регистрация: 01.08.2013
Сообщений: 121
Записей в блоге: 1
04.09.2014, 12:20  [ТС]
Ice_and_Fire,

SQL
1
2
INSERT openquery(My_sql, 'SELECT [список полей] FROM [имя таблицы на my_SQL_сервере]')
        VALUES ([значения полей])
Ну, а как мне добавить поля не из MySQL, а из SQL Server, который на компе?

SQL
1
SELECT [список полей] FROM [имя таблицы на my_SQL_сервере]
Это куда добавлять.

SQL
1
VALUES ([значения полей])
а это откуда. А как добавить из SQL SERVER?

а про merge - это здорово)
0
 Аватар для Ice_and_Fire
512 / 298 / 37
Регистрация: 22.06.2011
Сообщений: 929
04.09.2014, 15:23
Ну, а как мне добавить поля не из MySQL, а из SQL Server, который на компе?
Этот код выполняется на MS SQL сервере
[имя таблицы на my_SQL_сервере]
Это таблица mySq КУДА вставляешь
0
16 / 1 / 0
Регистрация: 01.08.2013
Сообщений: 121
Записей в блоге: 1
04.09.2014, 15:33  [ТС]
Ice_and_Fire, Пишу:
SQL
1
2
INSERT openquery(My_SQL, 'SELECT [Фамилия] FROM [Autumn]')
VALUES (dbo.Клиент.Фамилия)
Хочу вставить на MySQL в таблицу Autumn в поле Фамилия все фамилии из SQL Server из таблицы dbo.Клиент из поля Фамилия.
Не работает.
0
 Аватар для Ice_and_Fire
512 / 298 / 37
Регистрация: 22.06.2011
Сообщений: 929
04.09.2014, 15:48
SQL
1
2
INSERT openquery(My_SQL, 'SELECT [Фамилия] FROM [Autumn]')
VALUES (SELECT Фамилия FROM  dbo.Клиент)
0
16 / 1 / 0
Регистрация: 01.08.2013
Сообщений: 121
Записей в блоге: 1
04.09.2014, 15:51  [ТС]
Ice_and_Fire,

неа...

Сообщение 156, уровень 15, состояние 1, строка 2
Неправильный синтаксис около ключевого слова "SELECT".
Сообщение 102, уровень 15, состояние 1, строка 2
Неправильный синтаксис около конструкции ")".
0
 Аватар для Ice_and_Fire
512 / 298 / 37
Регистрация: 22.06.2011
Сообщений: 929
04.09.2014, 16:13
INSERT openquery(My_SQL, 'SELECT [Фамилия] FROM [Autumn]')
(SELECT Фамилия FROM dbo.Клиент)
0
16 / 1 / 0
Регистрация: 01.08.2013
Сообщений: 121
Записей в блоге: 1
04.09.2014, 16:15  [ТС]
Ice_and_Fire, то же самое... =_=
что-то старнное с жтим SQL..
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
04.09.2014, 17:09
Цитата Сообщение от autumnrustle Посмотреть сообщение
что-то старнное с жтим SQL..
Все нормально с SQL, если сначала читать документацию.
T-SQL
1
2
INSERT openquery(My_SQL, 'SELECT [Фамилия] FROM [Autumn]')
SELECT Фамилия FROM dbo.Клиент
1
16 / 1 / 0
Регистрация: 01.08.2013
Сообщений: 121
Записей в блоге: 1
04.09.2014, 17:18  [ТС]
invm, спасибо)

заработало без скобок квадратных:

SQL
1
2
INSERT openquery(My_SQL, 'SELECT Фамилия FROM Autumn')
SELECT Фамилия FROM dbo.Клиент
Добавлено через 5 минут
invm,

может подскажете ещё в одном деле...
Для простоты (просто до этого я пытался самостоятельно разобраться) я писал не к MySQL, а просто к SQL SERVER.
Короче. Может скажете, как быть:

Есть запрос:

SQL
1
2
3
4
5
6
7
SELECT Обращения.ИД_Обращения, Заказанные_гены.ИД_Аллеля, Аллели.Аллель, Обращения.Дата_поступления, Обращения.Готов, Заказанные_гены.[Считать?], Аллель2 =
CASE
WHEN Аллели.Аллель = '-' THEN '1'
ELSE '0'
END
FROM Обращения INNER JOIN (Аллели INNER JOIN Заказанные_гены ON Аллели.ИД_Аллеля = Заказанные_гены.ИД_Аллеля) ON Обращения.ИД_Обращения = Заказанные_гены.ИД_Обращения
WHERE (((Обращения.Готов)= '0' ) AND ((Заказанные_гены.[Считать?])='1'));
Он выводит 1 в отдельном столбце, если Аллель равен -. Если вписано что-то другое, то пишет 0. Это нужно для того, чобы посчитать потом остаток работ для каждого обращения каждого клиента.
Так вот. А как мне теперь в другом запросе вызвать этот запрос, вставить Аллель2 и просуммировать его?
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
04.09.2014, 17:26
Цитата Сообщение от autumnrustle Посмотреть сообщение
А как мне теперь в другом запросе вызвать этот запрос
Создать представление и использовать его в нужных местах.
1
16 / 1 / 0
Регистрация: 01.08.2013
Сообщений: 121
Записей в блоге: 1
04.09.2014, 23:01  [ТС]
invm,

мг. Не знал о таком) Спасибо.

И ещё вопрос - можно ли будет результат запроса с ипользованием представления, записать потом в таблицу в определённое поле?

Добавлено через 5 часов 30 минут
invm,

создал представление count_ost

SQL
1
2
3
4
5
6
7
SELECT dbo.Обращения.ИД_Обращения, dbo.Заказанные_гены.ИД_Аллеля, dbo.Аллели.Аллель, dbo.Обращения.Дата_поступления, dbo.Обращения.Готов, 
dbo.Заказанные_гены.[Считать?], CASE WHEN Аллели.Аллель = '-' THEN 1 ELSE 0 END AS Expr1
FROM dbo.Обращения INNER JOIN
dbo.Аллели INNER JOIN
dbo.Заказанные_гены ON dbo.Аллели.ИД_Аллеля = dbo.Заказанные_гены.ИД_Аллеля ON 
dbo.Обращения.ИД_Обращения = dbo.Заказанные_гены.ИД_Обращения
WHERE (dbo.Обращения.Готов = '0') AND (dbo.Заказанные_гены.[Считать?] = '1')
Запрос на добавление на связанном сервере MySQL


SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
USE base;
GO
 
INSERT openquery(My_SQL, 'SELECT ИД_Клиента, ИД_Обращения, Имя, Фамилия, Номер_образца, Дата_поступления, Осталось, ДНК, Паспорт, Протокол FROM Autumn')
SELECT Клиент.ИД_Клиента, Обращения.ИД_Обращения, Клиент.Имя, Клиент.Фамилия, Обращения.Номер_образца, Обращения.Дата_поступления, 
SUM(count_ost.Expr1) AS Остлось, CASE WHEN Обращения.ДНК = '1' THEN 'Да' ELSE 'Нет' END AS 'ДНК?', 
CASE WHEN Обращения.Паспорт = '1' THEN 'Да' ELSE 'Нет' END AS 'Паспорт?', 
CASE WHEN Обращения.Протокол = '1' THEN 'Да' ELSE 'Нет' END AS 'Протокол?'
FROM Клиент INNER JOIN
Обращения ON Клиент.ИД_Клиента = Обращения.ИД_Клиента INNER JOIN
count_ost ON Обращения.ИД_Обращения = count_ost.ИД_Обращения
GROUP BY Клиент.ИД_Клиента, Обращения.ИД_Обращения, Клиент.Имя, Обращения.Номер_образца, Обращения.Дата_поступления, Обращения.ДНК, 
Обращения.Паспорт, Обращения.Протокол, Клиент.Фамилия
Вот только первые три поля он обрезает - вставляет нули в числовые значения, а в Имя - пусто. Хотя сам запрос SELECT работает нормально. В чём дело?
0
0 / 0 / 0
Регистрация: 05.04.2015
Сообщений: 2
05.04.2015, 01:44
всем здравствуйте

подскажите - дибильный может быть вопрос - бьюсь третий час - не могу создать связанный сервер в ms sql
пишет такую ошибку

ЗАГОЛОВОК: Microsoft SQL Server Management Studio
------------------------------

Ошибка соединения со связанным сервером.

------------------------------
ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ:

При выполнении инструкции или пакета Transact-SQL возникло исключение. (Microsoft.SqlServer.ConnectionInfo)

------------------------------

Не удалось проинициализировать объект источника данных поставщика OLE DB "MSDASQL" для связанного сервера "LINKED_MYSQL".
Поставщик OLE DB "MSDASQL" для связанного сервера "LINKED_MYSQL" вернул сообщение "[Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию". (Microsoft SQL Server, ошибка: 7303)

Чтобы получить справку, щелкните: http://go.microsoft.com/fwlink... nkId=20476

------------------------------
КНОПКИ:

ОК
------------------------------


что делаю не так?
пытался подключиться как указано в этой статье

Добавлено через 1 час 36 минут
вроде как создать корректно получилось - теперь другая беда

ЗАГОЛОВОК: Microsoft SQL Server Management Studio
------------------------------

Ошибка соединения со связанным сервером.

------------------------------
ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ:

При выполнении инструкции или пакета Transact-SQL возникло исключение. (Microsoft.SqlServer.ConnectionInfo)

------------------------------

Поставщик OLE DB "MySQL_LINK" не зарегистрирован. (Microsoft SQL Server, ошибка: 7403)

Чтобы получить справку, щелкните: http://go.microsoft.com/fwlink... nkId=20476

------------------------------
КНОПКИ:

ОК
------------------------------


причем вроде как регистрацию выполнил как по этой сцылке
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.04.2015, 01:44
Помогаю со студенческими работами здесь

Как обеспечить взаимодействие Windows Forms и Webservice
Создаю проект Windows Application. Добавляю ссылку на Web-сервис (мой.jpg). Но сервис не работает. В чужом приложении (чужой.jpg)...

Microsoft SQL Server Management studio 17 не подключается к mysql server 5.7
Проще говоря studio его вообще не видит, пишу чтобы подключился (имя указываю то, которое вводил при установки сервера), вообще список...

Взаимодействие веб-сервиса asmx и SQL Server 2005
привет! извиняюсь, что данное сообщение находится на другом форуме, т.к. так мне было легче тут отписаться)) , и там в сообшении есть...

Как подключиться к базе данных MySQL через Microsoft SQL Server Management Studio 18
База данных находиться на удаленном сервере. Microsoft SQL Server Management Studio 18 на личном ПК. Админка на сервере ISPManager. ...

ComboBox и поля синхронного просмотра. Взаимодействие через ADO с БД MS SQL Server
Здравствуйте! Пишу первую программу на C# с использованием технологии ADO. Загрузил данные в таблицу DataGridView. Эта таблица отображает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru