Conversione database da Access A SQL

annuncio pubblicitario
Note operative per la conversione di un database
da Access A SQL
Prima di iniziare il trasferimento i database .mdb devono essere stati aggiornati alla versione
4.00 e si consiglia di eseguire anche la funzione Confronta DataBase (dal Menu: tasti Ctrl Shift
Alt) per assicurarsi che siano completamente allineati.
Dovrà essere trasferito obbligatoriamente anche il database AziMenu.mdb
Nella rete che si utilizza deve essere disponibile una sessione SqlServer
Se tale sessione servirà solo per il software AziendaPC si possono fare le modifiche che
seguono direttamente sul Database di default (Model) in modo che vengano riportate
automaticamente su tutti i database che verranno trasferiti, in caso contrario occorrerà
eseguirle sui singoli DB dopo averli trasferiti.
Con NomeDb si intenderà il nome assegnato al DB in ambiente SqlServer
Istruzioni da eseguire (usando un utente con le permissioni o di proprietario o di Administrator):
alter database NomeDb set READ_COMMITTED_SNAPSHOT ON
mentre nessuna sessione è attiva eseguire:
alter database NomeDb SET ALLOW_SNAPSHOT_ISOLATION ON
Eseguire il comando:
select * from sys.databases
per vedere come sono settati i flags
Per trasferire i DB scaricare SSMA - Microsoft SQL Server Migration Assistant v5.3 for Access
https://www.microsoft.com/en-us/download/confirmation.aspx?id=42656
Eseguire la versione a 32 bit o a 64 a seconda della versione di Office di cui si dispone
Se non si ha Office scaricare i runtime 2007 (a 32 bit)
http://www.microsoft.com/it-IT/download/details.aspx?id=4438
ed il PIA
http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=18346
o runtime 2010
http://www.microsoft.com/it-IT/download/details.aspx?id=10910
ed il PIA
http://www.microsoft.com/en-us/download/details.aspx?id=3508
Eseguire SSMA
La prima volta seguire i seguenti passi:




fare Close nella maschera che si è aperta
scegliere Tools
scegliere Default Project Setting
scegliere la versione di Sqlserver di cui si dispone



cambiare in General: Add Timestamp columns mettendo Never
scegliere Type Mapping (in basso a sinistra)
nelle opzioni sostituire nella colonna di destra Target type (cliccando 2 volte sulla riga o
Edit)
o datetime2 con datetime
o nvarchar(*) con varchar(*)
o nvarchar(MAX) con varchar(MAX)
Chiudere tutto e riaprire SQL Server Migration Assistant
Nella maschera seguente dare il nome di una cartella nella quale verranno messe le
informazioni per il passaggio e scegliere il tipo di SqlServer
Premere Next
Premere su AddDatabase e scegliere il DB da trasferire
Nel caso, in un secondo momento, sia necessario trasferire solo alcune tabelle, premere sul +
a sinistra del NomeDB, deselezionare tutto e selezionare solo le tabelle da caricare.
Proseguire con Next
Attenzione : in Database mettere il nome del nuovo
Quando si trasferisce AziMenu.mdb il nome deve essere AziMenu
DB
da
Creare.
Mettere la login e la Password di un utente che ha l’accesso a SqlServer
Proseguire con Next poi dare le conferme necessarie per far partire la conversione
Alla fine della conversione dare le permissioni all’utente che si vorrà utilizzare in AziendaPC per
accedere al database
Gli utenti usati devono avere il ruolo db_ddladmin per poter modificare la struttura del db
Da SqlServer Management Studio occorre aggiungere, nelle tabelle che seguono, gli indici
primari (clustered) che devono essere univoci
e si devono chiamare:
NomeTabella$PrimaryKey
dove NomeTabella va sostituito con i rispettivi nomi.
-CespitiTab
-Config
-Ditta
-ErroriCaricamento
-IvaDichPeriodGen
-TabAcq
-TabCauCon
-TabCoge
-TabFatt
-TabMagazzino
-TaBolli
-TabReg
- TabRiba
Andare sulla tabella
 premere pulsante destro
 scegliere Indici
 Nuovo Indice
 Indice Cluster
Esempio:
Per utilizzare con AziendaPC i DB trasferiti è necessario creare una connessione a ODBC:
un metodo è scrivere da start odbc poi scegliere Origini dati ODBC, cliccare su DSN su file
Questa procedura prepara il file .dsn che può essere anche fatto a mano (un file per ogni DB da
gestire e uno per il menu)
Per esempio per quanto riguarda l’accesso al DB (file .dsn da mettere nella cartella database)
può avere questo contenuto (dove nella riga Server ci va la sessione di SqlServer da usare) :
[ODBC]
DRIVER=SQL Server
DATABASE=NomeDB
SERVER=172.16.0.225
Description=Sql 2012 per NomeDB
Per il menu
[ODBC]
DRIVER=SQL Server
DATABASE=AziMenu
SERVER=172.16.0.225
Description=Sql 2012 per AziMenu
Il file AziWin.ini va corretto nell’accesso al menu:
[Menu]
Terminale=NomeTerm
DriveDB=F:
NomeDB=f:\Aziwin\SqlAziMenu.dsn
All’avvio del menu verranno chieste Login e Password da utilizzare per accedere a SqlServer
Si fa presente che è possibile creare utenti SqlServer diversi in modo che ogni utente acceda
con la propria login.
Nel file INI si possono impostare i seguenti parametri:
 Paragrafo [Menu]
PwdSqlComeAzi
Se vale S utilizza le login e password per accedere a SqlServer anche per identificare
l’utente di AziendaPc per le permissioni ai menu.

Paragrafo [Connessioni]
LoginPref=Nome Utente di accesso a SqlServer
AccDirPref=PassWord
Nella funzione ‘Gestione database aziende’, in corrispondenza alla riga di accesso al DB Sql,
nella colonna File mettere il nome del file DSN corrispondente che deve trovarsi nella cartella
Database. Nel caso si voglia mettere il file dsn in un’altra locazione mettere il percorso
completo.
Scarica