-------------------------------------------------------------------------------- DbaMgr2k - Una Piccola Console Alternativa per MSDE 2.0 -------------------------------------------------------------------------------- Se desiderate essere informati circa nuove versioni rilasciate di DbaMgr2k, 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, DbaMgr2k puo' essere distribuito a corredo di altre applicazioni se: 1) non viene richiesto alcun ulteriore compenso extra per DbaMgr2k; 2) vengono mantenute inalterate le indicazioni dell'autore; 3) se da DbaMgr2k 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 DbaMgr2k 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.21.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.21.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.20.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.19.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.18.0 22/02/2006 fExpHtm i metodi .EnumOutputs e .EnumParameters fGenOpt dell'oggetto SQLDMO.UserDefinedFunction sollevano l'errore, ObjBr ora gestito, "[Microsoft][ODBC SQL Server Driver][SQL Server]Cannot resolve collation conflict for equal to operation." nel caso non siano in grado di risolvere le impostazioni di collation e sort order nell'utilizzo delle colonne interne alla funzione, sembrerebbe un altro bug di SQL-DMO; (grazie a Gianrenzo da Pordenone per il feedback) fExpHtm GetScript(); modificata la stringa ritornata sostituendo < e > con < e > ; fQuery LoadGrid(); SQL-DMO utilizza non correttamente il metodo .GetRangeString in presenza di tipi di dato bigint; corretto forzando manualmente la lunghezza di colonna passata come parametro "ColWidths" in formato DMO multistring; (grazie a Lorenzo Benaglia per il feedback) 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.17.0 22/02/2006 Omesso per scaramanzia ------------------------- 0.16.0 24/11/2005 frmMain Protette ed escluse alcune funzionalita' in caso siano aperte piu' finestre; (grazie a Pierfrancesco Fullin per il feedback) 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) fNewDB SaveDB(); corretta procedura di modifica della collation; 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.15.0 07/08/2005 fExpTb RunExport(); regression test bug: corretta l'inclusione incondizionata dell'impostazione SET IDENTITY INSERT; (grazie a Chunk Cohen per il feedback) 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.14.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; fExpTB ErrScriptTable(); rimosso il riferimento all'oggetto SQLDMO.Transfer ed utilizzato direttamente l'oggetto tabella referenziato per ottenerne la definizione; (grazie a Antonio Renna per il feedback) 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.13.0 non rilasciata... superstizione? :) -------------------------- 0.12.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.11.1 21/03/2005 fDbl_Clk Corretta valorizzazione di alcune proprieta' che facevano fallire l'esecuzione a doppio click; (grazie a Greg Hines per il feedback) 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 (DbaMgr2k.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"; fBCP Resa la finestra ridimensionabile; Aggiunto salvataggio e recupero dell'ultimo oggetto importato e/o esportato, con salvataggio e recupero dell'ultimo file di input/output, file di formato ed errore; modificate immagini dei 2 pulsanti iniziali per la selezione della direzione; (grazie a Roberto Gismondi per il feedback) fServer Modificata interfaccia e comportamento; aggiunto pulsante per provvedere a "sfogliare" la rete locale rimuovendone il supporto derivante dal doppio click sulla relativa proprieta' del Server, in questo modo l'editing della proprieta' Server e' consistente con le altre proprieta' presenti nel dialogo, visto che molti utenti hanno lamentato incapacita' di comprendere il funzionamento del comportamento originale; frmMain Modificata interfaccia e comportamento; rimosso nodo della treeview relativo ai database distaccati ed aggiunto direttamente item di menu su database per la gestione del riattacco dei database con browsing simile a quello introdotto da Enterprise Manager 2000; fBckMain Corretto il recupero ed uso delle informazioni sulla Retantion Date; fPrivil Modificato in modo da visualizzare per le funzioni utente esclusivamente le azioni possibili: funzioni InLine : SELECT/INSERT/UPDATE/DELETE/DRI funzioni Table : SELECT/DRI funzioni Scalari: EXEC/DRI -------------------------- 0.10.0 20/01/2005 mainMod GetServicePackLevel(); modificata procedura che ora utilizza un file esterno (SQLBuild2k.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) fTbDes SaveTbl(), AlterTable(); corretta esecuzione che esclude la definizione delle proprieta' di collation per database impostati con compatibilita' diversa da 80; (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 la 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); frmMain Aggiunta possibilita' di visuallizzare l'appartenenza ai ruoli di database alla barra di stato; 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); fDBL_Click GetActionString(); corretto recupero informazioni testuali per i valori relativi agli oggetti "Procedure"; (grazie a Greg Hines per il feedback); 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.9.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.9.0 25/08/2004 frmMain AttachDB(); corretta procedura che falliva la rilocazione del Primary File se un data file secondario non era presente nella posizione specificata in sysdatabase; (grazie a Ryan Stone per il feedback); 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.8.0 05/06/2004 frmMain DBInfo2Html(); modificata; fBckMain Aggiunta possibilita' di schedulare il backup direttamente dalla finestra di backup; frmMain Load_DBFlex(); recuperate anche le informazioni sul modello di recovery; 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 eliminare la conologia di backup al momento dell'eliminazione dei database, parametrizzabile; 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) fNewDB tBar_Buttonclick(), tStrip_Click(); corretta chiamata per "Arrangia Griglia" che chiaramente falliva se utilizzata nel Tab "General" che non e' provvisto di griglia; 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.7.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; fAttach ExecAttach(); modificato per utilizzare il metodo .AttachDBWithSingleFile in caso di solo file Data; cDetGrp LoadCollection(); modificato in modo da caricare nella lista sempre il file primario dal path passato e non dalla NameList ritornata dal metodo .ListDetachedDBFiles(..); 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.6.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 Il testo di stored procedure, funzioni, viste e trigger gia' esistenti e' ora modificabile; frmMain Tview_MouseDown(): modificato l'accesso alle proprieta' del server selezionando il nodo del server stesso e non la Root del controllo; fNewDB Consentita la modifica della Collation per database esistenti; fServer Rimosse le limitazioni circa i caratteri ammessi per login frmLogin e password; fTBDes FlexEdit(): permessa la modifica della proprieta' Nullable anche in caso di modifica di una colonna; - non viene piu' impostato il Default di una colonna di tipo UNIQUEIDENTIFIER a newid(); SaveTbl(): corretto problema con colonne UNIQUEIDENTIFIER relativamente alla proprieta' ROWGUIDCOL; (grazie a Ken Williams per il feedback); fIndex E' ora permesso indicare l'ordinamento discendente delle colonne anche per le chiavi primarie; Il salvataggio degli indici e chiavi avviene ora chiamando la procedura ModifySQL passando il parametro bSaveOnly = True; fIdxView Il salvataggio degli indici avviene ora chiamando la procedura ModifySQL passando il parametro bSaveOnly = True; 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.5.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 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); fNewDB Add1Row(): Testata e trappata la possibilita' di aggiungere nuovi elementi nel tab 'Generale'; 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; fLista Aggiunta gestione dell'abilitazione dei protocolli di rete SuperSockets in conformita' con l'uscita e le recensioni accompagnanti il Service Pack 3a. 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); 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); 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; fBckMain GenerateSQL(): aggiunta possibilita' di generare script T-SQL fResMain di BackUp/Restore, salvabile su file, che possa essere usato nella generazione di Job; 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.4.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.3.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.3.0 19/03/2003 Rilasciata la versione Release sulla scorta della build 0.2.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.2.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.2.119 BETA ConstRes Modificata etichetta sul Form principale indicante la posizione dei database da ricollegare; (grazie a William (Bill) Vaughn per il feedback); -------------------------- 0.2.118 BETA (build 117 saltata... superstiziosi??) fLista Flex_DblClick(); se l'array vntObj non era dimensionato (lista istanze SQL Server 2000), il programma andava in crash; (grazie a Cooley (Elvito Del Prete) per il feedback); -------------------------- 0.2.116 BETA fSchedu Dichiarazioni Form: la costante k_MaxTimeLong era sbagliata; -------------------------- 0.2.115 BETA fJobMgr SaveJobData(): modificata gestione errori caricamento delle collection Notificazioni e Processi; -------------------------- 0.2.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.2.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.2.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.2.111 BETA fTbDes FlexDblClick(): impostato a 0 il codice KeyAscii; FlexEdit(): chiamato SendKeys Chr$(KeyAscii) solo se il codice KeyAscii e' diverso da 0; *** 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.2.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); 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; fPrivil LoadElem(): corretto bug sul recupero privilegi su oggetti "Funzioni definite dall'utente" che reimpostava il tipo di privilegio al valore "1" non riconosciuto tra i valori validi; -------------------------- 0.2.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; Load_DBFlex(): se la proprieta' di "collation" non era stata impostata al momento della creazione, la graglia non caricava alcun valore: ora viene indicato il valore predefinito del server; ActMenu(): [Ricerca oggetti..]: se la ricerca veniva chiamata dalla griglia e non dal nodo della treeview, andava in crash in quanto veniva utilizzata una stringa vuota per referenziare il database; -------------------------- 0.2.108 BETA Utenti NON membri del ruolo "sysadmin" non potevano accedere ai servizi di SQL Server Agent (JobServer); frmMain Modificate richieste di privilegi per l'accesso ai servizi di SQL Server 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 SQL Server 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 SQL Server Agent; IsJobServerRunning(): protetto con gestore errori; -------------------------- 0.2.107 BETA frmMain Concessa la modifica di Job esistenti ai soli proprietari ovvero ai membri di "sys_admin" -------------------------- 0.2.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.2.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.2.102 BETA fOpe_Ale LoadAlert(): andava in errore il caricamento dei settaggi di backup se non erano gia' presenti degli operatori; (grazie a Lucia Walles per il feedback); fJobMgr LoadScheduleGrid(): impostava le proprieta' enabled dei commandbutton degli step... -------------------------- 0.2.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. In aggiunta a questa problematica, solo DbaMgr2k aggiunge alle funzionalita' preesistenti la gestione dei Processi (jobs); come al solito, uno speciale ringraziamento va a Gert E.R. Drapers, per la disponibilta' ed efficacia nelle soluzioni. La prima beta di questa nuova versione viene rilasciata con la build 0.2.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.3.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. fServer Aggiunta possibilita' di listare le istanze di Server disponibili per il computer selezionato; 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); 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; ooppss.... mancava la funzione di salvataggio di funzioni utente; fIndex FlexEdit(): trappato il Codice TAB in modo da non entrare in frmLogin Edit; fBckMain fResMain fNewDB fBCP fGenOpt fUDT fQB fServer fAdvance fExpTB fIdxView 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.2.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 i caratteri + e -; frmLogin bObjDMO ErrExecSqlDirect(); modificato il parametro EXEC_TYPE da SQLDMOExec_ContinueOnError a SQLDMOExec_Default; (grazie a Allanon per il feedback); frmMain ActMenu() - Nodo Database (tutti) recupero dalla griglia: 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: 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; fServer se viene scelta una connessione "Trusted", ora il nome login e password vengono annullati e disabilitati; fGenOpt Visualizzazione Triggers: ora viene indicato ed e' possibile modificare lo stato di Abilitazione dei trigger; fExpHTM ErrWriteTrig(): ora viene indicato lo stato di Abilitazione dei trigger; -------------------------- 0.1.0 19/11/2002 Release Iniziale allineata con la versione 0.47.0 di DbaMgr (per Sql7) End