PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 25 → WX - Conectar Microsoft Sql Server Local com Linkdb em um MySql Remoto e executar Procedures, Views, Select, Updates e Deletes
WX - Conectar Microsoft Sql Server Local com Linkdb em um MySql Remoto e executar Procedures, Views, Select, Updates e Deletes
Débuté par adrianoboller, 08 juin 2015 19:19 - 15 réponses
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 08 juin 2015 - 19:19
Olá Prezados Amigos,

Tema de Hoje: Conectar Microsoft Sql Server Local com Linkdb em um MySql Remoto e executar Procedures, Views, Select, Updates e Deletes com a plataforma PcSoft. Nesse passo a passo vou passar todos os detalhes de como criar esse procedimento.

Passos:

1o. Ter um servidor Windows Server com Microsoft Sql Server instalado

2o. Ter sua base criada nesse servidor local

3o. Ter outro servidor na rede ou remoto com Windows Server, MySql Free instalado (versão 5.3.4)

4o. Ter sua base criada nesse servidor remoto

5o. Ter acesso via rede ao servidor remoto com mysql com ip fixo ou dns conhecido.

6o. Instalar no servidor local que tem o Ms Sql server instaldo e rodando o Driver ODBC do MySql Free, o endereço para Download é esse aqui abaixo (Deve ter uma conta de acesso da Oracle para poder baixar, sempre use instaladores dos sites oficiais para evitar virus ou surpresas indesejadas):

http://dev.mysql.com/downloads/connector/odbc/



Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 08 juin 2015 - 20:19
7o. Acessar o painel de controle do computador onde se encontra o MsSQL Server instalado localmente

8o. Clicar na opção: Ferramentas Administrativas

9o. Em: "Origens de Dados ODBC 32bits ou 64bits" , verifique qual a versão do Windows Server que esta instalado se é 32bits ou 64bits para instalar a versão correta.

10o. Crie na segunda GUIA do ODBC "DSN SYSTEM" ou "DNS de Sistema" o Alias de acesso a base de dados remota do MySql, conforme imabem abaixo:



Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 08 juin 2015 - 20:23
Em Details >>










No Botão: "TEST"



Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 08 juin 2015 - 20:31
11o. No Microsoft SQL Management Studio

Localize na ramificação do Object Explorer: [+] Server Objects

Click com o botao direito do mouse em: [+] Linked Servers



Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 08 juin 2015 - 20:56
12o. Escolha da imagem acima a opção: New Linked Server...
Defina os seguintes dados da conexão tendo esses em mãos:
Exemplo
DataSource: basedados_xarope; mysql server = 177.1.7.18; Porta = 3306; data base = dbtesteconnect_mysql; user = xarope; pass = xarope



Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 08 juin 2015 - 21:16
Na Tela: Linked Server Properties

Exemplo de Provider String:

DRIVER={MySQL ODBC 5.1 Driver}; SERVER=177.1.7.18; PORT=3306; DATABASE=dbtesteconnect_mysql; USER=xarope; PASSWORD=xarope; OPTION=3;
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 08 juin 2015 - 21:50
USE [master]
GO

/ Object: LinkedServer [DB_SPEEDTAXI] Script Date: 08/06/2015 13:13:08 /

EXEC master.dbo.sp_addlinkedserver @server = N'basedados_xarope', @srvproduct=N'MySQL', @provider=N'MSDASQL', @datasrc=N'basedados_xarope', @provstr=N'DRIVER={MySQL ODBC 5.1 Driver}; SERVER=177.1.7.18; PORT=3306; DATABASE=dbtesteconnect_mysql; USER=xarope; PASSWORD=xarope; OPTION=3;'

/ For security reasons the linked server remote logins password is changed with ######## /

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'basedados_xarope',@useself=N'True',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL

GO

EXEC master.dbo.sp_serveroption @server=N'Dbasedados_xarope', @optname=N'collation compatible', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'basedados_xarope', @optname=N'data access', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'Dbasedados_xarope', @optname=N'dist', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'basedados_xarope', @optname=N'pub', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'basedados_xarope', @optname=N'rpc', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'basedados_xarope', @optname=N'rpc out', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'basedados_xarope', @optname=N'sub', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'basedados_xarope', @optname=N'connect timeout', @optvalue=N'0'
GO

EXEC master.dbo.sp_serveroption @server=N'basedados_xarope', @optname=N'collation name', @optvalue=null
GO

EXEC master.dbo.sp_serveroption @server=N'basedados_xarope', @optname=N'lazy schema validation', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'basedados_xarope', @optname=N'query timeout', @optvalue=N'0'
GO

EXEC master.dbo.sp_serveroption @server=N'basedados_xarope', @optname=N'use remote collation', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'basedados_xarope', @optname=N'remote proc transaction promotion', @optvalue=N'true'
GO
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 08 juin 2015 - 22:24
13o. Testando se deu certo



Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 08 juin 2015 - 22:25
Resultado ok do teste:



Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 08 juin 2015 - 22:31
Outro exemplo:

Exec master.dbo.sp_addlinkedserver
@server=N’localhost’,
@srvprodcut=N’MySQL’,
@provider=N’MSDASQL’,
@datasrc=N’MySQL’

Exec master.dbo.sp_addlinkedserverlogin
@server=N’localhost’,
@locallogin=NULL,
@rmtuser=N’user’,
@rmtpassword=N'<your password>’
@rmtsrvname=N’localhost’
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 08 juin 2015 - 22:43
Em Linked Servers

[+] Providers



Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 08 juin 2015 - 22:45
Executando codigos com Linkdb:

SELECT * FROM OPENQUERY(DB_SPEEDTAXI, 'SELECT * FROM INFORMATION_SCHEMA.TABLES LIMIT 10')

SELECT * FROM OPENQUERY(DB_SPEEDTAXI, 'SELECT * FROM fv_cliente')
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 08 juin 2015 - 22:46
Open a new query tab, and run a select query [ select * from openquery(MYSQL,‘select * from reptab’)]

Since we also have enabled the RPC, we can test the same using the following query [Execute (‘select * from reptab‘)at MYSQL]

If it returns the same results, the RPC is configured fine.

Follow all the above steps to configure working Linked Server to MySQL.




Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 08 juin 2015 - 22:58
:merci: