-------------------------------------------------------------------------------- DbaMgr - Una Piccola Console Alternativa per MSDE 1.0 -------------------------------------------------------------------------------- Se desiderate essere informati circa nuove versioni rilasciate di DbaMgr, inviatemi una e-mail con indicata la Vostra autorizzazione al trattamento dei dati personali ai sensi della legge 196/2003 e della Vostra volonta' di aderire a questo servizio. Il servizio e' gratuito e potra' essere sospeso in qualsiasi momento senza preventiva notifica. ============================================================================ ----- DISCLAIMER --------------------------------------------------------------- Tutto il materiale incluso prodotto dall'Autore, con l'esclusione delle dipendenze e librerie aggiuntive che sono distribuite con licenza limitata dei rispettivi produttori ed aventi diritto, e' copyright Insulin Power 1993-2007 di Andrea Montanari; e' utilizzabile senza restrizioni e distribuibile alle seguenti condizioni: In generale, DbaMgr puo' essere distribuito a corredo di altre applicazioni se: 1) non viene richiesto alcun ulteriore compenso extra per DbaMgr; 2) vengono mantenute inalterate le indicazioni dell'autore; 3) se da DbaMgr dovesse essere derivato un programma di amministrazione generale simile, senza una sostanziale modifica del codice sorgente originale, devono comunque rimanere soddisfatti i punti 1) e 2); 4) parti piu' o meno rilevanti del codice sorgente originale possono essere prelevate ed utilizzate in applicazioni gestionali senza limitazioni di sorta, fatto salvo quanto riportato al punto 3). Saro' molto lieto di essere informato di tali distribuzioni, con il vostro nome, nome dell'azienda, occupazione dell'azienda, applicativo al quale DbaMgr verra' aggiunto, dati che non verranno mai resi noti, ma solo per i miei record. Il materiale viene distribuito nella speranza che possa essere utile ad altri, senza alcuna garanzia, di nessun tipo. L'autore non si riterra' responsabile di alcun danno, perdita di dati o danneggiamenti che l'utilizzo del materiale incluso possa arrecare. USATELO A VOSTRO RISCHIO E PERICOLO -------------------------------------------------------------------------------- Doveste trovare bugs (e li troverete ...), errori o implementare migliorie, vi prego volermi contattare; sono graditi feed-back, commenti, consigli, ma non le dissacrazioni... ;-) Andrea Montanari andrea.sql@virgilio.it http://www.asql.biz/DbaMgr.shtm ************************* HISTORY ************************* ************************* 0.65.1 30/11/2007 cFileInfo Modificata rilevazione del FileSize per ovviare la limitazione dei 4gb per file prevista dalla funzione originale di Karl E. Peterson; (grazie a Andreas Loeffler per il feedback) -------------------------- 0.65.0 07/01/2007 fQuery Execute(); Corretta rilevazione del database da utilizzare via "USE dbname" ed aggiunto un refresh dei nomi dei database; (grazie a Angelo Munoz Reffo per il feedback) fResMain Aggiunta colonna alla griglia dei file fisici in modo da INIBas poter consentire la reimpostazione al path dei file MDF impostato per l'applicazione per i file che eventualmente riportino path diversi; (grazie a Gionni Reffo per il feedback) -------------------------- 0.64.0 30/08/2006 fBCP cmdNav_Click(); verificato il file di formato sia impostato prima di eseguirne l'eventuale creazione; fTBDes Modificata interfaccia e gestione in modo da gestire sia gli "oggetti" Defaults ed i Rules che in effetti sono sempre stati dimenticati; (grazie a Ian Davidson per il feedback) -------------------------- 0.63.0 12/05/2006 ObjBr AddNodes(); verificato che il database sia "on-line" prima di inlistarne gli oggetti; (grazie a Chunk Cohen per il feedback) frmMain ActMenu(); DeleteBackupHistory; modificata la data in formato ISO al fine di eliminare problematiche legate al formato data relative alle impostazioni di lingua delle login; frmMain Form_Load(); controllate da gestore errori alcune chiamate al file di configurazione circa le dimensioni e posizionamento della form principale, che potevano causare errori di overflow; (grazie a Carl Wright per il feedback) fTBDes cbo_LostFocus(); in caso di modifica di tipo di dato nello ambito di tipo carattere ([n]varchar, [n]char) viene ora preservata l'impostazione del dimensionamento della colonna se questo valore non eccede le dimensioni massime per il tipo di dato stesso; (grazie a Fabio Calzeroni per il feedback) fQuery LoadGrid(); sembrerebbe mancare un valore enumerato nelle costanti SQLDMO.SQLDMO_QUERY_DATATYPE per i valori di tipo float.. la seguente semplice declare @r as float set @r = 1.123 select @r dovrebbe ritonare il tipo SQLDMO_DTypeFloat4 (=7) ovvero SQLDMO_DTypeFloat8 (=8) ed invece ritorna [6]; (grazie a Ori Atar per il feedback) fTbDes Cbo_LostFocus(); modificando il tipo di dato da numeric a integer non venivano reinizializzate le proprieta' di scala e precisione; (grazie a Fabio Calzeroni per il feedback) -------------------------- 0.62.0 22/02/2006 fExpHtm GetScript(); modificata la stringa ritornata sostituendo < e > con < e > ; frmMain Flex_MouseUp(); regression test bug: corretto test di selezione riga; (grazie a Vincenzo Morgante per il feedback) FlexEdit hasScrollBars(); modificata procedura in hasVerticalScollBar in modo da testare la sola scroll bar verticale; -------------------------- 0.61.0 24/11/2005 frmMain Flex e TreeView; modificata la gestione degli eventi in modo da permettere selezione e contestuale apparizione del menu pop-up; (grazie a Jim Sharples per il feedback) frmMain LoadDatabaseNodes(); protetta procedura con gestgore interno per il caso di database senza nome, che impedivano il caricamento della gerarchia dei nodi di database; un informativa viene ora ritornata nel caso si presenti il problema; (grazie a Michael Ramey per il feedback) fChoseBK Aggiunta possibilita' di editare direttamente il posizionamento fisico del file di backup; fQB WriteSql(); modificata routine nell'algoritmo di fQBData generazione degli statements di JOIN; (grazie a Andreas Lohrentz per il feedback) -------------------------- 0.60.0 07/08/2005 fNewDB AddDBfile2Group(), AddLog2TransLog(); corretto salvataggio delle impostazioni di crescita dei file che non permetteva l'impostazione a crescita illimitata; (grazie a Paco Bueno per il feedback) -------------------------- 0.59.0 06/07/2005 fJobStep Aggiunto supporto per la proprieta' "Aggiungi output alla cronologia" in caso di salvataggio su file del risultato del processo che non era stato incluso; (grazie a Luan Nguyen Thanh per il feedback) fTbDes Ident2String(); corretto regression test bug che non mostrava la valorizzazione di identity; (grazie a Hill Harris per il feedback) fQuery LoadGrid(); corretto il recupero delle righe in chunk successivi in modalita' testo; (grazie a Ciro Funicola per il feedback) frmMain Aggiunta possibilita' di selezionare l'ordinamento del fLang risultato delle statistiche del database; bObjDmo TriggerType(); corretta in modo da restituire correttamente tutte le tipologie di trigger da enumerazione; fTBDes FlexEdit(); modificata la lunghezza di editazione per le proprieta' IdentitySeed ed IdentityIncrement a 13, permettendo l'inserimento di valori tipo 1.234.567.890; (grazie a Peter Schmidt per il feedback) fExpHTM Modificata esportazione, permettendo, in caso di indicazione fDbl_Clk del percorso fisico del compilatore Win Help (hhc.exe) di provvedere alla ulteriore generazione di documentazione in formato .Chm, utilizzando il compilatore HTML Help parte del HTML Help 1.4 SDK, disponibile e liberamente scaricabile da Microsoft HTML Help Downloads presso http://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html/hwMicrosoftHTMLHelpDownloads.asp con il quale l'applicazione e' stata testata; l'applicazione provvede a generare il file di progetto .hhp ed il file di ToC (table of content) che vengono passati come parametri alla chiamata in shell al compilatore hhc.exe, generando altresi' un file di log relativo all'esecuzione stessa; il file di progetto e ToC generati possono essere chiaramente successivamente ulteriormente modificati e riutilizzati; GetScript(); rimosso il riferimento all'oggetto SQLDMO.Transfer ed utilizzato direttamente l'oggetto referenziato per ottenerne la definizione; (grazie a Lorenzo Benaglia ed Antonio Renna per il feedback) -------------------------- 0.58.0 12/05/2005 fExpHTM RunExport(); modificata procedure per consentire l'ordinamento alfabetico o per data di creazione; (grazie a Antonio Renna per il feedback) frmMain DBInfo2Html(); modificato comando Transact-SQL per ritornare l'elenco ordinato delle tabelle; (grazie a Antonio Renna per il feedback) fEditPWD Save(); Corretto gestore errori; (grazie a Marcello De Vita per il feedback) fQuery LoadGrid(); modificata in modo da utilizzare sempre il metodo GetColumnString(row,column) al posto delle versioni castate per tipologia in quanto puo' succedere che il tipo di dato ritornato nella proprieta' .ColumType non sia corretto; (grazie a Antonio Renna per il feedback) fScript eseguita la rigenerazione delle viste prima dell'esecuzione; fQuery rese non modali le finestre di interrogazione (Query), di fQBData Apertura tabella e vista, anche con Query Builder, come anche fTableSet altre finestre di creazione/editazione oggetti di database al frmMain fine di supportare la possibilita' di avere piu' finestre aperte; fTBDes Aggiunto pulsante di visualizzazione non modificabile del comando di Data Defintion Language per la creazione/modifica della tabella; fQuery Aggiunto salvataggio del dimensionamento della finestra (grazie a Lorenzo Benaglia per il feedback) frmMain Aggiunte altre informazioni statistiche nell'elenco dei database: (grazie a Antonio Renna per il feedback) fQuery Execute(); se non viene ritornato alcun risultato dalle query eseguite viene ora visualizzato il pannello dei messaggi; (grazie a Paolo Castagnetti per il feedback) frmMain Aggiunta possibilita' di modificare l'ordinamento della fLang griglia principale in base alla colonna selezionata agendo da apposito dialogo; (grazie a Terry Bradford per il feedback) -------------------------- 0.57.0 21/03/2005 frmMain Aggiunto l'elemento di aggiornamento lista database nei menu contestuali di database; (grazie a Lorenzo Benaglia per il feedback) fRelView Modificata interfaccia relativamente alla selezione dalla fDbl_Clk tabella da scandire, aggiunta possibilita' di definire il livello di ricursione; (grazie a Antonio Renna per il feedback) frmMain Fornita possibilita' di disconnessione dall'istanza; Gen Corrette svariate anomalie relative a LOCATION case sensitive per keywords e statements sql hardcoded nel codice; (grazie a Larry Uzzel per il feedback) fChgUser Aggiunta funzionalita' di correzione degli "Utenti Orfani"; fUserP fAdvance Flex_DblClick(); corretta routine che crashava selezionando griglie su tab diversi; (grazie a Roberto Rizzo per il feedback) frmMain Aggiunta possibilita' di gestione dei server ai quali ci si fDbl_Clk collega; e' cosi' possibile definire un insieme di proprieta' fServer per ogni singolo server, indicato tramite il suo "Nome fConnect Pubblico" che corrisponde alla descrizione, comportando IniBas che tutte le proprieta' prima valide a livello di istanza bSvrIni diventino private a livello di singolo server, rimuovendo cServer cosi' la relativa gestione dalla gestione centralizzata mainMod delle proprieta' salvate nel file generico .Ini e ricorrendo ad un aggiuntivo file (DbaMgr.Svr) per la serializzazione delle stesse; E' stato anche sostituito il dialogo di connessione in relazione alla modifica di cui sopra; (grazie a Antonio Renna per il feedback) fBckMain Modificato in modo da evitare che la finestra di indicazione fResMain della percentuale di completamento non copra la messaggistica fPercent ritornata al termine dell'esecuzione; (grazie a Roberto Gismondi per il feedback) frmMain Aggiunta possibilita' di verificare ed eventualmente fDbl_Clk eliminare le connessioni attive prima del distacco di database, unitamente alla possibilita' di notificare via NET SEND dell'imminente terminazione delle relative connessioni, con possibilita' per entrambe di specificare l'impostazione quale "Mai" (default), "Sempre", ovvero "Richiedi per ogni database"; fBckMain Corretto il recupero ed uso delle informazioni sulla Retantion Date; -------------------------- 0.56.0 20/01/2005 mainMod GetServicePackLevel(); modificata procedura che ora utilizza un file esterno (SQLBuild.txt) per la verifica del livello di service pack dei binari; fQBData Modificato in modo da eseguire sempre una sola volta il TableSet comando SQL passato, ritornando sempre, dove possibile, un ADODB.Recordset di tipo client, questo al fine di evitare l'eventuale doppia esecuzione di comandi DDL; MainMod GetMembership(); modificata procedura per evitare problemi di SQL-DMO che non verifica correttamente le proprieta' SQLDMODatabase(database).Is_[member] per gli utenti; (grazie a Andreas Allacher per il feedback) frmMain Aggiunto verifica di privilegi CREATE TABLE, PROCEDURE, etc nell'abilitazione del relativo menu di oggetto; (grazie a Andreas Allacher per il feedback) frmLogin Protetto il recupero della login passata come argomento da eccezioni che prima causavano il crash dell'applicazione; (grazie a Alan Harris-Reid per il feedback) fResult Aggiunta Hot key per l'esecuzione del comando SQL, F5 e CTRL+e in caso di editazione di comandi SQL; (grazie a Alan Harris-Reid per il feedback) fQuery Aggiunta impostazione utente di preselezione del database corrente ovvero del database di default per l'utente alla apertura della finestra; (grazie a Alan Harris-Reid per il feedback) fTableSet Aggiunto supporto per l'editazione di colonne di tipo text ed fQBData ntext in apposita finestra; fResult (grazie a Alan Harris-Reid per il feedback) frmMain Flex_KeyPress; il gestore riconosce ora la pressione del tasto "Enter" eseguendo l'azione predefinita per l'oggetto, se disponibile; (grazie a Alan Harris-Reid per il feedback) fQBData Aggiunta Hot key per l'esecuzione del comando SQL, F5 e CTRL+e (grazie a Alan Harris-Reid per il feedback) Generale Adeguati font utilizzati per gli Edit di comandi SQL e griglie che restituiscono dati alle stesse impostazioni come definite dalla finestra di Query; (grazie a Alan Harris-Reid per il feedback) frmMain Aggiunga possibilita' di impostare l'ultimo database al fDBL_clk quale si e' acceduto, con ripristino immediato di tale nodo di database ai successivi lanci dell'applicazione; (grazie a Alan Harris-Reid per il feedback) fRs2File aggiunta possibilita' di eportare su file il risultato di fQBData interrogazioni effettuate con il Query Builder ovvero con TableSet l'apertura di tabella/vista; frmMain tView_Collapse(); aggiunto gestore evento per modificare in accordo con il nuovo nodo selezionato la rappresentazione della griglia; (grazie a Roberto Gismondi per il feedback); fQuery From_KeyDown(); aggiunto supporto per l'hot key CTRL+e per eseguire i comandi Transact-SQL; frmMain mnuF_Click(); corretto recupero della chiave del nodo che crashava l'applicazione se nessun nodo era selezionato; (grazie a James Barret per il feedback); fDbl_Clck ResetDefault(); corretta valorizzazione di alcuni default; (grazie a James Barret per il feedback); Generale Inserita impostazione utente relativa all'estensione del file dati primario, solitamente .Mdf, dato che nuovi prodotti utilizzano estensioni personalizzate che impedivano la possibilita' di effettuare il re-attach guidato; (grazie a James Barret per il feedback); fScript Execute(); modificata procedura che erroneamente scriveva su file male i nomi degli oggetti contenenti caratteri accentati ad esempio [Attivit…] diventava [Attivit..] (grazie a Roberto Gismondi per il feedback); AbSplash GetKeyValue(); corretta routine che falliva su stringhe vuote; (grazie a Emanuele Valsecchi per il feedback); fScript Il formato di esportazione di default e' ora ANSI; frmMain mnuF_Click(); dopo il refresh dei dati ora il nodo selezionato del controllo gerarchico sara' nuovamente selezionato, dove disponibile; frmLogin LoadDB(); il combobox delle lingue e' ora ordinato alfabeticamente; (grazie a Ivano Modenin per il feedback); frmMain ActMenu(); modificato per correggere le limitazioni di accesso eccessive previste per l'accesso ai menu pop-up; (grazie a Sed Mayne per il feedback); mainMod LoadRtfFile(); centralizzato caricamento di file testo per i controlli RichTextBox e corretta conversione di file UNICODE che non controllava la presenza dell' Unicode Byte Order Mark (0XFEFF); (grazie a Greg Hines per il feedback); (grazie a Corrado Cavalli per la soluzione); fExpTB LoadDbStructure(); modificata impostazione iniziale della posizione di salvataggio del file generato per rispettare le impostazioni generali utente; (grazie a Ivano Modenin per il feedback); -------------------------- 0.55.1 27/08/2004 frmMain InitMain(); corretto comportamento che non disconnetteva l'oggetto server in caso di versione non supportata e non disabilitava i menu; -------------------------- 0.55.0 25/08/2004 fTableSet Aggiunti pulsanti BOF e EOF alla toolbar; (grazie a Ivano Modenin per il feedback); fExpTB Modificata esportazione in modo da consentire la possibilita' di esportazioni in formato OEM/DOS; (grazie a Ivano Modenin per il feedback); fQuery LoadDB(); corretto recupero del database predefinito per l'utente corrente, che mandava in crash l'applicazione in caso di impossibilita' di recupero; (grazie a Enzo Carfora per il feedback); bFindF SearchSystemForFile(); modificata ed aggiunta ricerca preliminare nel PATH per velocizzare la procedura; (grazie a Ettore Maronese, il - Mes - per il feedback); fBCP LoadColDefin(); corretta routine che non riconosceva i tipi definiti dall'utente; mainMod getBCPtype(); modificata; ----------------(grazie a Fibia FBI per i feedback); fBckCont Reso resizable il diaolog; fJobStep Corretta l'editazione che ora accetta anche il carattere BackSpace; Modificata la chiamata di apertura in visualizzazione del file di Output: ora viene prima chiamato Notepad e, in caso di errore il programma predefinito; fDlgQry Modificata gestione con ComboBox invece dei command buttons ed aggiunta la possibilita' di ritornare comunque tutto il resultset; frmMain Load_ErrLogNO(); modificato di conseguenza a quanto sopra; fOpe_Ale SaveAlert(); modificato salvataggio utilizzando parzialmente codice T-SQL per salvare il Job = 0; fAgentLg Modificata valutazione del risultato da SWITCH a SELECT CASE; fJobMgr LoadCBO_Init(); modificato caricamento dei potenziali proprietari escludendo i Gruppi NT; RemoveAlert(); utilizzato codice T-SQL al posto dell'oggetto SQL-DMO che sollevava un'eccezione non gestibile; SaveJobData(); in modifica esistente, aggiunto salvataggio dello StartStepId che mancava; (grazie a Fibia FBI per i feedback); fTBDes Aumentato a 1024 il numero delle colonne gestibili; ------------------------- 0.54.0 05/06/2004 frmMain DBInfo2Html(); modificata; fBckMain Aggiunta possibilita' di schedulare il backup direttamente dalla finestra di backup; fResMain SetUiRestoreType(): aggiunta modifica della tipologia di backup in base al numero di file dalle informazioni recuperate nel backupheader; fNewDB Aumentata a 4 caratteri l'editazione della massima dimensione raggiungibile per file; frmMain Modificata lancio di cliconfg.exe e svrnetcn.exe in modo cDrives da ricercare tutti i dischi; cDrvType frmMain Aggiunta possibilita' di nascondere i database per i quali l'utente/login corrente non ha privilegi di accesso; fTBDes Aggiunta possibilita' di eseguire il salvataggio di una tabella preesistente mediante operazioni di ALTER TABLE invece di ricorrere sempre alla creazione di tabella temporanea; fExpTB GetSQLCommand(); corretta generazione del comando T-SQL per colonne uniqueidentifier; (grazie a Paul Tissue per il feedback) frmMain Modificata la chiave di caricamento dei Database nella treeview in modo da evitare dublicazioni di chiave; fResMain Aggiunta ricerca dell'ultimo backup eseguito per il database fBckMain selezionato; -------------------------- 0.53.0 26/04/2004 fBCP Corretta generazione del file formato che andava in errore su viste; frmMain Aggiunta per tabelle e viste la generazione di File fromato per operazioni BCP direttamente a menu; fNewDB tFlex_LostFocus(); rimossa validazione dimensione file che richiedeva nuovo valore superiore al vecchio; FlexEdit(); aumentata lunghezza di editazione dimensione file a 5 caratteri (9.9999 max); (grazie a Morten Skille per il feedback) frmLogin SaveData(); ora vengono correttamente modificate le impostazioni di garanzia di accesso per utenti/gruppi WinNT anche nelle modifiche =;-( Generale consentita l'impostazione della proprieta' oggetto per Tabelle, Viste con QB, Default, Regole e tipi definiti dallo utente con selezione da lista completa di tutti i possibili proprietari; objBr InitTview(); corretto errore e skippato caricamento del nodo Database per database non autorizzati all'utente corrente; fResult Cmd_Click(); regression bug; corretta l'esecuzione del click in caso di editazione comando T-SQL; (grazie a Alan Harris-Reid per il feedback) fDBL_clk Aggiunta possibilita' di customizzare la posizione di apertura/salvataggio file .sql; (grazie a Gianni Carrozzo per il feedback) fQuery OpenSql() e SaveRequest(); viene ora tenuta traccia della ultima posizione/directory di apertura salvataggio; le informazioni sono di sessione e non vengono mantenute una volta chiusa la finestra; La clipboard viene ora correttamente caricata con il contenuto Text e non RTF; (grazie a Gianni Carrozzo per il feedback) fQuery Aggiunto bottone sulla tool bar per permettere il refresh dei database presenti nella combo box; fTBDes tFlex_LostFocus(); corretta valorizzazione delle proprieta' Precision e Scale solo per colonne che supportino decimali; fPwd tLog_KeyPress(); corretto regression bug relativo alla concessione di usare tutti i caratteri per la password; (grazie a Jason Zheng per il feedback) bMask ValInt(); modificata al fine di considerare le impostazioni internazionali; (grazie to Jason Zheng per il feedback) -------------------------- 0.52.0 05/02/2004 frmMain tView_MouseDown(); corretto bug di lettura sui nodi del controllo se lo stesso non era stato ancora popolato; (grazie a Vincenzo Morgante per il feedback) fDBL_clk Aggiunta possibilita' di customizzare il font utilizzato fResult nelle finestre di editing di comandi T-SQL; fJobStep fResult Text of stored procedures, views and triggers already existing is now modifiable; frmMain Tview_MouseDown(): modificato l'accesso alle proprieta' del server selezionando il nodo del server stesso e non la Root del controllo; fServer Modificata la lunghezza di Server, login e password a 128 caratteri; fTBDes Modificata la proprieta' BorderStyle in "Sizable"; ObjBr.ctl Aggiunto controllo utente per la gestione di "Visualizzatore Oggetti" utilizzato da fResult e fQuery nella creazione nuove procedure e nuove viste (formato testo) e nella finestra di Query; fTBDes FlexEdit(); modificata in modo da permettere la rimozione della proprieta' IDENTITY per colonne gia' presenti; (grazie a Alan Harris-Reid per il feedback); fTableSet La tabulazione sulla DataGrid ora muove il fuoco da colonna a colonna; (grazie a Marcello Biglioli per il feedback); -------------------------- 0.51.10 09/12/2003 fJoin ViewOptions(): rimossi riferimenti a controlli non presenti in questa versione; (grazie a Jeroen Elias per il feedback); -------------------------- 0.51.0 09/12/2003 frmLogin Gestiti anche Login ed Utenti con spazi inclusi; fGenOpt fServer frmLogin Incrementata a 128 caratteri (SYSNAME) la lunghezza editabile fGenOpt di Login, Utente e Password; (grazie a Luigi De Gregori per il feedback); frmLogin aggiunta ricerca dei gruppi ed utenti del dominio; fNtG_U cGrp_Usr cNTuser Enumerazione dei gruppi ed utenti WinNT tramite l'API NetLocalGroupEnum; su piattaforma Windows NT non e' richiesta alcuna appartenenza a gruppi particolari al fine di eseguire con successo la funzione; diversamente, su Windows 200 e Windows XP, chiamando la funzione su un Domain Controller che esegue Active Directory, l'accesso e' negato o garantito su base delle access-control list (ACL) per gli oggetti assicurabili. L'ACL di default permette a tutti gli utenti autenticati e membri del gruppo "Pre-Windows 2000 compatible access" di vedere le informazioni. Di default, il gruppo "Pre-Windows 2000 compatible access" include Everyone come membro. Cio' garantisce l'accesso anonimo alle informazioni se il sistema permette l'accesso anonimo. Richiamata su un computer Windows 2000/XP server o workstation, l'accesso sara' garantito a tutti gli utenti autenticati. L'accesso anonimo sara' garantito anche se il vincolo RestrictAnonymous garantisce l'accesso anonimo. In caso di fallimento della chiamata di cui sopra, l'applicazione tenta il recupero dei soli gruppi del dominio tramite la stored procedure estesa di sistema master..xp_enumgroups, in grado di ritornare i soli gruppi appartenenti al dominio, per l'uso della quale sono pero' richiesti privilegi di sysadmin e/o db_owner del database master stesso. (grazie a Lorenzo Benaglia per il feedback); frmMain Griglia; aggiunta ricerca incrementale alla digitazione di lettere; (grazie a Alan Harris-Reid per il feedback); frmMain Job2Html(); corretti alcuni errori formali HTML; (grazie a Fibia FBI per il feedback); fQuery Aggiunta personalizzazione default restituzione risultati fGenOpt su griglia/testo; (grazie a Alan Harris-Reid per il feedback); frmMain Aggiunto al menu contestuale Database la possibilita' di fQuery passare direttamente all'interfaccia di Query con il database selezionato impostato; (grazie a Alan Harris-Reid per il feedback); fQB Gli alias per le colonne vengono ora sempre racchiusi tra fQBData parentesi quadre; Per la riga corrispondente alla colonna * ora non e' piu' possibile specificare Alias di colonna, filtri, etc..; Aggiunto pulsante di uscita nella Toolbar; (grazie a Fibia FBI per il feedback); cRegenO Aggiunta possibilita' di ricompilare Procedure e viste; (grazie a Fibia FBI per il feedback); fScript Corretta l'esportazione in formato Unicode; (grazie a Fibia FBI per il feedback); frmMain LoadPermission(); consentita gestione privilegi anche per fPrivil oggetti di sistema; mainMod fGenOpt LoadSpParameter(); i parametri non venivano mostrati; fBindMGR Aggiunta gestione Regole e Defaults e relativa gestione di fBind collegamento a Tipi definiti dall'utente e Colonne; mainMod LoadPermission(): trappato errore in caso di ricerca di oggetto inesistente al momento della chiamata; fExpTB SET IDENTITY INSERT e' ora generabile solo se l'eventuale colonna identity presente nella tabella e' stata selezionata per l'esportazione; rimuovendo la colonna questa impostazione viene automaticamente resettata, mentre e' invece possibile avere l'esportazione della colonna identity senza la generazione di SET IDENTITY INSERT; (grazie a Paolo Castagnetti per il feedback); fDBL_clk RefreshData(): aggiunta impostazione utente per l'inserimento fScript del comando 'USE db' nella generazione di script DDL; (grazie a Paolo Castagnetti per il feedback); fExpTB GetSqlCommand(); corretto cast che perdeva i decimali per i tipi di dato float, real, money e smallmoney; Aggiunta possibilita' di impostare il formato di esportazione per colonne di tipo datetime-smalldatetime; Corretto generazione dell'impostazione SET IDENTITY INSERT; (grazie a Paolo Castagnetti per il feedback); fEditPWD Aggiunta possibilita' di modificare la propria password per utenti senza diritti amministrativi; frmMain Aggiunta possibilita' di mostrare gli utenti correntemente loggati allo specifico database con azione dal controllo gerarchico; frmMain Spostando il fuoco dalla tree-view degli oggetti ad un oggetto specifico sulla griglia nel pannello di destra, il nodo selezionato nel controllo gerarchico resta ora selezionato visibilmente; (grazie a Marcello Biglioli per il feedback); fExtern Richiesta conferma di cancellazione; (grazie a Marcello Biglioli per il feedback); fDBL_clk Aggiunta la possibilita' di parametrizzare il path di creazione dei file dati e log nella gestione database, e del path relativo alla posizione dei file di backup; fNewDB Vengono ora rispettate le impostazioni di cui sopra; fChooseBCK fBckD fQBData Aggiunto semplice Query Builder per la costruzione di comandi SELECT per tabelle e viste; fQuery Execute(), LoadDBGrid(): corretta la valorizzazione del 'ResultSet'; resa la finestra non 'System Sizable'; (grazie a Paolo Castagnetti per il feedback); fDBL_clk RefreshData(): aggiunta impostazione utente per l'inserimento fExpTB del comando 'USE db' nella generazione di script INSERT INTO; (grazie a Paolo Castagnetti per il feedback); fExpTB tFlex_LostFocus(): andava in errore se l'edit era attivo e veniva iniziata l'operazione; (grazie a Paolo Castagnetti per il feedback); FrmMain Aggiunta visualizzazione Ultimo comando T-SQL per processi; fServer Aggiunta ricerca dei server SQL Server/MSDE disponibili fLista sulla rete locale; fQuery Execute(): modificato routine in modo da continuare al batch successivo in caso di errore sul batch corrente che prima interrompeva l'esecuzione; (grazie a Andrea Caprioli per il feedback); fIndex Il comboBox di selezione della tabella base per le Relazioni e' ora abilitato solo in fase di creazione relazione; frmMain LoadJobs(): ora viene visualizzata anche l'ora della prossima esecuzione; fChoseBCK cmd_Click(): la routine aggiungeva sempre l'estensione .BAK se il file non ne era fornito; ora e' permessa anche la selezione di file senza estensione; (grazie a Paco Bueno per il feedback); fScript Aggiunta possibilita' di inserire clausola USE [database] al fine di eseguire gli script nel contesto del database corrente; (grazie a Paolo Castagnetti per il feedback); fExpTB Aggiunta possibilita' di inserire clausola USE [database] al fine di eseguire gli script nel contesto del database corrente; (grazie a Paolo Castagnetti per il feedback); fExecPrc Aggiunta possibilita' di eseguire procedure passando i parametri; frmMain Spostato nella finestra dei settaggi personalizzati il fDBL_clk settaggio di visualizzazione oggetti di sistema; frmMain L'accesso ai database distaccati e' ora consentito solo ai membri di sysadmin e db_creator; il bottone "Percorso completo..." e' ora accessibile solo ai membri di sysadmin e db_creator; il segno di spunta sul menu "Mostra oggetti di sistema" e' ora correttamente spuntato all'avvio del programma; (grazie a Fibia FBI per il feedback); fTBDes Aumentato a 250 il numero delle colonne gestibili; corretto errore in caso di raggiungimento del limite; (grazie a Fibia FBI per il feedback); fAdvance Aggiunta gestione della memoria; fDBL_clk In caso di mancata impostazione della proprieta' "Posizione frmMain Dati relativa all'Host per DB da collegare", e' ora possibile indicare di ricavare automaticamente tale impostazione al momento del collegamento scegliendo tra le impostazioni a disposizione; INIbas Aggiunto modulo gestione centralizzata dei settaggi/valori salvati nel file .Ini; fQB Ripristinato Query Builder per la costruzione visuale di viste; generale E' stato aggiunto il file hlpConst.bas che fornisce le costanti di parziale contestualizzazione della guida in linea che e' stata applicata; fExpHTM Modificati i riferimenti assoluti in riferimenti relativi, in modo che i link rimangano validi anche spostando tutta la cartella in altro posto (grazie a Luc Wuits per il feedback); MainMod PurgeClipBoard(): modificato in modo da non duplicare l'incollaggio dalla ClipBoard; TableSet Modificato al fine di poter editare il testo del comando T-SQL; Premendo la combinazione di tasti Ctrl + 0 (zero), e' ora possibile inserire il valore NULL nel campo sottostante; (grazie a Greg Hines per il feedback); fLista Stuff_Exec() e LoadFlex(): non erano state riportate le istruzioni necessarie alla visualizzazione di cancellazione di oggetti di tipo Processi, Avvisi e Operatori; frmMain LoadJobs(): aggiunta visualizzazione del proprietario del processo: ActMenuAgent(): Cancellazione Avvisi, Operatori e Processi: visualizzando il risultato dell'operazione non venivano nascosti alcuni controlli sulla form di risulta; * aggiunta un altra StatusBar e ripristinata la visualizzazione della data; la visualizzazione della seconda StatusBar e' configurabile; SetCurUserName(): ora vengono indicati tutti i ruoli del server al quale il login corrente appartiene e questi dati vengono mostrati sulla seconda StatusBar; fGenOpt LoadUser() [UpdateUser()]; i ruoli database definiti dallo utente non venivano caricati; (grazie a Mario Lopes per il feedback); fBckMain GenerateSQL(): aggiunta possibilita' di generare script T-SQL fResMain di BackUp/Restore, salvabile su file, che possa essere usato nella generazione di Job; fQB LoadGrid(): modificato il caricamento della griglia con colonne di tipo SQLDMO_DTypeDateTime e SQLDMO_DTypeDateTime4 che con SQL Server 2000, utilizzando il metodo .GetColumnDate ritorna errore SystemTimeToFileTime, Parametro non corretto; fQuery rtf_KeyDown() e rtf_MouseDown(): intercettato l'incollaggio fScript nel controllo dalla clipboard di tipi appunti diversi dal fResult testo; fJobStep fDBL_clk Aggiunta possibilita' di resettare le impostazioni a valori di default; fBckMain BackupDB(): aggiunte parentesi quadre "[" e "]" relativamente al file di backup derivante da Backup Devices che facevano fallire l'operazione di verifica se il file comprendeva spazi.. (grazie a Fibia FBI per il feedback); ShowContent(): aggiunte parentesi quadre "[" e "]" relativamente al file di backup derivante da Backup Devices che facevano fallire l'operazione se il file comprendeva spazi.. (grazie a Fibia FBI per il feedback); fResMain ShowRestoreFiles(): aggiunte parentesi quadre "[" e "]" relativamente al file di backup derivante da Backup Devices che facevano fallire l'operazione se il file comprendeva spazi.. (grazie a Fibia FBI per il feedback); ShowContent(): aggiunte parentesi quadre "[" e "]" relativamente al file di backup derivante da Backup Devices che facevano fallire l'operazione se il file comprendeva spazi.. (grazie a Fibia FBI per il feedback); fPercent ExecBCK() e ExecRest(): aggiunte parentesi quadre "[" e "]" relativamente al file di backup derivante da Backup Devices che facevano fallire le operazione se il file comprendeva spazi.. (grazie a Fibia FBI per il feedback); fServer ListServer(): modificato il caso di annullamento della operazione di Selezione Computer: viene ora ripristinato il valore precedentemente immesso se presente, diversamente la proprieta' viene assegnata con il valore "(local)"; (grazie a Fibia FBI per il feedback); e' stata modificata l'editazione dei campi Utente e Password: il campo utente ora accetta solo i seguenti caratteri: \+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz il campo password accetta solo i seguenti caratteri: $+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz frmLogin e' stata modificata l'editazione dei campi Utente e Password: il campo utente ora accetta solo i seguenti caratteri: \+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz il campo password accetta solo i seguenti caratteri: $+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz -------------------------- 0.50.0 15/04/2003 fPrivil Se sono state effettuate modifiche non salvate, prima di fPrivCol uscire l'appicazione chiede se abbandonare le modifiche; (grazie a Greg Hines per il feedback); TableSet La toolbar era rimasta invisibile; fDBL_clk E' stato aggiunto un piccolo grado di personalizzazione dell'interfaccia utente da parte dell'utente, permettendo l'impostazioni di azioni predefinite relative all'evento double-click sulla griglia principale dell'applicazione, impostabile singolarmente per tipologia di oggetto; sono state spostate in questa maschera alcune impostazioni utente prima disponibili nella finestra di connessione in quanto non direttamente pertinenti con impostazioni di connessione; cRow oType() property Let; per i tipi TEXT, NTEXT e IMAGE, la proprieta' bSizeble e' stata correttamente impostata a false; (grazie a Ryan Moore per il feedback); fServer FlexEdit() e Flex_DblClick(): non veniva rispettata l'impostazione "disabilitato" ed entrava in edit per alcuni settaggi; (grazie a Fibia FBI per il feedback); fTbDes Form_Unload(): modificato il dialogo in caso di modifiche pendenti: viene ora presentato il dialogo Si/No/Annulla; (grazie a Fibia FBI e Greg Hines per il feedback); -------------------------- 0.49.1 29/03/2003 frmMain aggiunto possibilta' di generare documentazione Html per i processi; fScrAge aggiunta possibilita' di generare comandi TSQL per processi, avvisi ed operatori; frmMain Job_StartJob():la localizzazione Italiana di SQL Server 2000, contenente un bug che impedisce di avviare un processo da un passaggio di avvio diverso da quello predefinito come tale, mi ha indotto in errore nella procedura, portandomi ad utilizzare l'ID del passaggio invece del nome dello stesso; questo e' stato corretto, resta pero' il problema che puo' essere e evinto da questo estratto del file SQLAGENT.OUT: .... 2003-03-28 11:47:03 - ! [LOG] Exception 5 caught at line 191 of file ..\src\refreshr.c. SQLServerAgent initiating self-termination 2003-03-28 11:47:33 - ! [240] Interruzione di 1 thread del motore dopo 30 secondi di attesa 2003-03-28 11:47:33 - ! [311] Il thread 'JobInvocationEngine' (ID 512) è tuttora in esecuzione 2003-03-28 11:47:34 - + [098] SQLServerAgent terminato (in modo forzato) l'Agente di SQL Server si interrompe ed il processo non viene eseguito; fJobStar LoadSteps(): passato alla procedura anche il passaggio di avvio predefinito come parametro in modo sia di preselezionarlo sulla griglia che evidenziarlo; -------------------------- 0.49.0 19/03/2003 Rilasciata la versione Release sulla scorta della build 0.48.120, con la inclusione del file guida, sempre presente nel pacchetto completo, scaricabile a parte per le versioni "Sorgente" ed "Aggiornamento". Desidero ringraziare tutti i partecipanti al programma Beta che con il loro impegno e tempo hanno contribuito fattivamente alla produzione e rilascio di questa versione; un particolare ringraziamento va a Gert E.R. Drapers per la sua gentilizza e disponibilita', come pure William (Bill) Vaughn che mi ha veramente onorato del suo lavoro di revisione nella correzione sia della traduzione inglese della interfaccia utente che nel file guida. Il file guida al momento non provvede a fornire un "Aiuto contestuale". -------------------------- 0.48.120 BETA Con mio grande onore e piacere, Mister William (Bill) Vaughn ha corretto la traduzione inglese dell'interfaccia utente; Mister William (Bill) Vaughn e' presidente della Beta V Corporation, e' uno dei Microsoft MVP, ha scritto innumerevoli pubblicazioi anche riguardanti Microsoft SQL Server ed il suo sito web, raggiungibile all'indirizzo www.betav.com e' un inesauribile fonte di informazioni circa SQL Server e ADO; (grazie a William (Bill) Vaughn per il feedback); -------------------------- 0.48.119 BETA Nessun cambiamento: solo per restare in sincronia con DbaMgr2k; -------------------------- 0.48.118 BETA Nessun cambiamento: solo per restare in sincronia con DbaMgr2k; -------------------------- 0.48.116 BETA fSchedu Dichiarazioni Form: la costante k_MaxTimeLong era sbagliata; -------------------------- 0.48.115 BETA fJobMgr SaveJobData(): modificata gestione errori caricamento delle collection Notificazioni e Processi; -------------------------- 0.48.114 BETA fSchedule LoadSchedule(): le pianificazioni di tipo "Esegui all'avvio dell 'Agente SQL Server" venivano lette come "Esegui in Idle" (grazie a Alessandro Frattini per il feedback); fJobMgr SaveJobData(): protette da getore errori le operazioni di caricamento delle collection Notificazioni e Processi; -------------------------- 0.48.113 BETA fResult tRes_MouseDown(): prima delle operazioni di caricamento fScript della Clipboard, viene ora effettuata la pulizia della fQuery stessa con il suo metodo .Clear; fJobStep (grazie a Vincenzo Morgante per il feedback); -------------------------- 0.48.112 BETA fServer Aggiunta opzione di auto-riconnessione al lancio della applicazioni all'ultimo server registrato, solo per autenticazioni NT, in quanto la password per connessione SQL non viene registrata; (grazie a Alan Harris-Red per il feedback); frmMain Form_Load(): viene ora testato se e' stato specificata la auto-riconnessione al lancio della applicazioni all'ultimo server registrato, solo per autenticazioni NT, in quanto la password per connessione SQL non viene registrata; in caso positivo viene automaticamente provata la connessione; (grazie a Alan Harris-Red per il feedback); -------------------------- 0.48.111 BETA fTbDes FlexDblClick(): impostato a 0 il codice KeyAscii; FlexEdit(): chiamato SendKeys Chr$(KeyAscii) solo se il codice KeyAscii e' diverso da 0; cbo_LostFocus(): corretto errore di regression test nel recupero di User Defined Data Type che utilizava una stringa non valida; *** SaveTbl(); vista l'impossibilita' di utilizzare correttamente i "Tipi di dati definiti dall'utente" provvisti dal modello COM Sql-DMO, putroppo confermato anche da un Microsoft Software Architect, si e' preferito abbandonare la modalita' Sql-DMO per la gestione delle Tabelle ed ora viene generato il comando DDL "Create table" da eseguire; (come suo solito, un caldo ringraziamento a Gert E.R. Drapers per la disponibilita') -------------------------- 0.48.110 BETA fAdvance FlexDblClick(): testata la possibilita' di editare la colonna prima di verificarne le proprieta' di campo; (grazie a Vincenzo Morgante per il feedback); fAdvance FlexDblClick(): testata la possibilita' di editare la colonna prima di verificarne le proprieta' di campo; (grazie a Vincenzo Morgante per il feedback); JobMod GetOperator_JobNotifStatus(): era rimasta una stringa di Debug e ritornava sempre "In esecuzione.."; frmMain Flex_MouseDown(): rimosse chiamate a IsJobServerRunning() per le azioni su Avvisi e Operatori; ActMenuAgent(): rimosse chiamate a IsJobServerRunning() per le azioni su Avvisi e Operatori; fExpTB LoadDBStructure(): corretto errore di regression test nel recupero di User Defined Data Type definiti da utenti diversi da "dbo"; mainMod ErrGetUsersMapping(): corretto bug di regression test sulla sostituzione del nome del database nel comando T-SQL; -------------------------- 0.48.109 BETA frmMain ActMenuAgent(): era rimasta una stringa non localizzata; SetCurUserName(): modificata in modo da ritornare anche l'eventuale ruolo del server al quale l'utente appartiene; -------------------------- 0.48.108 BETA Utenti NON membri del ruolo "sysadmin" non potevano accedere ai servizi di SQLServer Agent (JobServer); frmMain Modificate richieste di privilegi per l'accesso ai servizi di SQLServer Agent (JobServer): non e' piu' richiesto che il servizio sia in esecuzione se non per l'avvio/arresto dei servizi; ActMenuAGENT(): modificato in modo da permettere anche agli utenti NON membri del ruolo "sysadmin" di accedere ai servizi di SQLServer Agent; fJobMgr LoadJob(): la possibilita' di editare le notificazioni viene concessa solo se l'utente appartiene al ruolo "sysadmin"; in caso di creazione con notifiche da parte di un "sysadmin" e modifica da parte di un altro tipo di utente, tali informazioni vengono perse; il caricamento degli Avvisi relativi al Processo avviene ora tramite enumerazione diretta dell'oggetto Processo; la possibilita' di accedere alla creazione/modifica/ cancellazione di Avvisi e' concessa solo agli utenti appartenenti al ruolo "sysadmin"; fJobStep LoadStep(): il combobox di selezione Utente e' abilitato solo se l'utente appartiene al ruolo "sysadmin" fJobMod JobCanAction(): rimossa la chiamata a IsJobServerRunning() in modo da permettere anche agli utenti NON membri del ruolo "sysadmin" di accedere ai servizi di SQLServer Agent; IsJobServerRunning(): protetto con gestore errori; -------------------------- 0.48.107 BETA frmMain Concessa la modifica di Job esistenti ai soli proprietari ovvero ai membri di "sys_admin" -------------------------- 0.48.106 BETA Generale Modifiche in modo da permettere la gestione di Database con nome contenente spazi; (grazie a Mark Nadig per il feedback); Sostituite indicazione "Annulla" nei command_button con "Esci" dove l'indicazione "Annulla" poteva generare confusione nell'utente; (grazie a Mark Nadig per il feedback); Modifiche generali in grado di permettere la creazione di oggetti con nome contenente spazi; fTbDes Flex_Edit(): concesso l'inserimento di spazi anche nei nomi dei campi; fExpTB tFlex_LostFocus(): corretto il riposizionamento ordinale dei campi; -------------------------- 0.48.104 BETA fJobStep LoadStep(): corretto recupero dell'utente; fBr4Fold ErrTestExistFinalDir(): modificato test esistenza file e presenza directory; fJobMgr CMD_Action_Job_Step(): CMD_Action_Schedule(): corretto la posizione di salvataggio nelle collection; -------------------------- 0.48.102 BETA Aggiunta gestione dei Job come da DbaMgr2k versione 0.2.102 -------------------------- 0.48.101 11/02/2003 Note aggiuntive alle release Beta. E' stato evidenziato (grazie a Fibia FBI per il feedback) un problema architetturale di estremo rilievo; il lavoro di Peter Swaniker, dal quale questo progetto ha preso partenza, non aveva considerato la possibilita' di avere oggetti sinonimi con proprietario diverso; la soluzione di questo problema ha comportato una revisione quasi generale del codice in molti punti. Al momento sono state corrette quasi tutte le anomalie in tal senso, con la sola eccezione documentata di fQB, il form di Query Builder per la creazione delle Viste, che attualmente e' stato rimosso causa problemi con i Join, che spero poter rirpistinare al piu' presto. La prima beta di questa nuova versione viene rilasciata con la build 0.48.101, solo in formato sorgente e aggiornamento; gli utenti che non dispongono di Visual Basic necessitano di una installazione completa della versione precedente qualora non dispongano dei binari delle dipendenze del progetto gia' installate sul computer. Le successive build BETA verranno rilasciate con cadenze molto ravvicinate, man mano che verranno corretti eventuali anomalie, fino ad ottenenere una versione stabile che verra' finalmente rilasciata fuori dal ciclo Beta con numero di versione 0.49.0 Vi prego voler segnalare le anomalie man mano le doveste incontrare. Scusandomi per i problemi che possono essere derivati da queste anomalie, vi ringrazio in anticipo per la collaborazione. fResult tRes: modificato il font del controllo a Courier New 8 punti; implementato il metodo tRes_OLEDragDrop che carica il primo file eventualmente passato tramite OleDrag; fFiltObj Stuff(); ora vengono caricati solo "(dbo)" e gli utenti con privilegi "ddl_admin" nel combobox relativo agli utenti proprietari; fQuery LoadDB(): ora viene preselezionato il database di default per l'utente corrente, se disponibile, diversamente viene preimpostato il database master; (grazie a Luc Wuits per il feedback); OpenSql() e rtfQuery_OleDragDrop(): se il testo caricato e' in formato Unicode, viene convertito: utilizza la funzione IsTextUnicode compresa nella libreria advapi, che richiede il Microsoft Layer per Unicode su sistemi operativi Windows 95/98/Me; (grazie a Luc Wuits per il feedback); fResult LoadTrigger(): corretta la posizione del'istruzione EXIT FOR, che impediva il ciclo corretto di scansione dei trigger; (grazie a Vincenzo Giordano per il feedback); fIndex FlexEdit(): trappato il Codice TAB in modo da non entrare in frmLogin Edit; fBckMain fResMain fNewDB fBCP fGenOpt fUDT fQB fServer fAdvance fExpHTM fExpTB fDbOwner cmd_Click(): in caso di nuovo proprietario non selezionato (cbo.listindex=-1), non avviene l'esecuzione; DatabaseObjsProp(); ora vengono caricati solo "(dbo)" e gli utenti con privilegi "ddl_admin"; frmMain ActMenu(): in caso di (rifiutata) connessione a Server SQL non supportato, ora il TreeView viene reinizializzato vuoto; tview_NodeClick(): aggiunto ricaricamento dei Locks/ID nella Attivita' Corrente; LoadLocks(): caricati i nodi nel treeview dalla collection in senso decrescente; LoadTables(): aggiunta indicazione del FileGroup di appartenenza della tabella Load_XXX(): modificato il puntatore del Mouse a clessidra durante le operazioni di caricamento; Load_ErrLogNo(): impostata una variabile di ambiente relativa al massimo numero di righe da recuperare per i Log SQL Server prima di mostrare un dialogo di richiesta se abortire la operazione, restituire il massimo numero di righe come da impostazioni, ovvero provvedere al salvataggio su file di testo dell'intero risultato, in quanto l'operazione puo' essere molto lunga in caso di Log molto popolati; il valore predefinito e' 2000 righe; (grazie a Fibia FBI per il feedback); ------------------------- 0.48.0 12/12/2002 Res file Corrette alcune traduzioni in inglese e modificate alcune dizioni in italiano; (grazie a Andrew Stead per il feedback); fFiltObj Form di impostazione dei filtri di ricerca oggetti; fScript Execute(): riscritta procedura in modo da effettuare lo script degli oggetti separando l'oggetto primario dagli eventuali indici, chiavi, check, trigger, etc, usando al posto dell'oggetto Transfer il metodo .Script di ogni la vecchia procedura, commentata, e' ancora presente nel file; aggiunti bottoni di ricerca con filtro (fFiltObj); rtf_MouDown(): se il testo e' bloccato, il menu contestuale "Taglia" e' ora disabilitato; fResult tRes_MouDown(): se il testo e' bloccato, il menu contestuale "Taglia" e' ora disabilitato; fPwd aggiunti caratteri + e -; frmLogin frmMain ActMenu()-Nodo Database (tutti) recupero dalla griglia; regression test fallito da ver 0.0.46; corretto recupero del nome del database con recupero dalla griglia, che prima era impostato a stringa vuota e non permetteva l'esecuzione di alcune operazioni; (grazie a Fibia FBI per il feedback); ActMenu()- Cambia Proprietario Database: regression test fallito da ver 0.0.46; ora viene ciclato per ogni elemento in caso di multiselezione per verificare la disponibilita' del database prima di entrare nella procedura di cambio proprietario; aggiunto agli elementi Database la possibilita' di ricercare oggetti con filtro (fFiltObj.frm); Flex_MouseDown(); Nodo Database: se la griglia e' vuota a causa del settaggio "Solo Db Autorizzati", il programma andava in errore utilizzando una stringa non vailda per testare la proprieta' .SystemObject; (grazie a Humberto Rodrigues per il feedback); LoadDetachedNode(); modificata procedura in modo da gestire l'evenienza di Database Diversi con Nome Fisico dei File uguale e posizione diversa, es: nome DB = DB1 Nome Fisico File = c:\Dir1\Db1.Mdf; nome DB = DB2 Nome Fisico File = c:\Dir2\Db1.Mdf; modificato inoltre il tooltip della griglia; (grazie a Humberto Rodrigues per il feedback); StatusBar; sostituito panello indicante l'ora con il Nome Utente correntemente connesso; aggiunta possibilita' di visualizzare tutti i trigger per tabella; fServer se viene scelta una connessione "Trusted", ora il nome login e password vengono annullati e disabilitati; fGenOpt visualizzazione trigger per tabella; FlexEdit(); corretto errore non gestito per Viste e Stored Procedures; (grazie a Vincenzo Giordano per il feedback); fExpHTM ErrWriteTrig(); aggiunto report sullo stato "Abilitato" dei trigger; ------------------------- 0.47.0 19/11/2002 E' stato cambiato il modo di numerare le versioni, spostando tale numero nel posto riservato alla "Minor" e mantenendo le "Build" per una corretta gestione con i betatester. Da questa versione, non e' piu' possibile connettersi a SQL Server 2000, per il quale e' necessario utilizzare DabMgr2k. Le 2 versioni, in formato eseguibile, possono risiedere anche nella stessa directory, sara' percui sufficiente effettuare l'installazione completa di una delle due applicazioni e scompattare il solo aggiornamento dell'altra applicazione nella stessa cartella, dato che le dipendenze VB sono gia' installate. Si ricorda che l'uso di DbaMgr2k richiede la presenza di MDAC 2.6 e i componenti Sql-DMO di SQL Server 2000. cBcpRow Let oType(..): modificata la validazione del tipo per gestire i Tipi Definiti dall'Utente; fBCP GetBCPType(): modificata la gestione per per gestire anche i Tipi Definiti dall'Utente; Flex_KeyDown(): aggiunto gestore per intercettare F2; ErrConnectBcpServer(): modificata in variabile la codifica hardcoded del timeout; LoadColDefinition(): gestiti correttamente i Tipi Definiti dall'Utente; cRow aggiunte proprieta' IsBinary() e IsString(); fIndex rimossa la proprieta' FillFactor per le Foreign Keys; Rimossi valori hard-coded per le dimensioni del form e sostituiti con variabili settate nel Form_Load; FlexEdit(): nella editazione dei campi booleani degli Indici, la chiamata a SetEnabled() causava lo spostamento della riga, ora reimpostata correttamente; aggiunta possibilita' di editare la sintassi SQL di creazione degli oggetti; fLista Stuff_Exec(): modificata caption del form per cancellazione utenti che riportava erroneamente "Ruoli"; fExpHTM modificati i tag NomeUser: ora vengono prima caricati i LoginName (se presenti con altro nome nel db vengono caricati con il loro .GetUserName), poi vengono caricati gli User se non gia' presenti; l'utente con UserName = "dbo" viene sempre caricato con il suo LoginName; aggiunta procedura ErrExistsThisLogin() per l'eventualita' che il login temporaneo "am-yyyymmdd" esista gia' e non sia stato eliminato a causa di errori durante la conclusione delle operazioni di cambio proprietario; per la modifica il cambio di proprieta' di oggetti NON database, il login "sa" viene sempre aggiunto alla lista dei candidati anche se non e' possibile aggiungere questo utente di sistema alla collezione degli utenti del database e comunque il cambio di proprieta' avviene verso "dbo"; (grazie a Fibia FBI per il feedback); ------------------------- 0.0.46 22/09/2002 fAdvance Cbo_LostFocus(): aggiunto un test If not m_bAnnullaMod che mancava; MainMod GetPackage(): tolto la Versione "7" che era Hardcoded ed ottenuta da VersionMajor + VersionMinor; fResMain aumentata lunghezza del nome DB a 128 char; fAttach aumentata lunghezza del nome DB a 128 char ed altezza; modificato messaggio schermata; fNewDB aumentata lunghezza del nome DB a 128 char; la lunghezza del nome logico e' ora 128, la lunghezza del campo della posizione fisica e' ora 260, come da sysfiles; fGenOpt permesso la parametrizzazione dei Font per Testo Query, fQry Griglia e risultati, terminatore comandi batch (GO); fQry vedi sopra; aggiunti tooltip mancanti alla toolbar; aggiunta possibilita' di abilitare/disabilitare il word wrap; aggiunto menu pop-up copia/taglia/incolla; (grazie a Fibia FBI per il feedback); fResult aggiunta possibilita' di abilitare/disabilitare il word wrap; aggiunto menu pop-up copia/taglia/incolla; (grazie a Fibia FBI per il feedback); fServer Search4Help(): la modifica del file di help modificava correttamente la struttura ma non la visualizzazione sulla griglia; (grazie a Fibia FBI per il feedback); al filtro obj.filter() aggiunti il formato Col e *.*; (grazie a Fibia FBI per il feedback); fDbOwner ChangeDbOwner(): modificata procedura in modo da passare per un proprietario temporaneo (am-yyyymmdd); gestita evenienza doppio errore; frmLogin SaveData(): in variazione Login, la variabile sStream restava inizializzata sul linguaggio anche quando assegnava la proprieta' DefaultDB; (grazie a Fibia FBI per il feedback); TbDes tFlex_LostFocus(); in caso di campo DECIMAL, l'inserimento di Dimensione > 28, la chiamata a MsgBox mandava in Crash il compilato ma non in IDE: spostata la chiamata a MsgBox dopo aver terminato di nascondere il TextBox; (grazie a Fibia FBI per il feedback); LoadTbl(): modificata proprieta' bEditable per verificare che il DB non sia read-only; fIndex in caso di DB read-only, non e' possibile la modifica della struttura; fPrivil LoadFlex(); modificato messaggio in caso di Out Of Memory; UpdateDB(); update protetto da gestore errori; Update(); update protetto da gestore errori; frmMain aggiunta possibilita' di invocare ed aprire sia le Utilita' Network del Client che del Server (su localhost); * LoadDatabaseNodes(): in caso di database Off-Line, viene comunque visualizzato nell'elenco Database, a prescindere del settaggio di visualizzazione DB consentiti; * ActMenu(): protetto objServer.DetachDB(..) con gestore errori; * ActMenu() e Flex_MousDown(): prima di mostrare i menu pop-up verificato che il DB non sia Off-Line, come pure verificata stessa condizione prima di accedere a metodologie specifiche; * LoadDetacheNode(): separata routine; modificata anche per comprendere non solo il PhysicalName del Dbfiles(1) del primo FileGroup, ma per tutti i DbFiles di tutti i FileGroups; * Form_Load(): se non e' mai stato impostato il settaggio "SHOWALL" (cioe' len(GetIni(..))=0) viene impostato ora il default = Vero; * Load....(): verificato che alla fine delle procedure di caricamento della Griglia, la prima riga sia Fixed ovvero disabilitata se nessun elemento presente; (grazie a Fibia FBI per il feedback); ------------------------- 0.0.45 31/08/2002 fExpTB Generazione Script sql INSERT INTO per tabelle: dal lavoro di Narayana Vyas Kondreddi visibile alla pagina http://members.tripod.com/~vyaskn/code.htm#inserts; (grazie a Gianluca Hotz per i numerosi feedback, aiuto, supporto generale); tra le varie opzioni: e' possibile esportare tutti i tipi di colonna ad eccezione di IMAGE e VARIANT (non disponibile per Sql7 ma aggiunto per la versione DbaMgr2k), in quanto per questo tipo di dati non e' possibile effettuare una corretta conversione in Testo; a livello di colonna: e' possibile includere/escludere alcune colonne, rinominarle in ALIAS nello script, caricare valori di DEFAULT o alternativi in caso di valori NULL, riposizionare ordinalmente le colonne; a livello di tabella: e' possibile specificare di cancellare il contenuto della tabella di destinazione con TRUNCATE oppure DELETE, settare il tipo di DATEFORMAT preferito, anche se la procedura provvede all'esportazione in formato canonico ODBC, settare il mantenimento o meno dei valori IDENTITY, il numero di righe per ogni batch, una clausola WHERE e ORDER BY con appropriata sintassi T-SQL, fornire un ALIAS per il nome della tabella di destinazione, se separare ogni n righe l'output su piu' files; e' anche possibile la generazione dei comandi DDL di generazione della tabella, in questo caso perdendo la possibilita' di fornire ALIAS, includendo/escludendo la generazione di Indici, Trigger, Indici Full Text, e le sole Chiavi INTERNE, in quanto non vengono generati ne' DDL di oggetti dai quali eventualmente la tabella puo' dipendere, ne' i relativi comandi INSERT INTO per la gestione dell'integrita' referenziale; frmMain Load_DbFlex: aggiunto visualizzazione del Livello di compatibilita' del Database se diverso da Sql70; fExpHTM ErrWriteDbStuff: aggiunto visualizzazione del Livello di compatibilita' del Database se diverso da Sql70; frmLogin FlexLoadData: nel ciclo di caricamento dei ruoli per Database spostato il confronto con "sa" e "public" dopo la riassegnazione di Riga e Colonna sulla FlexGrid, altrimenti non assegnava la proprieta' CellBackColor correttamente; fQuery LoadGrid(): caricando il RichTextBox, se la lunghezza delle colonne caricate era inferiore alla lunghezza di "ResultSet n" [< len("ResultSet " & n)], la riga spezzava "ResultSet n" su piu' righe; fGenOPt Ora e' possibile gestire lo User "guest"; tale operazione va fatta inserendo il nome utente "guest" senza alcuna Login associata; tale utente apparira' sempre tra gli "Utenti Orfani" pur trattandosi di un utente particolare di Sistema; (grazie a Fibia FBI per il feedback); fBckD permessa la visione del contenuto del backup device anche su device remoti; (grazie a Fibia FBI per il feedback); fBckCont LoadData(); per i backup device veniva erroneamente testato if i_lErrReadingDevice then invece di if i_lErrReadingDevice <>0 then e non procedeva alla lettura del contenuto del BackUpHeader; fPrivil LoadFlex(); su piattaforma Win98, con DB contenenti molti oggetti, il caricamento della griglia con molte immagini causa un'eccezione out-of-memory; in tale caso ora viene rilevato l'errore, interrotto il caricamento e presentato messaggio di gestione alternativa via GRANT, DENY e REVOKE tramite l'interfaccia di Query; ------------------------- 0.0.44 29/07/2002 fBckCont protetto procedura LoadData() [BackUp Devices] con gestore fBckD errori; se il file non contiene Restore o vengono sollevati errori, vengono settate delle variabili di errore recuperate da fBckD che provvede a mostrare gli errori e non scarica il form fBckCont; fResMain proc ShowContent(): viene testata la funzione fBckMain errTestBackUpSet() per verificare che non ci siano errori prima di caricare fBckCont; fNewDB risolto problema di regression test relativamente alla proc. tFlex_Lostfocus che non validava piu' il nome fisico del file Dati se modificato via tastiera; (grazie a Fibia FBI per il feedback); fBckD Select_PhysicalLocation: permesso sul Browse4Folder del Server l'impostazione di Filtri (*.Bak|*.Bck|*.*); ------------------------- 0.0.43 24/07/2002 frmMain * ActMenu(): protetto Shrink con gestore errori; (grazie a Fibia FBI per il feedback); fBckMAIN risolto problema di regression test relativamente alla proc. fPercent BackUpDB() --> ExecBCK() in quanto il file di backup viene ora passato tra parentesi quadre "[\..\file.bak]" e non e' piu' possibile fare il test di esistenza, e comunque e' il modo consigliato da MS; ------------------------- 0.0.42 22/07/2002 frmMain * vista l'aggiunta del Menu di connessione a Mnu come primo elemento, eliminato l'elemento "Edita Proprieta' di Connessione" dal menu pop-up sul nodo Server; * Flex_MouseDown(), corretto comportamento del menu pop-up per quanto riguarda l'item "Connetti\Edita proprieta'"; * viene ora mostrata la proprieta' "Accesso al Server" per i Login; frmLogin implementata possibilita' di creare Login con Autenticazione Windows NT; * ora accetta i caratteri "\-" nel login name (es: Server\nome) (grazie a Peter Schmid per il feedback); fBckMain per operazioni di BackUp\Restore remote, ora viene mostrato fResMain solo il FileSystem remoto del Server Sql, tramite il form fChooseBK fBr4Fold; tutte le operazioni sui file operano di conseguenza (era rimasto indietro dalla versione 0.0.33); (grazie a Paolo Fisco per il feedback); fExpHTM per migliorare le prestazioni, le variabili stringa localizzate che vengono riutilizzate sono pre-cachate in un array; fQuery protette le istruzioni rtfQry.LoadFile .. con gestore errori; ------------------------- 0.0.41 14/07/2002 fExpHTM aggiunto pulsante "Stop" per interrompere l'elaborazione e gestita di conseguenza RunExport(); proc RunExport(), aggiunto dopo ogni blocco ricerca oggetto, un Object.Refresh TRUE in modo da liberare risorse; aggiunta visualizzazione del numero oggetti da scansionare; aggiunta visaulizzazione del tempo imnpiegato per terminare l'operazione; corretta proc LocationIsCalled(): verificato la presenza del "\" e non piu' aggiunto in caso di presenza; fBr4Fold corretta proc LoadTview che andava in crash referenziando un nodo non disponibile per la modifica della proprieta' Tag se il nodo non veniva aggiunto al TreeView; (grazie a Fibia FBI per il feedback); fServer aggiunto possibilita' di indicare se eseguire checkpoint prima di effettuare il detach dei database: e' possibile indicare (tramite selezione combo) 1 delle seguenti impostazioni: esegui sempre; salta sempre, prompt per ogni database; l'aggiornamento delle statistiche viene sempre eseguito (grazie a Fibia FBI per il feedback); frmMain * Detach di Database: aggiunto l'eventuale prompt in caso di settaggio di Richiesta per ogni DB per evitare il CheckPoint per il database, viene comumque eseguito l'aggiornamento delle statistiche (grazie a Fibia FBI per il feedback); * estesa la possilita' di modificare la proprieta' degli oggetti tramite selezione sulla flex_grid per oggetti * Tabella, Vista e Stored Proc; risolto problema di regression test relativamente alla proc. ListLogin(): il text del nodo non era stato localizzato (grazie a Peter Storz per la segnalazione); * aggiunto Menu di connessione a Mnu come primo elemento, shiftando verso il basso gli altri elementi; fAttach aggiunto un refresh del frame e Flex corrente in tStrip_Click per evitare il mascheramento della griglia in alcune circostanze (grazie a Fibia FBI per il feedback); fTableDes LoadTbl(), per rendere editabile (bEditable=true), aggiunta verifica di appartenenza anche a DBO, che ora diventa beditable= (getmembership(db_DDLadmin,..) AND getmembership(db_DataReader,..) OR getmembership(db_DBO,..); frmLogin SaveData(), all'uscita ErrUpdate, settate le variabili lErr e sErr con l'oggetto Err, che altrimenti riportavano Err 0; (grazie a Fibia FBI per il feedback); fGenOpt UpdateUser(), all'uscita ErrStat, settate le variabili lErr e sErr con l'oggetto Err, che altrimenti riportavano Err 0; (grazie a Fibia FBI per il feedback); fQuery corretta procedura IsGO_USE_Statement nel test di USE, poiche' talvolta la parola "use" veniva ugualmente interpretata come keyword; utilizzata la property Checked della ToolBar per la selezione Grid/text del risultato; sostituite le costanti numeriche di form.width e form.height in SizeControls con variabili a livello di modulo m_lWidth e m_lHeight valorizzate nella form_load; modificata procedura LoadGrid che evita problemi di memory leak, specialmente su sistemi Win9x, effettuando piu' chiamate a oQry.GetRangeString per chunk di 1000 elementi invece che un'unica chiamata; (grazie a Arun Kumar per le segnalazioni); ------------------------- 0.0.40 22/06/2002 Fibia FBI si e' dimostrato, oltre ad un valido beta tester, un validissimo collaboratore pieno di idee. frmMain Utenti: aggiunta possibilita' di visualizzare gli oggetti posseduti da ciascun utente; fLista aggiunta visualizzazione degli oggetti posseduti da ciascun utente, con la possibilita' di chiamare procedura di riassegnazione proprieta' (fDbOwner); in caso di problemi di recupero/utilizzo dell'oggetto objServer (SqlServer), viene utilizzato il metodo di CallBack frmMain.CollBackReattach che informa frmMain che l'handler a objServer non e' piu' valido ed e' necessario riconnettersi; fDbOwner aggiunta possibilita' di modificare il proprietario degli oggetti; (grazie a Fibia FBI per il feedback); ------------------------- 0.0.39 18/06/2002 frmMain localizzate le stringhe della treeview; continuata localizzazione generale; fLogin continuata localizzazione generale; fChoseBK fGenOpt fDepend fBCP fLista frmLogin TableSet la connessione Ado ora viene creata anche con Autenticazione NT se cosi' impostato; fAdvance aggiunto alla sezione client la lettura della proprieta' "Version" della connessione ADO; fIndex la creazione di indici ora e' permessa anche su FileGroup diversi da PRIMARY; frmMain risolti problemi di regression test relativamente alla proc. ActMenu: - le opzioni di ShrinkDefault e ShrinkTruncateOnly riportavano i vecchi codici di chiamata; - le opzioni di DBCC, corretamente mappate nella select case, riportavano i vecchi codici di chiamata nell'effettiva chiamata oDB.CheckTables(..); (grazie a Fibia FBI per il feedback); * aggiunta visualizzazione dipendenze DMO da file esterno Depend.txt (grazie a Fibia FBI per il feedback); * modificata visualizzazione Licenza d'Uso da file esterno DbaMgr-EULA.txt, ed in sua mancanza di EULA in sola lingua Inglese; ------------------------- 0.0.38 04/06/2002 frmMain dopo la connessione viene ora testata la VersionMajor del server di connessione e viene riportato un warning in caso sia diversa da quella attualmente supportata; * aggiunta una visualizzazione di limiti di garanzia (non si sa mai....); fAdvance aggiunto lettura proprieta' dei Componenti Client, grazie a Karl E. Peterson, http://www.mvps.org/vb per la classe cFileVersion; ------------------------- 0.0.37 16/05/2002 TableSet testato lo stato della connessione = adStateOpen prima di chiuderla (correttamente dava errore se non era aperta); frmMain Oopsss... risolto problemi di regression test relativamente alle chamate di menu pop-up alla proc ActMenu sull'elemento database (grazie a Fibia FBI per il feedback); ------------------------- 0.0.36 13/05/2002 frmMain * modificato il recupero delle informazioni sui processi attivi utilizzando sp_MSget_current_activity al posto di objServer.EnumProcesses, che ritorna piu' informazioni; (ancora una volta grazie a Gert E.R. Drapers (www.sqldev.net) per la sua disponibilta' e enorme competenza; * aggiunta la possibilita' di terminare processi (questa e' per Fibia FBI); ------------------------- 0.0.35 08/05/2002 fServer aggiunta possibilita' di selezionare il file di Help, impostato di Default con "c:\Mssql7\Books\sqlbol.chm; mainMod Funzione GetPackage(): aggiunto riconoscimento Service Pack 4; fPrivil aggiunta possibilita' di settare le autorizzazioni a livello di Database Create TB, Create View, etc. (grazie a Fibia FBI per il suggerimento); fScript: GetFileOutPut(): rimosso riferimento a frmMain.lblServer(0).Caption e sostituito con app.path; fQB Oopsss... risolto problemi di regression test relativamente alla risoluzione del tipo di join: Sono stato giustamente informato che DbaMgr NON funziona con gli oggetti del Database (Tabelle, Viste, etc.) create da users/logins diversi da "dbo" (e ringrazio Fibia FBI per il feedback); la cosa in effetti non era mai stata ne' testata ne' presa in considerazione: personalmente non condivido la scelta di creare oggetti con proprietari diversi dal "dbo", anche per scongiurare problemi di questo tipo; questa versione prevede il fix di questo problema; bObjDmo modulo aggiunto per il recupero oggetti tramite il nome; fTBDes: aggiunto ChkDBO per poter creare le tabelle con proprietario "DBO" oppure come da Login * FlexEdit(): nullable Property e' sempre settabile se la colonna non era gia' presente; * SaveTbl(): recuperate informazioni dell'Owner ed utilizzate per la creazione/rigenerazione della tabella; *** UserDefinedDataType: se l'UDT non e' stato creato da un dbo, la modifica delle tabelle contenenti tali campi fallira' a meno che la modifica non venga effettuata dal proprietario dell'UDT, mentre via Script di DDL funziona sempre (problema DMO??); * LoadTbl(): recuperate informazioni dell'Owner ed utilizzate per il recupero della tabella; * bEditable e' true se GetMembership(db_DDLAdmin, sDbName)=True And GetMembership(db_DataReader, sDbName)=True, poiche' serve anche l'accesso come DataReader in caso di rigenerazione di tabella popolata; fIndex recuperate informazioni dell'Owner ed utilizzate per il fResult recupero degli oggetti; frmMain clsDepen fQB fBCP fPrivil fExpHTM fGenOpt fRelView fRelView la ricerca dello stato di ricorsione falliva miseramente, aggiunta la procedura RecursiveScan() che scandisce tutto l'albero dalla root per trovare la tabella; ------------------------- 0.0.34 25/04/2002 fPercent Oopsss... problemi di regression test: non veniva piu' settata la proprieta' oBackUp.files in ExecBck() in caso di backup su file esistente; rimossa la variabile lErr locale di ExecBck() che oscurava quella globale a livello di form con lo stesso nome; ------------------------- 0.0.33 20/04/2002 Versione 0.0.33 stravolge un attimino cio' che riguarda la gestione del file system (nel senso di recupero delle informazioni), in quanto mi e' stato fatto notare che DbaMgr funziona bene (correttamente) solo con installazioni locali e non remote (infatti era nato per questo proposito), mentre su installazioni remote le informazioni di File System vengono tradotte in \\Server_Remoto\Share\file invece che piu' correttamente c:\mssql7\data\file, sia per quanto riguarda la creazione di db, che la gestione dei Device (con backup/restore su devices) , che le informazioni relative al nodo dei db distaccati e la relativa gestione di riattacco.... Per questo motivo sono state modificate queste gestioni per mostrare il File System dell'Host di SQL Server, locale o remoto che sia, creando un dialogo nuovo (fBr4Fold.frm) che utilizza le proprieta' .EnumAvailableMedia, .EnumDirectories ed una extended Stored Procedure (xp_dirtree) per avere queste informazioni. Un speciale ringraziamento a Gert E.R. Drapers (www.sqldev.net), come sempre disponibilissimo ed esauriente. fBr4Fold.frm Dialogo custom simile a quello presentato da Enterprise b4F_DMO.bas Manager per la selezione di Directory/Files sul File System del computer Host SQL Server; frmMain Gestioni influenzate dai cambiamenti; e' stata ripristinata fBckMain la possibilita' di attaccare db da postazioni client remote, fResMain rimossa nella ver. 0.0.32; fChoseBK fPercent fBckD fAttach ------------------------- 0.0.32 xx/xx/2002 [mai pubblicata] tutti i form aggiunto l'evento tFlex_MousDown per il text box flottante che contengono al fine di evitare il Menu PopUp; una griglia editabile fBckD backup device ???? fNewDB in Form_Initialize(), la directory di lavoro per la creazione del nuovo DB viene ora impostata direttamente sul percorso SqlServer.Registry.SqlDataRoot & "\"... la directory di creazione, relativamente a server remoti, non puo' essere un percorso UNC ma deve essere un percorso relativo per il server, es.: la macchina remota vede (o non vede) la directory o la share \\Macchina_Server\C\MsSql7\Data, mentre il percorso valido di creazione resta comunque C:\MsSql7\Data [grazie a Roberto Gismondi per aver evidenziato il problema]; fDbOwner aggiunto messaggio in caso di Vecchio Proprietario e nuovo proprietario uguali, che prima mostrava un msgbox vuoto; frmMain * ActMenu(); in caso di generazione di nuovo Login derivante da azione sulla Treeview invece che sulla griglia dava errore sul Variant non inizializzato [grazie a Francesco Bancala']; * modificato il ToolTipText del command lblServer(0), indicante ora solo "Posizione Dati per Verifica DB distaccati"; * dato che non risulta corretto (anche se possibile) attaccare DB da postazioni remote con riferimenti UNC completi di rete al server remoto, non e' piu' possibile effettuare tale operazione da remoto e non vengono piu' mostrati DB nella griglia, viene invece mostrato un messaggio di avvertimento e spiegazione; tali operazioni sono possibili solo via uno strumento di query (oSql, etc.), oppure direttamente dal computer Host di SQL Server [grazie a Roberto Gismondi per aver evidenziato il problema]; ------------------------- 0.0.31 02/04/2002 Il Server Tripod e' stato sostituito con Lycos, che ha rilevato e soppresso tutti i siti su utenti.tripod; fDbOwner Aggiunta possibilita' di modificare il proprietario del database (con Mapping NULL, indicante che tutti i riferimenti ALIAS al vecchio proprietario vengono rimappati sul nuovo, vedi BOL sp_changedbowner); fServer Impostati a Default=True il command di connessione e Cancel=True il command Annulla; implementato lo scroll verticale tramite frecce di direzione in edit sul textbox; frmMain Flex_MouseDown: relativamente all'attivita' 'Database Users', permesso l'accesso alla ricerca di login orfani anche se il numero di utenti registrati per il db=0 (attach di DB da altro server) [operazione che dovrebbe essere effettuata unitamente ad un sp_changedbowner 'nuovo proprietario']; messo un DoEvents dopo la chiusura del Form fAttach per permettere il repaint; In tutte le procedure di Loadxxxx (Tables, Roles, SP, Views, etc.), e' stato aggiunto un dbObject.Refresh per aggiornare l'elenco degli oggetti; Load_DBFlex() localizzate altre stringhe; Load_DBFlex() aggiunta visualizzazione dell'eventuale stato dboUseOnly, ReadOnly e SingleUser; fQuery corretto obj.Def_Dir() a App.Path in sub OpenSql(); ------------------------- 0.0.30 15/02/2002 frmMain ActMenu(): aggiunti DoEvents dopo la chiusura della visualizzazione della form fNewDB prima di fare il refresh dei Database in modo di dare il tempo di fare il Paint del Form Main; aggiunto DoEvents dopo aver scaricato il form di richiesta data per la cancellazione della BackUp history; Cmd_Click(): la richiesta di SHBrowseForFolder, in caso di annullamento dell'operazione ora registra App.Path come percorso predefinito, inoltre non e' piu' necessario che il percorso selezionato contenga File .Mdf (database) perche' sia valida; fNewDB corretto Salvataggio Impostazioni: aggiunto verifica in AddDBfile2Group() e AddLog2TransLog(): se .bAutoG=False Object.FileGrowth=0; in chk_click() se riferito ad AutoCrescita ed impostato per crescita in MB e la crescita e' =0, questa viene settata ad 1MB; fResMain corretta visualizzazione dei dati recuperati tramite oRestore.ReadFileList, verificando la massima dimensione del file: se < 0 la crescita e' illimitata oppure 0 (sconosciuta); aggiunta chiamata a ShowRestoreFiles() in ShowContent() dopo la chiamata al form di selezione del BackupSet per aggiornare le Grid; resettato a 1 il numero del BackUpSet al cambiamento del combobox contenente i Database; fQuery consentito il salvataggio anche del risultato della ricerca effettuata; ------------------------- 0.0.29 16/01/2002 Generale corretto bug in tutte le routine FlexEdit che gestiscono valori booleani che entravano in Edit normale; fPercent ExecBck() e ExecRest(): aggiunto un Doevents per permettere il paint del form; frmMain ActMenu(): la richiesta di conferma per la chiamata ai form di BackUp e Restore e' stata commentata; ------------------------- 0.0.28 19/12/2001 fServer posizionato il form nel mezzo di frmMain; fBCP aggiunto "Tipo Dati" alle descrizioni colonna della Flex; frmMain grazie a Yusuf Incekara (yincekara@rocketmail.com) che ha rifatto le Icone della TreeView; fChoseBCK modificato ritorno del file di backup/restore al fine di risolvere il problema di unita' di rete mappate (vedi sotto); cNetMap grazie a Yusuf Incekara (yincekara@rocketmail.com) che ha provveduto a identificare e risolvere il problema di Unita' di Rete Mappati al fine di operazioni di Backup e Restore rimappando l'unita' di rete nel suo percorso UNC; ------------------------- 0.0.27 18/11/2001 frmMain corretta procedure SizeControls che sposta lo splitter orrizzontale se posizionato a destra della max larghezza del form solo se lo stato della finestra non e' minimizzato; aggiunto spazio nella visualizzazione dei messaggi il "Pack" dei DB (case Iact 21/22) che viene rimosso da myLoadResString; fNewDB nella Procedura LoadProperty, dopo la visualizzazione del Form fGenOpt e' stata rimossa la forzatura del settaggio di errore a kErrDB_OffLine dop il test reale se il BD fosse veramente offline.... in attesa di ricordare il motivo reale di tale impostazione; cambiate alcune stringhe HardCoded in parametriche con MyloadResString; fExpHTM modificata la scrittura html degli script sql utilizzando il tag
 e la scrittura di alcuni tag;
                aggiunta visualizzazione dell'operazione in corso sulla
                status bar;
                aggiunta la possibilita' di esportare gli oggetti di sistema;

