Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Connettere da SQL un database MySql
venerdì 21 luglio 2006 - 19.04
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
biggiu
Profilo
| Junior Member
179
messaggi | Data Invio:
ven 21 lug 2006 - 19:04
Salve, sono nuovo e cerco aiuto.
Il problema e' il seguente :
debbo realizzare un gestionale in ambiente windows sviluppato con .NET e DataBase Microsoft SQL.
Una parte dei dati debbo rilevarli dal server Linux e dal DataBase MySql.
Sono riuscito a realizzare una DNS per la connessione che funziona correttamente.
Ho provato a collegarmi al DataBase MySql da Access e la cosa ha funzionato.
Ora vorrei sapere se :
e' possibile eseguire un collegamento al DataBase MySql attraverso SQL Server Enterprise Manager.
In generale come devo precedere per riuscire a consultare dalla mia procedura il DataBase MySql.
Grazie per la collaborazione.
BigGiu
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
ven 21 lug 2006 - 21:10
>e' possibile eseguire un collegamento al DataBase MySql attraverso
>SQL Server Enterprise Manager.
>
>In generale come devo precedere per riuscire a consultare dalla
>mia procedura il DataBase MySql.
Ciao BigGiu,
innanzitutto benvenuto su dotNetHell
Ora veniamo al problema. Se sei riuscito a definire un DSN allora hai già fatto il 90% del lavoro.
In SQL Server puoi creare un Linked Server che utilizza il DNS per connettersi a MySQL.
Questa operazione può essere eseguita direttamente da Enterprise Manager oppure eseguendo da Query Analyzer la stored procedure di sistema sp_addlinkedserver.
Leggi sui Books Online il seguente paragrafo:
"OLE DB Provider for ODBC"
http://msdn.microsoft.com/library/en-us/acdata/ac_8_qd_12_61yb.asp
Una volta definito il Linked Server, andrai ad interrogare MySQL utilizzando il four-part name, ovvero referenziando gli oggetti come LinkedServer.Catalogo.Schema.Oggetto oppure puoi eseguire query pass-through utilizzando la funzione OPENQUERY():
"Distributed Query Architecture"
http://msdn.microsoft.com/library/en-us/architec/8_ar_sa_6vz9.asp
"OPENQUERY"
http://msdn.microsoft.com/library/en-us/tsqlref/ts_oa-oz_5xix.asp
Infine, se devi connetterti una tantum a MySQL puoi evitare di definire un Linked Server permanente, utilizzando una query ad-hoc tramite la funzione OPENROWSET():
"OPENROWSET"
http://msdn.microsoft.com/library/en-us/tsqlref/ts_oa-oz_78z8.asp
>Grazie per la collaborazione.
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
biggiu
Profilo
| Junior Member
179
messaggi | Data Invio:
lun 24 lug 2006 - 10:55
Grazie per il cortese interessamento.
Ho provato la connessione e sembra che funzioni.
Ho anche provato ed eseguire (da SQL Q.A.) una OPENQUERY cosi' strutturata :
SELECT *
FROM OPENQUERY(Nome_Server, 'SELECT * FROM nome_file')
ma ottengo il seguente messaggio :
Server: messaggio 7347, livello 16, stato 1, riga 1
Il provider OLE DB 'MSDASQL' ha restituito una lunghezza di dati imprevista per la colonna di lunghezza fissa '[MSDASQL]codstr'. La lunghezza prevista è 4, mentre la lunghezza restituita è 0.
Se hai qualche informazione in merito te ne sarei grato.
Ciao!
BigGiu
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !