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
Insert da Access 2003 ad SQL 2000
martedì 17 giugno 2008 - 14.16
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
bluland
Profilo
| Guru
1.149
messaggi | Data Invio:
mar 17 giu 2008 - 14:16
Salve,
Come da oggetto, vorrei trovare il modo migliore per fare tale operazione, descrivo lo scenario:
ho un db Sql server su server 1 ed un db access su server 2 tutti i giorni circa da access devono essere inviati circa
30000 record, ora la prima cosa che mi viene in mente e' quella di fornire al proprietario del db access una Stored procedure che fa l'insert e lui tramite
una connessione ODBC puo' crearsi magari un applicativo che prenda i dati di access e li inserisca in SQL srv, ma questo significa che dovrebbe
effettuare n volte una Insert (e non mi sembra molto performante),
accetto altre idee o suggerimenti..
Saluti
--------------------
Vincenzo PESANTE
System Engineer
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mar 17 giu 2008 - 14:19
>ho un db Sql server su server 1 ed un db access su server 2 tutti
>i giorni circa da access devono essere inviati circa
>30000 record
1) i due DBMS sono interconnessi tra di loro oppure i due server non "si vedono"?
>ora la prima cosa che mi viene in mente e' quella
>di fornire al proprietario del db access una Stored procedure
>che fa l'insert e lui tramite
>una connessione ODBC puo' crearsi magari un applicativo che prenda
>i dati di access e li inserisca in SQL srv, ma questo significa
>che dovrebbe
>effettuare n volte una Insert (e non mi sembra molto performante),
2) Una stored procedure in Access? Si tratta di un .mdb o di un progetto adp?
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
bluland
Profilo
| Guru
1.149
messaggi | Data Invio:
mar 17 giu 2008 - 14:50
>>ho un db Sql server su server 1 ed un db access su server 2 tutti
>>i giorni circa da access devono essere inviati circa
>>30000 record
>1) i due DBMS sono interconnessi tra di loro oppure i due server
>non "si vedono"?
Sono sotto lo stesso dominio.
Anche se il server2 non e' altro che un pc client, cmq gli forniro' le credenziali per accedere al Server Sql
>
>>ora la prima cosa che mi viene in mente e' quella
>>di fornire al proprietario del db access una Stored procedure
>>che fa l'insert e lui tramite
>>una connessione ODBC puo' crearsi magari un applicativo che prenda
>>i dati di access e li inserisca in SQL srv, ma questo significa
>>che dovrebbe
>>effettuare n volte una Insert (e non mi sembra molto performante),
>2) Una stored procedure in Access? Si tratta di un .mdb o di
>un progetto adp?
si tratta di un .mdb, ma l'applicazione dovra' usufruire di una procedura residente sul Server Sql, quindi prendere i dati dal db Access locale e attraverso ODBC dovra effettuare l'insert con una SP segnalata da me.
>
Ciao
--------------------
Vincenzo PESANTE
System Engineer
bluland
Profilo
| Guru
1.149
messaggi | Data Invio:
mar 17 giu 2008 - 14:54
Pensavo magari di utilizzare una procedura tipo
Insert into tableSQL
Select * from OpenRowset('''', ''Driver={(*mdb;)}; etc..
facendogli passare come parametro il path per trovare il db access.
e solo un idea!
--------------------
Vincenzo PESANTE
System Engineer
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mar 17 giu 2008 - 15:47
>>1) i due DBMS sono interconnessi tra di loro oppure i due server
>>non "si vedono"?
>Sono sotto lo stesso dominio.
>Anche se il server2 non e' altro che un pc client, cmq gli forniro'
>le credenziali per accedere al Server Sql
Su questo PC risiede il file mdb?
>>2) Una stored procedure in Access? Si tratta di un .mdb o di
>>un progetto adp?
>
>si tratta di un .mdb, ma l'applicazione dovra' usufruire di una
>procedura residente sul Server Sql, quindi prendere i dati dal
>db Access locale e attraverso ODBC dovra effettuare l'insert
>con una SP segnalata da me.
Quindi è SQL Server che deve pescare i dati dal file .mdb e non viceversa come invece hai scritto nel primo post?
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
bluland
Profilo
| Guru
1.149
messaggi | Data Invio:
mar 17 giu 2008 - 16:05
>>>1) i due DBMS sono interconnessi tra di loro oppure i due server
>>>non "si vedono"?
>>Sono sotto lo stesso dominio.
>>Anche se il server2 non e' altro che un pc client, cmq gli forniro'
>>le credenziali per accedere al Server Sql
>Su questo PC risiede il file mdb?
esatto!
>
>>>2) Una stored procedure in Access? Si tratta di un .mdb o di
>>>un progetto adp?
>>
>>si tratta di un .mdb, ma l'applicazione dovra' usufruire di una
>>procedura residente sul Server Sql, quindi prendere i dati dal
>>db Access locale e attraverso ODBC dovra effettuare l'insert
>>con una SP segnalata da me.
>Quindi è SQL Server che deve pescare i dati dal file .mdb e non
>viceversa come invece hai scritto nel primo post?
Ops hai ragione cosi si capisce l'inverso!
--------------------
Vincenzo PESANTE
System Engineer
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mar 17 giu 2008 - 16:14
>>Quindi è SQL Server che deve pescare i dati dal file .mdb e non
>>viceversa come invece hai scritto nel primo post?
>Ops hai ragione cosi si capisce l'inverso!
OK, ora ci siamo.
Dato che periodicamente SQL Server dovrà imporate dei dati dal file .mdb, ti suggerisco di creare una share nella directory che contiene il file .mdb e lato SQL Server definire un linked server che punti a tale file.
L'importazione potrai eseguirla tramite un job schedulato che esegua una query sul linked server.
Per tutti i dettagli consulta i Books Online.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
bluland
Profilo
| Guru
1.149
messaggi | Data Invio:
mar 17 giu 2008 - 19:35
>>>Quindi è SQL Server che deve pescare i dati dal file .mdb e non
>>>viceversa come invece hai scritto nel primo post?
>>Ops hai ragione cosi si capisce l'inverso!
>OK, ora ci siamo.
>Dato che periodicamente SQL Server dovrà imporate dei dati dal
>file .mdb, ti suggerisco di creare una share nella directory
>che contiene il file .mdb e lato SQL Server definire un linked
>server che punti a tale file.
>L'importazione potrai eseguirla tramite un job schedulato che
>esegua una query sul linked server.
quindi al linked server dovrei dargli il path del pc dove esiste l'mdb,
per cui dovrà esistere una shared area su quel pc accessibile dal server sql.
poi il resto viene da se..
(potrei usare tranquillamente una select... into...)
che è molto piu performante di n insert via ODBC
grazie
Saluti
--------------------
Vincenzo PESANTE
System Engineer
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 !