fBCP            corretto caricamento Nodo Database che con db registrati ma
frmMain         cancellati manualmente andava in errore;
                                
fQuery          modificata la Execute, con rimozione della collection di file
                temporanei, usando sempre un file in lettura con il comando
                selezionato ed un solo file di appoggio in scrittura;
                sostituite le funzioni IsGoStatement() e UsedDBName() con una
                unica funzione Is_GO_USE_Statement() che corregge anche un
                errore di ricerca dei commenti, prima /* */ e poi --; evitata
                cosi' il parse doppio dello statement;
                catturati i Messaggi di ExecuteWithResultsAndMessages e
                mostrati nel pannello dei messaggi;
                bloccato il paint della finestra durante gli spostamenti di
                SelLenght e SelStart di rtfQry in ErrWriteTmpQuery con
                LockWindowUpdate() per evitare lo sfarfallio;
-------------------------
0.0.26  13/10/2001
fExpHTM         generazione di documentazione cross-reference del db;
                da un' idea derivata dalla visione del documentatore demo
                predisposto presso:
                http://www.ag-software.com/AGS/default.asp
                http://www.ag-software.com/AGS/ags_scribe_index.asp

fRelView        visualizzazione delle relazione a partire da una tabella
                anche in cascata per le tabelle referenzianti, con blocco
                per i riferimenti circolari, derivato da un'idea di
                SQL Insider v2.0, progetto OpenSource di Robert Vallee
                reperibile presso
                http://www.sqlservercentral.com/products/sqlinsider/

