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.