clsDepend       modificata classe per essere utilizzata anche da fExpHTM
                senza dover visualizzare fDepend;

frmMain         corretto bug di possibilita' di selezione dal pop-up menu
                dei database di effettuare lo scripting se il login non e'
                un utente riconosciuto del database;

fNewDB          allungato a 120 caratteri la possibilita' di edit del nome
                logico e fisico del DB e Log (il max numero di caratteri
                possibile e' 128[123]);

fResMain        reso editabile anche il nome logico dei file oltre che
                la PhysicalLocation;
                allungato a 120 caratteri la possibilita' di edit del nome
                logico e fisico del DB e Log (il max numero di caratteri
                possibile e' 128[123]);

fUserP          gestita la differenza di JOIN relativa a SQL Server 2000 che
                la prevede sul campo sid e non suid;
                maggiori informazioni:
                By: Rahul Sharma
                Orphan Sessions - Part 1
                http://www.sqlservercentral.com/columnists/rsharma/orphansession1.asp
                An orphaned session is a session that remains open on the
                server side after the client has disconnected. This article
                by Rahul Sharma, shows you how to track these sessions down
                and correct the problem;

fTbDes          corretto bug nelle colonne Boolean dove entrava in edit
                normale;

fServer         corretto bug di settaggio enabled=false per la riga di
                AutoStart SQL Server che non riconosceva (local) come il
                nome del server computer attualmente in uso;
-------------------------
0.0.25  15/09/2001
Progetto        Cambiata Icona;
                create sottocartelle \Bas, \Cls, \Frm e \Ctl nelle quali sono
                stati spostati i moduli di codice;

GENERALE        sostituita la gestione del linguaggio dell'applicazione sul
                tipo di Inno Setup(r) con la differenza che le traduzioni
                non vengono compilate all'interno dell'eseguibile, nello
                stesso modo di Lst2Iss di Fred Just (www.fredjust.com):
                al fine di consentire la personalizzazione senza necessita'
                di modificare il file .res e ricompilare l'applicazione,
                ora vengono gestiti i linguaggi con file esterni che devono
                risiedere nel path di DbaMGR ed avere estensione .Lng
                (Italiano.Lng, English.Lng, Deutch.Lng, etc); a tal fine,
                l'applicazione provvede a creare i 2 file che devono comunque
                esistere (Italiano ed English) in caso non vengano rilevati,
                mentre per gestire altri linguaggi basta copiarne uno,
                rinominarlo con il nome del linguaggio, tradurne il contenuto
                dopo di che sara' visibile nel combo box delle lingue
                supportate; eventualmente bastera' aggiungere tale file al
                proprio programma di setup per consentirne l'uso, mentre i
                file .Lng necessari possono comunque essere creati in caso
                di assenza;

fUserP   ****   ATTENZIONE, gestione pericolosa; questa procedura ricerca
                gli utenti eventualmente NON agganciati alla tabella
                syslogins, cioe' dove la JOIN tra il campo suid di sysusers
                ed il campo suid di syslogins produce una entry NULL,
                eventualita' derivante dal restore di un DB su un server
                diverso da quello di origine o successivo ad un rebuild del
                server; in caso di azione dell'utente viene eseguita la
                stored procedure sp_dropuser 'nome utente';

frmAbout        sostituito con AbSplash che permette anche lo splash screen
                iniziale;

fIndex          modificata la gestione per permettere di creare gli oggetti
                Index e PrimaryKey in FileGroup diversi da PRIMARY;

fTbDes          non veniva settata la proprieta' IsRowGuidCol e ne e' stata
                aggiunta la relativa gestione in FlexEdit;
                settato colore 1 colonna (InPrimaryKey)=vbInactiveBorder
                dato che non e' modificabile;
          ***   riscontrato bug di DMO che non setta allownulls a false per
                colonne con IsRowGuidCol=true e AllowNulls=False
                a causa di questo bug si e' reso necessario scriptare la
                tabella (str=oTB.GenerateSQL) ed eseguire tale script nei
                confronti del db invece di usare gli oggetti DMO;
                aggiunto test di presenza altri campi Identity prima di poter
                settare tale proprieta';
                aggiunto possibilita' di entrare in edit premendo F2;
-------------------------
0.0.24  02/09/2001
fTbDes          corretto bug di doppia aggiunta apici per i default Testo;
                in caso di modifica tabella che contiene campi Identity,
                ora viene eseguito un SET IDENTITY_INSERT nome_tabella ON
                prima dello script di copia dei dati, ripristinato su OFF
                al termine dello script;
                in caso di presenza di campi di tipo TimeStamp, tale campi
                non vengono inseriti nella SELECT list di copia;

TableSet        in caso di recordset non bookmarkabili, ora viene aperta una
                connessione lato client che, tramite i servizi client di ADO
                supporta i bookmark, rendendo cosi' possibile utilizzare la
                DataGrid; i valori Identity vengono ottenuti subito con
                l'update, mentre gli eventuali valori di Default saranno
                visualizzati solo dopo una Requery ottenuta con la riapertura
                del Recordset o agendo sul bottone della toolbar;

frmMain         aggiunta indicazione delle NetLibrary in uso nell'Info..;

fAdvance        aggiunta gestione alcune opzioni settaggi del server;

fParam          aggiunta gestione Parametri di Start Up;

fNewDB          gestito nelle procedure FelxEdit con
fBCP            "on local error resume next" il caso di caratteri che danno
fGenOpt         errore, ad esempio "(";
fUDT
fQB
fServer
fTbDes
fResMain

fQuery          aggiunto splitter per il size verticale;
                corretto settaggio valore pressed/depressed per il button
                relativo alla visualizzazione che perdeva lo stato;

fAttach         corretto bug di incapacita' di utilizzare nomi con spazi
                utilizzando "[" + dbfile + "]" per le MultiStrings (si
                potrebbe anche usare ShortFileName);

fServer         aggiunto un nuovo flag agli Udt di gestione FlexGrid unito
                all'elemento ellipsis (...) per permettere sia l'edit del
                server che li dbl_click con finestra dei server sulla rete
                (previsione per le named instances di Sql2000??);

frmMain         tView_NodeClick, settato sempre a invisibile il controllo
                RichTextBox che, passando dalla visualizzazione dei Log
                al nodo Server restava visibile;
-------------------------
0.0.23  29/07/2001
installazione   aggiunto file .iss per InnoSetup 2.0.11(b);

fAttach         Mancava un Refresh della FlexGrid dopo la chiusura della
                finestra di scelta dei file;

fQuery          Rimossa una ToolBar di troppo;

fNewDB          Nel caso di creazione di DB, l'icona del FileGroup del primo
                Data file era OFF invece di Primary, ed entrava in edit;

fResMain        Ora accetta anche F2 per entrare in edit nella flexgrid
                dei files;

FrmMain         aggiunto letura Informazione su Processi attivi;
                spostato lettura log nelle Attivita' Correnti;
                accesso in sola lettura ai lock presenti sul server;
-------------------------
0.0.22  30/05/2001

fUDT            corretto bug dipendente dalla modifica sull'accettazione
                in _lostfocus del combobox del tipo di dato, che rientrava
                e modificava la riga errata;

fNewDB          introdotto supporto per multipli FileGroups, DBFiles e
                LogFiles;
                in caso di nuovo db, viene solo consentito un unico DBFile
                nel FileGroup PRIMARY ed un solo logFile, sucessivamente e'
                possibile aumentarne il numero;
                la gestione dei FileGroup non mostra un combobox con tutti
                gli oggetti gia' presenti;

fTbDes          modificata la gestione per permettere di creare gli oggetti
fPwd            Tabella in FileGroup diversi da PRIMARY;

frmMain         il pop-up menu per le Tabelle mostra ora "Proprieta'" come
                ultimo elemento e "Struttura Tabella" subito prima della
                visione contenuto;
                corretto riferimento in array sui checkpoint;
           **   modificata l'azione di detach: vengono indicati i Files
                (DataFiles e LogFiles) che compongono il Database e viene
                mostrata la sintassi T-SQL per riattaccare successivamente
                il DB via comandi, comando salvabile tramite l'interfaccia
                con in sequenza tutti i file che lo compongono;
          **    modificata l'azione di Attach dei database, che ora presenta
                una apposita finestra per la selezione di tutti i DataFiles
                e LogFiles che lo compongono;
                corretto bug che mostrava il pop-up menu per i db distaccati
                anche quando non ce n'erano presenti;
                
fGenOpt         le proprieta' del DB, implementate in fGenOpt.frm, non
                vengono piu' richiamate dal pop-up menu dei DB, ma dalla
                gestione apposita dei DB, implementata in fNewDB;
             *  e' stato implementata la visione "Proprieta'" per la tabella
                che mostra le proprieta' di tabella e delle Colonne;

Gen.            aumentato a 50 la lunghezza massima dei nomi oggetti del DB;

fScript         sostituito oggetto Transfer locale alla procedura con oggetto
                globale WithEvents a livello di modulo al fine di evidenziare
                lo stato di avanzamento;

fQuery          modificata ErrSplitCommand() che ora chiama IsGoStamenent()
                per verificare la presenza dell'istruzione GO;
                modificato GetUsedDB, che in caso di errore usciva senza
                chiudere il file temp che nonpoteva piu' essere cancellato e
                spero migliorata la routine di ritorno del nome DB;
-------------------------
0.0.21  05/04/2001
vbp             rimosso riferimento a componente non utilizzato;

fNewDB		il path di creazione Nuovo DB viene settato recuperando
		il Full Data Path presentato in frmMain, se valido,
		diversamente viene proposto il valore della chiave di
		registro SqlServer.Registry.SQLDataRoot & "\";

fServer         al fine di centralizzare la localizzazione delle immagini,
fBCP            sono stati rimossi tutti i controlli Imagine contenenti
fGenOpt         elementi del tipo On/Off, etc, relativi ad elementi di
fIndex          visualizzazione in controlli flex e le relative immagini
fNewDB          sono state localizzate nel file .Res;
fPrivil         come a suo tempo gia' richiestomi, al fine di rendere il
fQB             comportamento della griglia Flex resa editabile, non e'
fJoin           piu' necessario l'utilizzo del tasto Enter per l'accettazione
fResMain        della modifica del valore, ma la sola perdita di fuoco del
fBckCont        relativo campo Edit/Combo comporta la relativa persistenza
fRetSet         della modifica, mentre la pressione del tasto Esc annulla
frmLogin        le modifiche; QUESTA MODIFICA ALTERA PESANTEMENTE IL
frmMain         COMPORTAMENTO DELLA GRIGLIA STESSA;
fRoles
fScript
fDUT
fTbDes
fDepend

frmMain         aggiunta possibilita' di accedere alla gestione Indici,
                visione risultato Viste;
                corretto errore riferimento array  in chiamata creazione
		nuova Stored Procedure;

fTbDes		sostituiti command con toolBar;

fUDT		il Default sovrascriveva il Rule;
		Default e Rules non mostravano il rispettivo Owner;

fTbDes		i valori di default inseriti con "..." non rimuovevano i
                doppi apici;

ConstRes.bas    aggiunto modulo costanti appoggio File Res;
-------------------------
0.0.20  10/03/2001
fDepend		aggiunto riconoscimento trigger;

frmMain         corretto bug in Nuovo DB User;

fQuery		implementato il metodo rtfQry_OLEDragDrop che carica
		il 1 file eventualmente passato tramite OleDrag;
		corretto resize del combo;
-------------------------
0.0.19  24/02/2001
fServer         il LocalHost viene ora mostrato e salvato come "(local)"
                invece di ComputerName();

frmMain         riconosce anche il SP3 (non ancora testato);
                aggiunta possibilita' di mostrare le dipendenze degli
                oggetti (vedi sotto fDepend);

fBckCont        accetta ora come parametro di ingresso il Numero di File
                da mostrare come checkato nella griglia; questo valore e'
                in lettura/scrittura e viene ritornato in Output se il form
                chiamante e fResMain, che a sua volta aggiorna il textbox del
                numero di file dal quale effettuare l'operazione di Restore;
                se gli viene passato un file o device non valido non viene
                piu' sollevato un errore fatale;
         *      tutte le operazioni che riguardano BackUp/Restore vengono
                ora tradotte in operazioni sui relativi Files Fisici invece
                che su Devices, questo a causa dell'impossibilita' di
                referenziare nomi-lunghi che causavano errori;

fPercent        se viene passato un file non esistente per le operazioni di
                BackUp, un file vuoto viene ora creato nella rispettiva
                posizione in modo da non fare fallire la funzione
                GetShortPathName, che accetta solo files esistenti;
                BackUp e Restore ora funzionano anche con nomi lunghi;
         *      tutte le operazioni che riguardano BackUp/Restore vengono
                ora tradotte in operazioni sui relativi Files Fisici invece
                che su Devices, questo a causa dell'impossibilita' di
                referenziare nomi-lunghi che causavano errori;

fResMain        BackUp e Restore ora funzionano anche con nomi lunghi;
fBckMain        tutte le operazioni che riguardano BackUp/Restore vengono
                ora tradotte in operazioni sui relativi Files Fisici invece
                che su Devices, questo a causa dell'impossibilita' di
                referenziare nomi-lunghi che causavano errori;

fResMain        modificati per supportare le modifiche di fBckCont;
fBckMain
fBckD

fBckD           sostituita la label indicante la posizione fisica del file
                relativo al device con un textbox non editabile in modo da
                mostrare anche nomi di file molto lunghi;

fTableSet       aggiunta Form con una DataGrid bound che permette la
                navigazione via ADO del risultante DataSet dalla tabella;
                in caso di errore nell'apertura del RecordSet (RecordSet
                non bookmarkabile, ...) viene ora richiesto se riprovare
                a mostrare il resultset via l'oggetto standard DMO;
                la DataGrid non si sta dimostrando molto stabile..

fQry            aggiunto supporto per splittare piu' comandi separati da GO;
                aggiunto supporto per eseguire statements SQL verso multipli
                DB nei diversi gruppi di comandi;

fLista          aggiunto supporto per la multiselezione nella form Main
fDepend         sul controllo Flex in modo da mostrare anche le dipendenze
                degli oggetti nel caso di selezione per cancellazione;

fServer         aggiunto parametro di attesa per la cancellazione dei DB,
                in quanto la distruzione dell'oggetto DMO .Database non
                chiude immediatamente la connessione con l'oggetto
                sottostante ma necessita di un tempo variabile fino anche ad
                1 minuto;
-------------------------


0.0.19  xx/xx/2001
frmMain		riconosce anche SP3;

fBckCont	accetta in entrata anche il numero di File di Bck da
                mostrare come checkato nella griglia; tale valore e' poi
                gestibile e ritornabile a fResMain che aggiorna il textBox
                relativo al numero di file dal quale effettuare il restore;

fResMain	modificati per riflettere variazioni di fBckCont;
fBckMain
fBckD

fTableSet       aggiunta Form con DataGrid collegata ADO per la navigazione
		nel risultato della tabella; in caso di errori (resultset non
		bookmarkabile, ..) viene richiesto se presentare il risultato
		via oggetto DMO;

fQry            aggiunto supporto comandi separati da GO;
-------------------------
0.0.18  xx/xx/2000
fChooseBCK      disabilitato il textbox del nome file (locked=true), ora e'
                possibile solo scegliere tra la selezione dei device dal
                combo-box o editare/selezionare il file tramite dialogo
                ShowSave;

fResMAIN        sostituita label nome file/device con textbox LOCKED=True;
                utilizzato GetShortPath() per ottenere il nome file DOS
                (grazie ad Alex per il feedback);

fBckMAIN        sostituita label nome file/device con textbox LOCKED=True;
		utilizzato GetShortPath() per ottenere il nome file DOS;
                in caso di backup su file inesistente con nome lungo
                contenente spazi, tali spazi vengono rimpiazzati con
                carattere '_';
-------------------------
0.0.17  18/11/2000
Omesso per scaramanzia
-------------------------
0.0.16  18/11/2000
.res            corrette alcune voci in lingua inglese;

fNewDb          settato a crescita illimitata la dimensione dei files;
                settato a 2Mb la dimensione iniziale del file dati ed a
                1Mb il file log;

fScript         corretto creazione script Database anche in definitivo e non
                solo in preview;

fTbDes          FlexPicture ora sono allineate CenterCenter per valori
fServer         booleani e RightTop per Combo;

fServer         corretta lettura dei settaggi prima della connessione al
                valore inserito nelle strutture e non piu' da lettura INI;

fQuery		rimosso button a discesa per selezione Grid/Text e sostituito
		con pushButton;

frmMain		data la possibilita' di selezionare il nuovo nome DB da
		riattaccare;
		dopo la generazione di un nuovo DB ora viene fatto il
		refresh generale e non solo il caricamento nella Flex;

vari		settati meglio le dimensioni dei controlli nei resize;
-------------------------
0.0.15  29/09/2000
fBckMain	corretta proprieta' enable dei cmd "Aggiungi", "Rimuovi" e
fResMain        "Contenuto" in caso di cambio nell'evento click del combo DB;

frmMain		alla selezione di "Mostra Oggetti di Sistema" viene
                automaticamente effettuato un refresh del treeview;
                cambiata modalita' di login e form di avvio, la connessione
                avviene ora direttamente dal form principale (passando per
                il form di login fServer.frm);
                aggiunta possibilita' di disconnessione e riconnessione;

fLog		rimosso form di login e sostituito vedi sotto;

fServer         form di connessione e specifica parametri;
                le peculiarita' di ogni elemento (PushButton-Combo) non
                vengono piu' eliminate allo scroll su altra riga;
-------------------------
0.0.14  09/09/2000
fQB             settata la proprieta' AllowCustomize della ToolBar=False;
fQuery

fQB             Gestito il valore Pressed/Unpressed per i buttons
                ShowDesigner,ShowGrid,ShowSql,ShowResult, Group e
                ListaTabelle/Viste;
-------------------------
0.0.13b 01/09/2000
fQB             modificata procedura di move dei controlli, non piu' tramite
tblView		Drag&Drop bensi' con move continuo, in modo da evitare
myLst		completamente di andare fuori spazi consentiti;
                Corretto WriteJoin in caso di nome Tabella Esterna = a
		Nome Tabella Interna, che rimetteva nella clausola
		{JOIN NomeTabellaEsterna} il Nome Tabella Interna;
                Cambiato BorderStyle del Form da FixedToolWindow a Sizable;
-------------------------
0.0.13a 20/08/2000
fQB             corretta Sub WriteSql che escludeva la BaseTable nei join
                se nessun campo di questa era visibile;
-------------------------

0.0.13  18/08/2000
frmMain         Settato a Autosize=sbrSpring il 1 pannello della statusbar;
                aggiunta possibilita' ci cancellare Viste (Views) che non
                siano SystemObject;

fQB             aggiunto un Query Builder per nuove Viste (Views), include
fJoin           fJoin per per proprieta' di join e le proprieta' della
TblView.ctl     Vista;
myLst.ctl       supporto per SelfJoin ma non per tutte le opzioni di
                raggruppamento previste dal Query Builder di EM;
                sono consentiti 1 sola condizione ed 1 solo OR;
                secondo il limite di DMO:
                non e' previsto il reverse engineering di Viste esistenti,
                ovvero la loro modifica;
                l'utilizzo di Viste esistenti riporta l'ordine di caricamento
                dei campi in ordine alfabetico e non in ordine di naturale
                della tabella di base;
-------------------------
0.0.12   01/08/2000
frmMain         rimosso ListBox dei DB detached e sostituito con nodo
                standard nel treeview; ora, se cosi'selezionato, vengono
                solo mostrati i DB per i quali si ha accesso garantito;
		per i DB distaccati vengono mostrati attributi dei vari
		file (cFileInfo.cls by Karl E. Peterson)

frmLog          rimosso fSetting e sostituito con Flex generale nel form
                frmFlog dove sono stati raggruppati i setaggi generali
                in piu' pagine (ora 2 pagine);

fSetting	form mimosso, funzionalita' sopperite in frmLog
-------------------------
0.0.11   11/07/2000
frmMain		aggiunto splitter per il size del treeview e flex;

fTbDes		corretto recupero proprieta' size dei campi nello scan
		iniziale;
		corretti alcuni bug;
-------------------------
0.0.10   06/07/2000
fIndex		rimossa nel _lostFocus del textbox or combo fluttuante
fRestore	l'struzione flex(n).setfocus che causava un bel crash
		se l'utente utilizzava CTRL-Tab key per spostarsi da
		tab a tab;

fSetting	aggiunto form per supportare ulteriori settaggi,
		inclusa la selezione della lingua, connessione Autenticata
                NT, AutoStart di SQL Server;

frmLog		rimossi checkBox di selezione per connessione Autenticata
                NT, AutoStart di SQL Server, che sono stati incorporati
		nel form fSetting;

frmMain		aggiunto supporto dei privilegi di accesso e rimossa
		limitazione di appartenenza al ruolo "sa" per
		agire con il tool;

fUDT		aggiunto supporto per tipi di dati definiti dall'utente;
fUsed
fTbDes
-------------------------
0.0.9a   15/06/2000
frmMain (@#!!)  ristabilito che gli utenti vedano nel treeview tutti i
fQuery          Database e non solo i Database dei quali sono utenti;
-------------------------
0.0.9   14/06/2000
fRoles		supporto per Ruoli Database definiti dall'utente;

fLogin		aggiunto supporto per Ruoli