-------------------------------------------------------------------------------- DbaMgr2k - An alternative, little Console for MSDE 2.0 -------------------------------------------------------------------------------- If you want to be notified of new releases of DbaMgr2k, send me an e-mail and you can subscribe to this service. The service is free of charge and could be interrupted by me at any time with no previous information. =========================================================================== ----- DISCLAIMER --------------------------------------------------------------- All the material produced by the Author included in this compressed archive is copyrighted by Insulin Power 1993-2007 by Andrea Montanari, with the exception of all dependencies and libraries that are distributed with limited licenses by each owner and/or holder; you can use it without restriction, while re-distribution must be under these terms: in general words, you are entitled to bundle this software with software/application of yours as long as: 1) you do not charge additional fees for DbaMgr2k to your customers/users; 2) you maintain Author's credits; 3) if you derive a similar general managent application without substantially modification of original source code of DbaMgr2k, you still must meet requirements 1) and 2) 4) portions of the original source code can be "cut and pasted" with no restriction into other specific applications of yours, no credits are required as long as point 3) is fullfilled. I will be very happy to know about these distributions, along with your name, company name, application(s) witch DbaMgr2k will be bundled with.. this info are for my records only and will never be published or used. This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; the author (me) has no responsibility for any damage or loss this software could produce. USE IT AT YOUR OWN RISK -------------------------------------------------------------------------------- Should you find bugs (and you will), suggestions improvements and so on, please feel free contact me; feed back, comments advices are welcome, not so insults... ;-) enjoy.. and excuse my poor english.. Andrea Montanari andrea.sql@virgilio.it http://www.asql.biz/DbaMgr.shtm ************************* HISTORY ************************* 0.21.1 30/11/2007 cFileInfo Modified FileSize relevation to overcome 4gb limit as per the original definition by Karl E. Peterson; (thanks to Andreas Loeffler for the feedback) -------------------------- 0.21.0 07/01/2007 fQuery Execute(); Fixed "USE dbname" behaviour and added a full database names refresh; (thanks to Angelo Munoz for the feedback) fResMain Added column to physical files grid to reset to the INIBas application setting regarding the default folder for MDF files for files to be restored pointing to alternate folders; (thanks to Gionni Reffo for the feedback) -------------------------- 0.20.0 30/08/2006 fBCP cmdNav_Click(); verified the format is correctly set before trying the creation step: fTBDes Modified interface and management in order to support both Defaults and Rules SQL Objects that always have been forgotten; (thanks to Ian Davidson for the feedback) -------------------------- 0.19.0 12/05/2006 ObjBr AddNodes(); verified the database is "on-line" before enlisting its objects; (thanks to Chunk Cohen for the feedback) frmMain ActMenu(); DeleteBackupHistory; modified date to ISO format to remove all problems related to date format and Login's default language; frmMain Form_Load(); checked with error handler some calls to ini configuration file about sizing and positioning values, that could raise overflow exceptions; (thanks to Carl Wright for the feedback) fTBDes cbo_LostFocus(); modifying the data type in the character range ([n]varchar, [n]char), the original size setting is now preserved if not exceeding the data type max value; (thanks to Fabio Calzeroni for the feedback) fQuery LoadGrid(); it seems an enumerator value misses in the SQLDMO.SQLDMO_QUERY_DATATYPE for float data values; the following declare @r as float set @r = 1.123 select @r should return SQLDMO_DTypeFloat4 (=7) or SQLDMO_DTypeFloat8 (=8) but it returns [6]; (thanks to Ori Atar for the feedback) fTbDes Cbo_LostFocus(); modifying the data type from numerci to integer, scale and precision properties were not reinitialized; (thanks to Fabio Calzeroni for the feedback) -------------------------- 0.18.0 22/02/2005 fExpHtm .EnumOutputs and .EnumParameters methods fGenOpt of SQLDMO.UserDefinedFunction object raise exception, now ObjBr handled, "[Microsoft][ODBC SQL Server Driver][SQL Server]Cannot resolve collation conflict for equal to operation." when a resolving collation and sort order problem is found in the use of the include columns of the object's text code; it seems another SQL-DMO related bug; (thanks to Gianrenzo da Pordenone for the feedback) fExpHtm GetScript(); modified output replacing < and > withn < and > ; fQuery LoadGrid(); SQL-DMO incorrectly uses the .GetRangeString method when bigint data type is involved; fixex providing the "ColWidths" SQL-DMO multistring optional parameter; (thanks to Lorenzo Benaglia for the feedback) frmMain Flex_MouseUp(); regression test bug: fixed Flex row selection; (thanks to Vincenzo Morgante for the feedback) FlexEdit hasScrollBars(); modified procedure in hasVerticalScollBar in order to test for vertical scroll bar only; ------------------------- 0.17.0 22/02/2006 Scaramantic omission -------------------------- 0.16.0 24/11/2005 frmMain Protected and excluded some features when more windows are open; (thanks to Pierfrancesco Fullin for the feedback) frmMain Flex and TreeView; modified events management in order to allow selection and contestual pop-up menu interaction; (thanks to Jim Sharples for the feedback) frmMain LoadDatabaseNodes(); protected procedura with internal handler for the case where database is missing name, that previously prevented the database nodes hierarchy to be loaded; a warning will be reported should be the case; (thanks to Michael Ramey for the feedback) fNewDB SaveDB(); fixed procedure to modify collation; fChoseBK Added possibility to manual edit the physical file location of the backup file; fQB WriteSql(); modified routine in the JOIN statements fQBData generation algorithm; (thanks to Andreas Lohrentz for the feedback) -------------------------- 0.15.0 07/08/2005 fExpTb RunExport(); regression test bug: fixed unconditional inclusion of SET IDENTITY INSERT setting; (thanks to Chunk Cohen for the feedback) fNewDB AddDBfile2Group(), AddLog2TransLog(); fixed growth settings that did not allow to set a file to unlimited growth; (thanks to Paco Bueno for the feedback) -------------------------- 0.14.0 06/07/2005 fJobStep Added support for "Append output to step history" property when saving the step result to file that was left over; (thanks to Luan Nguyen Thanh for the feedback); fTbDes Ident2String(); fixed regression test bug that did not correctly shown identity property; (thanks to Hill Harris for the feedback); fQuery LoadGrid(); fixed chunk rows loading for text mode; (thanks to Ciro Funicola for the feedback); frmMain Added possibility to select the ordering method for fLang statistical results of the database; fExpTB ErrScriptTable(); removed reference to SQLDMO.Transfer object and replaced with the referenced table object to get the DML text definition; (thanks to Antonio Renna for the feedback); bObjDmo TriggerType(); fixed in order to correctly return all kind of trigger type from the type enumeration; fTBDes FlexEdit(); modified the edit lenght for IdentitySeed and IdentityIncrement propertyes to 13, allowing values like 1.234.567.890; (thanks to Peter Schmidt for the feedback); fExpHTM Modified export procedure, that now, when the full path to fDbl_Clk Win Help compiler (hhc.exe), will also output the same documentation in compiled form, using the HTML Help compiler part of the HTML Help 1.4 SDK, available for free download form Microsoft HTML Help Downloads at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html/hwMicrosoftHTMLHelpDownloads.asp with wich the project has been tested; the application will output the .hhp project file as long as the ToC (table of contents) file; the first is then passed as parameter to a shelled call to the hhc.exe compiler, and it's action is logged to a text file stored in the documentation output directory; the project and ToC file can be of course later modified for further manual edit and requirements; GetScript(); removed reference to SQLDMO.Transfer object and replaced with the referenced object to get the DML text definition; (thanks to Lorenzo Benaglia, Antonio Renna for the feedback); -------------------------- 0.13.0 not released... superstition? :) -------------------------- 0.12.0 12/05/2005 fExpHTM RunExport(); modified procedure to allow alphabetic or creation date order; (thanks to Antonio Renna for the feedback); frmMain DBInfo2Html(); modified Transact-SQL statement to return the ordered tables list; (thanks to Antonio Renna for the feedback); fEditPWD Save(); fixed error handler; (thanks to Marcello De Vita for the feedback); fQuery LoadGrid(); modified in order always to use GetColumnString(row,column) method instead of the casted method for the appropriate type, as .ColumType property sometime report a wrong value; (thanks to Antonio Renna for the feedback); fScript now all refereced views are refreshed befor executing; fQuery now the Query window, the "Open table" and view, even with fQBData Query Builder, are modeless, as long as other vindow to fTableSet create and edit database's objects are now modeless in order frmMain to support more opened windows; fTBDes Added toolbar button to show (not editable) the Data Defintion Language statement to be used to create/modify the underlying table; fQuery Added save and use of the Query window dize and position; (thanks to Lorenzo Benaglia for the feedback); frmMain Added additional statistics in the databases list; (thanks to Antonio Renna for the feedback); fQuery Execute(); if no resultset is returned by the executed queries, now the message pane is made visible; (thanks to Paolo Castagnetti for the feedback); frmMain Added feature to customize the main grid sort order based fLang on the selected cell with a custom external dialog; (thanks to Terry Bradford for the feedback); -------------------------- 0.11.1 22/03/2005 fDbl_Clk Fixed property setting that cause the double click to fail; (thanks to Greg Hines for the feedback); frmMain Added "refresh" databases list menu pop up item to the database context menus; (thanks to Lorenzo Benaglia for the feedback); fRelView Modified interface with regards to selected table to be fDbl_Clk processed; added feature to define the recursion level; (thanks to Antonio Renna for the feedback); frmMain It is now possible to disconnect from the connected instance; Gen Fixed some issues ralated to case sensitive LOCATION for hardcoded keywords and sql statements; (thanks to Larry Uzzel for the feedback); fChgUser Added feature to fix "Orphaned Users"; fUserP fAdvance Flex_DblClick(); fixed routine that crashed selecting rows on different grids and tabs; (thanks to Roberto Rizzo for the feedback); frmMain Added multiserver session properties management; fDbl_Clk it is now possible to customize a specified set or properties fServer for each server, known with it's "Public Name" (it's fConnect description), resulting that all properties that before were IniBas valid at instance level are now valid are private for each bSvrIni single server, removing related management from the general cServer procedure for the generic Ini file serialization and mainMod requiring an additional file (DbaMgr2k.Svr) in order to serialize each server's property; The connection dialog has been replaced depending on the expressed modifications; (thanks to Antonio Renna for the feedback); fBckMain Modified to avoid the percent dialog to hide all messages fResMain reported at execution end; fPercent (thanks to Roberto Gismondi for the feedback); frmMain Added possibility to verify and eventually kill active fDbl_Clk connections to databases to be detached before detaching them as long as evebntually notify them via NET SEND of their imminent termination, and the actual available settings are "Never" (default), "Always", or "Prompt for each database"; fBCP Now the window is resizable; Added Last Recent Used information setting for database and object, as long as input/output file, format file and error file; Modified imagines of the 2 direction buttons; (thanks to Roberto Gismondi for the feedback) fServer Modified user interface and behaviour; added a command button to browse "my network places" and removed double-click browsing on the Server property; so the edit mode of the property is consistent with the others as many users reported inability to understand the original behaviour; frmMain Modified user interface and behaviour; removed treeview node of detached databases and added management with context menu items, providing a browsing interface similar to the one provided by Enterprise Manager 2000; fBckMain Fixed Retantion Date information retrival and use; fPrivil Modified in order to show only for user defined function only allowd permissions actions: function InLine: SELECT/INSERT/UPDATE/DELETE/DRI function Table : SELECT/DRI function Scalar: EXEC/DRI -------------------------- 0.10.0 20/01/2005 mainMod GetServicePackLevel(); modified in order to use an external file (SQLBuild2k.txt) to verify binary versions; fQBData Modified in order to always execute just one time the provide TableSet SQL statement and, when possible, alway returns a server side ADODB.Recordset, in order to avoid double execution of eventual DDL statements; MainMod GetMembership(); modified procedure to avoid SQL-DMO troubles that does not correctly check user's SQLDMODatabase(database).Is_[member]; (thanks to Alan Andreas Allacher for the feedback) frmMain Added CREATE TABLE, PROCEDURE, etc, permissions check when enabling relative object's action menu; (thanks to Alan Andreas Allacher for the feedback) frmLogin Protected with error handler the retrival of the passed Login argument which crashed the application when failing; (thanks to Alan Harris-Reid for the feedback) fTbDes SaveTbl(), AlterTable(); fixed save routines that nows discards collation definitions for database with compatibility level not 80; (thanks to Alan Harris-Reid for the feedback) fResult Added Hot Key to execute SQL statements, F5 and CTRL+e for SQL editing window; (thanks to Alan Harris-Reid for the feedback) fQuery Added user setting to preselect current database or user's default database at window's opening; (thanks to Alan Harris-Reid for the feedback) fTableSet Added supporto for editing text and ntext columns in separate fQBData window; fResult (thanks to Alan Harris-Reid for the feedback) frmMain Flex_KeyPress; the event handler now calls the default action (if set) for the specified object when "Enter" key is pressed press; (thanks to Alan Harris-Reid for the feedback) fQBData Added Hot Key to execute SQL statements, F5 and CTRL+e (thanks to Alan Harris-Reid for the feedback) General All SQL edits font and result grid font are now set as per user settings defined in the Query window; (thanks to Alan Harris-Reid for the feedback) frmMain Added feature to set Last Used Database that will selected fDBL_clk at next application startup; (thanks to Alan Harris-Reid for the feedback) fRs2File Added feature to export to file active results of queries fQBData perfomed via Query Builder and/or via Open table/view; TableSet frmMain tView_Collapse(); added event handler in order to modify grid population according to the new selected node (thanks to Roberto Gismondi for the feedback); fQuery From_KeyDown(); added support for CTRL+e hot key in order to execute Transact-SQL statements; frmMain mnuF_Click(); fixed node key retrival which crashed the application when no selected node was set; (thanks to James Barret for the feedback); fDbl_Clck ResetDefault(); fixed value setting of some defaults; (thanks to James Barret for the feedback); General Added user setting in order to specify custom file extension for primary data files, as new products currently specify custom extensions that prevent the possibility to use the re-attach guided feature; (thanks to James Barret for the feedback); fScript Execute(); modified in order to fix error when writing to file object names with accent, like [Attivit…] which became [Attivit..]; (thanks to Roberto Gismondi for the feedback); AbSplash GetKeyValue(); fixed routine which failed on empty strings; (thanks to Emanuele Valsecchi for the feedback); frmMain Added possibility to show user's database roles membership in the status bar; fScript The default export format is now ANSI; frmMain mnuF_Click(); after data refresh, the treeview selected node will be selected again, if available; frmLogin LoadDB(); language combobox is now alphabetically ordered; (thanks to Ivano Modenin for the feedback); frmMain ActMenu(); modified to fix eccessive access limitations to the pop-up menu; (thanks to Sed Mayne for the feedback); mainMod LoadRtfFile(); centralized text file loading procedure for RichTextBox controls and fixed UNICODE conversion to ANSI which did not check for presence of Unicode Byte Order Mark (0XFEFF); (thanks to Greg Hines for the feedback); (thanks to Corrado Cavalli for the solution); fDBL_Click GetActionString(); fixed testual information retrival for "Stored Procedure" objects; (thanks to Greg Hines for the feedback); fExpTB LoadDbStructure(); modified initial path position for generated file in order to fullfill general user's settings; (thanks to Ivano Modenin for the feedback); -------------------------- 0.9.1 27/08/2004 frmMain InitMain(); fixed behaviour that did not disconnect the server object when the reported engine version is not supported, and the menu items where not disabled accordingly; -------------------------- 0.9.0 25/08/2004 frmMain AttachDB(); fixed error of relocation for Primary File if a secondary data file has been moved from the sysdatabase referenced path position; (thanks to Ryan Stone for the feedback); fTableSet Added BOF and EOF toolbar buttons; (thanks to Ivano Modenin for the feedback); fExpTB Modified export in order to allow OEM/DOS format; (thanks to Ivano Modenin for the feedback); fQuery LoadDB(); fixed current user's default database retrival that aused the app to crash if the db coul'd not be retrived; (thanks to Enzo Carfora for the feedback); bFindF SearchSystemForFile(); modified and added search in the PATH in order to speed up the operation; (thanks to Ettore Maronese, il - Mes - for the feedback); fBCP LoadColDefin(); fixed routine which did recognize user defined data types; mainMod getBCPtype(); modified; ----------------(thanks to Fibia FBI for the feedback) fBckCont The dialog is now sizable; fJobStep Fixed editing that now accepts BackSpace key; Modified OutPut file visualization, that now shells to Notepad first before calling the predefined program if the first call fails; fDlgQry Modified management using ComboBox instead of command buttons and added possibility to return the whole resultset anyway; frmMain Load_ErrLogNO(); modified to accept above change; fOpe_Ale SaveAlert(); modified partially using T-SQL statement to set Job = 0; fAgentLg Modified evaluation replacing SWITCH with SELECT CASE; fJobMgr LoadCBO_Init(); modified original "owners" load excluding NT Groups; RemoveAlert(); now using T-SQL code instead of SQL-DMO object which raised an unhandable exception; SaveJobData(); now the StartStepId is saved when updating an existing job; (thanks to Fibia FBI for the feedback) fTBDes Columns collection boundary has been increased to 1024 items; -------------------------- 0.8.0 05/06/2004 frmMain DBInfo2Html(); modified; fBckMain Added support to schedule backup directly in the backup window; frmMain Load_DBFlex(); retrived information about database recovery model; fResMain SetUiRestoreType(): added modification of the restore type based on the file number and information from the backupheader; fNewDB Increased to 4 digits max file growth file property editing; frmMain Modified execution of cliconfg.exe and svrnetcn.exe in order cDrives to search all drives; cDrvType frmMain It is now possible to drop backup history when deleting databases, the setting can be parametrized; frmMain It is now possible to hide databases non granted to the current login/user; fTBDes It is now possible to save an existing table performing ALTER TABLE statements instead of creating a new temproray table; fExpTB GetSQLCommand(); fixed T-SQL command generation for uniqueidentifier data type columns; (thanks to Paul Tissue for the feedback) fNewDB tBar_Buttonclick(), tStrip_Click(); fixed call to "Fit grid" that crashed when used on the "General" tab wihch is not provided with a grid; frmMain Modified the key for Database node in order to avoid keys conlicts loading the treeview; fResMain Added search for the last performed backup for the selected fBckMain database; -------------------------- 0.7.0 26/04/2004 fBCP Fixed BCP format file generation that crashed for views objects; frmMain Added BCP format file generation for tables and vies to the Menu options; fNewDB tFlex_LostFocus(); removed file size validation that required the new size to be bigger than the new value; FlexEdit(); increased edit size for file size property to 5 chars (9.9999 max); (thanks to Morten Skille for the feedback) frmLogin SaveData(); fixed: WinNT user/group grant and deny permissionsa re saved and honoured when saving =;-( General now is possible to set and select the object owner for Tables, Views (with QB), Defaults, Rules and User defined data types selecting the desired owner from a list of all possible owners; objBr InitTview(); fixed bug and now skipping database node loading for unauthorized databases of current user; fAttach ExecAttach(); modified in order to use AttachDBWithSingleFile method when only primary Data file is present; cDetGrp LoadCollection(); modified in order to always load in the list the primary file as passed form the selected path insetead of from the NameList returned by .ListDetachedDBFiles(..) method; fResult Cmd_Click(); regression bug; fixed execution of click event when editing T-SQL statement; (thanks to Alan Harris-Reid for the feedback) fDBL_clk Added support for customizing opening/savign position of .sql files; (thanks to Gianni Carrozzo for the feedback) fQuery OpenSql() and SaveRequest(); now last directory/position of Open/Save tasks is internally saved for later use; this information is state dependent and will not be stored or restored after closing the query window; Clipboard now correctly is loaded with text instead of RTF; (thanks to Gianni Carrozzo for the feedback) fQuery Added toolbar button to refresh database combobox; fTBDes tFlex_LostFocus(); fixed in order to allow modification of Precision and Scale porperties only for "decimal" columns; fPwd tLog_KeyPress(); fixed regression bug in ordeer to allow editing all chars for password validation; (thanks to Jason Zheng for the feedback) bMask ValInt(); modified in order to valuate regional settings (thanks to Jason Zheng for the feedback) -------------------------- 0.6.0 05/02/2004 frmMain tView_MouseDown(); fixed bug while reading un-initialized treeview control; (thanks to Vincenzo Morgante for the feedback) fDBL_clk Added support for customizing T-SQL edit window Font; fResult fJobStep fResult Text of stored procedures, user defined functions, views and triggers already existing is now modifiable; frmMain Tview_MouseDown(): access to Server's properties has been set when right-clicking the instance node and no more the Treeview Root node; fNewDB Existing database collation can now be modified; fServer All chars are now available for user and password properties; frmLogin fTBDes FlexEdit(): Nullable property is now read-write for modified columns; - UNIQUEIDENTIFIER columns that are ROWGUIDCOL no more have the default set to newid(); SaveTbl(): fixed problem when more than one UNIQUEIDENTIFIER columns exist, with reference to ROWGUIDCOL property; (thanks to Ken Williams for the feedback); fIndex It is now permitted to specify decending order on primary keys columns to; Keys and Index are now saved all via the ModifySQL procedure, passing the new parameter bSaveOnly = True; fIdxView Index are now saved all via the ModifySQL procedure, passing the new parameter bSaveOnly = True; fServer Modified Server, login and password len to 128 chars; fTBDes Modified BorderStyle property in "Sizable"; ObjBr.ctl Added user control to manage an "Object Browser" feature used by fResult and fQuery in procedure creation and view creation (text based) and in the Query window; fTBDes FlexEdit(); modiufied in order to allow removal of IDENTITY property for previously added columns; (thanks to Marcello Biglioli for the feedback); fTableSet The tab key now navigate throught the DataGrid columns; (thanks to Alan Harris-Reid for the feedback); -------------------------- 0.5.0 09/12/2003 frmLogin Login and Users names with emmbebbed spaces are now permit; fGenOpt fServer frmLogin set to 128 chars (SYSNAME) the editable lenght of Login's fGenOpt name, User's name and Password; (thanks to Luigi De Gregori for the feedback); frmLogin added enumeration of domain's Windows NT Groups and Users; fNtG_U cGrp_Usr cNTuser Groups and Users enumeration via NetLocalGroupEnum API; If you call this function on a Windows 2000/XP member server or workstation, all authenticated users can view the information. Anonymous access is also permitted if the RestrictAnonymous policy setting allows anonymous access. On Windows NT, no special group membership is required to successfully execute the NetLocalGroupEnum function. However, on Windows 2000/XP, if you call this function on a Windows 2000/XP domain controller running Active Directory, access is allowed or denied based on the access-control list (ACL) for the securable object. The default ACL permits all authenticated users and members of the "Pre-Windows 2000 compatible access" group to view the information. By default, the "Pre-Windows 2000 compatible access" group includes Everyone as a member. This enables anonymous access to the information if the system allows anonymous access. If you call this function on a Windows 2000/XP member server or workstation, all authenticated users can view the information. Anonymous access is also permitted if the RestrictAnonymous policy setting allows anonymous access. Shoul'd the function call fail, the application will try enumerating Windows NT groups only using extended system stored procedure master..xp_enumgroups, which can return only groups member of the domain, that requires sysadmins and/or db_owner of the master database membership; (thanks to Lorenzo Benaglia for the feedback); frmMain Grid; added incremental search for typed letters; (thanks to Alan Harris-Reid for the feedback); frmMain Job2Html(); fixed some formal HTML errors; (thanks to Fibia FBI for the feedback); fQuery Added user defined setting to specify default results to fGenOpt grid/text; (thanks to Alan Harris-Reid for the feedback); frmMain Added to Database's context menu direct call to the Query fQuery window with default setting to current selected database; (thanks to Alan Harris-Reid for the feedback); fQB Columns Alias are from now on always surrounded by fQBData square brackets; Regarding Grid rows where the indicated column is * , now that column non longer accept alias and filters conditions; Added Exit button on the Toolbar; (thanks to Fibia FBI for the feedback); cRegenO Added stored procedures recompile and views refresh options; (thanks to Fibia FBI for the feedback); fScript Fixed Unicode format file generation; (thanks to Fibia FBI for the feedback); frmMain LoadPermission(); permission management for system objects fPrivil is now allowed; mainMod fBindMGR Added managemnt for Rules and Defaults, as long as management fBind for UDT and Columns binding; mainMod LoadPermission(): fixed unhandled error when scanning for object that no longer exists at calling time; fExpTB SET IDENTITY INSERT is now available only if the idintity column has been added to output; clearing the identity column will reset this setting too; on the contrary, it is permitted to export identity column without SET IDENTITY INSERT setting; (thanks to Paolo Castagnetti for the feedback); fDBL_clk RefreshData(): added user setting for inserting 'USE db fScript command while generating DDL scripts; (thanks to Paolo Castagnetti for the feedback); fExpTB GetSqlCommand(); fixed a cast on float, real, money e smallmoney data types that loosed decimal; added user setting to manage exported format for datetime-smalldatetime columns; Fixed SET IDENTITY INSERT output; (thanks to Paolo Castagnetti for the feedback); fEditPWD Added possibility to manage password for non administrative users; frmMain Added possibility to show currently logged users for selected database with action from the treeview control; frmMain Switching focus from the tree-view to another control, eg. on objects on the right pane of the window, now the selected node of the tree-view is remains highlighted; (thanks to Marcello Biglioli for the feedback); fExtern Now a confirmation is requested before deleting; (thanks to Marcello Biglioli for the feedback); fDBL_clk Added user setting to specyfy custom path for new Data and Log files on database management and default custom path for Backup files; fNewDB User settings as above specified are now honoured; fChooseBCK fBckD fQBData Added simple Query Builder to build SELECT command to perform data retrival on tables and views; fQuery Execute(), LoadDBGrid(): fixed visualization of variable 'ResultSet'; the window no longer is 'System Sizable'; (thanks to Paolo Castagnetti for the feedback); fDBL_clk RefreshData(): added user setting for inserting 'USE db fExpTB command while generating INSERT INTO scripts; (thanks to Paolo Castagnetti for the feedback); fExpTB tFlex_LostFocus(): raised an unchecked error if edit was active and export generation was called; (thanks to Paolo Castagnetti for the feedback); fNewDB Add1Row(): checked (and trapped) possibility to add more elements in 'General' tab; FrmMain Added visualization of last sent proces T-SQL command; fServer Added local network scan for available SQL Server/MSDE; fLista fQuery Execute(): modified in order to continute to next batch if the current one results in errors; previously execution was terminated; (thanks to Andrea Caprioli for the feedback); fIndex Base table selection's ComboBox is now enabled only during relations creation; frmMain LoadJobs(): now Next Run Time will be shown too; fChoseBCK cmd_Click(): a .BAK extention was added if none where provided for the selected file; now this has been fixed and files with no extention can be selected too; (thanks to Paco Bueno for the feedback); fScript Added possibility to add USE [database] clause to the script in order to run scripts in the selecte database context; (thanks to Paolo Castagnetti for the feedback); fExpTB Added possibility to add USE [database] clause to the script in order to run scripts in the selecte database context; (thanks to Paolo Castagnetti for the feedback); fExecPrc Added possibility to execute stored procedure passing parameters; frmMain "Show system objects" setting has been moved to Settings fDBL_clk form; frmMain Access to detached databases node is now only permitted to sysadmin and db_creator members; button "Full data path..." is now accessible only to sysadmin and db_creator members; "Show system objects" menu is now correctly checked at program start; (thanks to Fibia FBI for the feedback); fTBDes Columns collection boundary has been increased to 250 items; Fixed bug occurring when the limit was reached; (thanks to Fibia FBI for the feedback); fAdvance Added memory management settings; fLista Added management of SuperSockets net protocols enable/disable for compatibility with Service Pack 3a directives; fDBL_clk An option has been added to automatically propose the value frmMain for "Full data path in host computer for databases to attach" at the connection time within the available settings; INIbas Added bas module to centralize management of settings saved in the .Ini file; fQB Query Builder to create new views has been restored; general Bas module hlpConst.bas has been added in order to provide constants for contextual help for the linked help guide; fExpHTM Modified absolute links to relative links in order to allow moving the entire documentation to other position; (thanks to Luc Wuits for the feedback); MainMod PurgeClipBoard(): modified in order to avoid "double-paste" form the ClipBoard; TableSet Modified in order to allow editing of the T-SQL command; By pressing the Ctrl + 0 (zero) combination, it is now possible to enter NULL values in the underlying columns; (thanks to Greg Hines for the feedback); frmMain LoadJobs(): the owner of the jobs is now shown; ActMenuAgent(): deleting Alerts, Operators and Jobs: the form showing the result of the operation did not hide non relevant controls on it; * added another StatusBar and restored time visualization: the visibility of this StatusBar is configurable by user; SetCurUserName(): now all server roles the current logged user is member of are shown; all this info are reported in the second StatusBar; fGenOpt LoadUser() [UpdateUser()]; user defind database roles were not listed; (thanks to Mario Lopes for the feedback); fQB LoadGrid(): grid loading has been modified for SQLDMO_DTypeDateTime and SQLDMO_DTypeDateTime4 columns becouse using .GetColumnDate method SQL Server 2000 returned SystemTimeToFileTime, incorrect Parameter error; fBckMain GenerateSQL(): added feature to autogenerate T-SQL scripts fResMain for Backup/Restore restore operation, that can be saved to file, in order to help generating maintenance Jobs; fQuery rtf_KeyDown() e rtf_MouseDown(): intercepted "paste" fScript operation in the RichText control in order to prevent pastign fResult from the clipboard types else than text; fJobStep fDBL_clk Added possibility to restore default settings; fBckMain BackupDB(): added square brackets "[" and "]" for files relative to Backup Devices which make the verify operation fails when the full file path had enclosed spaces.. (thanks to Fibia FBI for the feedback); ShowContent(): added square brackets "[" and "]" for files relative to Backup Devices which make the operation fails when the full file path had enclosed spaces.. (thanks to Fibia FBI for the feedback); fResMain ShowRestoreFiles(): added square brackets "[" and "]" for files relative to Backup Devices which make the operation fails when the full file path had enclosed spaces.. (thanks to Fibia FBI for the feedback); fPercent ExecBCK() and ExecRest(): added square brackets "[" and "]" for files relative to Backup Devices which make the operation fails when the full file path had enclosed spaces.. (thanks to Fibia FBI for the feedback); fServer ListServer(): modified so that, cancelling Computer browsing operation, the preceeding value is now restored, if assigned, else "(local)" value will be assigned; (thanks to Fibia FBI for the feedback); modified User and PWD property editing: User field now on only accept the following chars: \+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz Password field now on only accept the following chars: $+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz frmLogin modified User and PWD property editing: User field now on only accept the following chars: \+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz Password field now on only accept the following chars: $+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz -------------------------- 0.4.0 15/04/2003 fPrivil When uncommitted changes as present and user ask for exiting, fPrivCol a prompt will be now showed in order to ask user's input about leaving without saving; (thanks to Greg Hines for the feedback); TableSet The toolbar was left invisible; fDBL_clk A little degree of user customization of user interface has been added, regarding the default action originating when double-clicking the main grid of the main form of the program; this settings as customizable for each object type; Some setting has ben moved here from the "connection" window becouse not directly relevant to connection properties; cRow oType() property Let; for TEXT, NTEXT and IMAGE data types, bSizeble property hase been fixed to false; (thanks to Ryan Moore for the feedback); fServer FlexEdit() and Flex_DblClick(): the "disabled" internal setting was not honored in some circumstances, enetering in edit mode; (thanks to Fibia FBI for the feedback); fTbDes Form_Unload(): the dialog shown when uncommitted changes are still pending has been changed: now a Yes/No/Cancel dialog will be shown; (thanks to Fibia FBI and Greg Hines for the feedback); -------------------------- 0.3.1 29/03/2003 frmMain added Job's Html documentation generation feature; fScrAge added TSQL command generation feature for jobs, alerts and operators; frmMain Job_StartJob(): italian localization of SQL Server 2000 has a bug that prevent starting a job from a jobstep other than the predefined startup step; this "feature" misguided my coding of the procedure, letting me use the step ID instead of the step NAME; this has been fixed, but the problem in the italian localization of SQL Server 2000 is not, and this is confirmed by the SQLAGENT.OUT file that reports: .... 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) SQL Server Agent hangs and the job is not executed; fJobStar LoadSteps(): now the predefined startup step ID is loaded as parameter, in order to preselect it on the grid and to draw attention to it; -------------------------- 0.3.0 19/03/2003 Definitive 0.3.0 version hase been release based on build 0.2.120, including the help system file. This Help file will alway be included in the full "Setup" package, while can be downloaded from the web site for the "Source Code" and "Upgrade" packages. I'd like to thanks all partecipants to the Beta program, that made possible the developement of this version; a very special tahnks is deserved to Mr. Gert E.R. Drapers for his kindness and knowledge, as long as to Mr. William (Bill) Vaughn that honoured me with his revision of both the english translation of the user interface and the revision of the help file. At the present, the help file does not provide a "Contextual help". -------------------------- 0.2.120 BETA With my great honour and pleasure, Mr. William (Bill) Vaughn fixed and reviewed my english translation of the user interface; Mr. William (Bill) Vaughn is president of Beta V Corporation, Microsoft MVP, wrote lot of pubblications about Microsoft SQL Server, and his web site www.betav.com is a great resource site for SQL Server, MSDE and ADO info; (thanks to Mr. William (Bill) Vaughn for the feedback); -------------------------- 0.2.119 BETA ConstRes Update label on Main form for detached databases folder; (thanks to Mr. William (Bill) Vaughn for the feedback); -------------------------- 0.2.118 BETA Program (build 117 has been skipped... superstitious??) fLista Flex_DblClick(); if vntObj array was not dimensioned (e.g. SQLServer 2000 installed inscances list), the program crashed; (thanks to Elvito Del Prete for the feedback); -------------------------- 0.2.116 BETA Program fSchedu Form Declarations: k_MaxTimeLong constant was wrong; -------------------------- 0.2.115 BETA Program fJobMgr SaveJobData(): modified error handler to protect Schedules and Jobsteps collections; -------------------------- 0.2.114 BETA Program fSchedule LoadSchedule(): Schedules of type "Execute at Agent Startup" where erroneously read as "Execute on Idle" (thanks to Alessandro Frattini for the feedback); fJobMgr SaveJobData(): protected with error handler Schedules and Jobsteps collections loading operation; -------------------------- 0.2.113 BETA Program fResult tRes_MouseDown(): before loading the Clipboard with the fScript seleted text, now it will be cleared with the metod .Clear; fQuery (thanks to Vincenzo Morgante for the feedback); fJobStep -------------------------- 0.2.112 BETA Program fServer Added setting to auto-reconnect at application start-up to last registered server, only for WinNT authenticated connections, becouse for SQL authenticated connections the user password will not be saved; (thanks to Alan Harris-Red for the feedback); frmMain Form_Load(): now it will be tested wether auto-reconnect at application start-up to last registered server, only for WinNT authenticated connections, becouse for SQL authenticated connections the user password will not be saved; if it's the case, the connection will be tried automatically; (thanks to Alan Harris-Red for the feedback); -------------------------- 0.2.111 BETA Program fTbDes FlexDblClick(): set to 0 KeyAscii code; FlexEdit(): called SendKeys Chr$(KeyAscii) only if the KeyAscii code is not 0; *** SaveTbl(); as it has been proved impossible to use the COM object "User Defined Data Type" provided by Sql-DMO, with strong adivces from al leader Microsoft Software Architect to go another way, now table's management is no longer provided via Sql-DMO but according the DDL "Create table" statement to be run is generated on the fly; (as usual, many thanks to Gert E.R. Drapers for always been available when needed) -------------------------- 0.2.110 BETA Program fAdvance FlexDblClick(): tested if the current column can be edited before checking related field properties; (thanks to Vincenzo Morgante for the feedback); JobMod GetOperator_JobNotifStatus(): an old Debug string was left and teh function always returned "In progress.."; frmMain Flex_MouseDown(): removed calls to IsJobServerRunning() for actions on Alerts and Operators; ActMenuAgent(): removed calls to IsJobServerRunning() for actions on Alerts and Operators; fExpTB LoadDBStructure(): fixed regression test errorn while loading User Defined Data Type definee by users other than "dbo"; mainMod ErrGetUsersMapping(): corretto regression test bug while replacing the database name in the T-SQL command; fPrivil LoadElem(): fixed bug loading privileges for "User defined functions" that reset the object type to value "1" not recognized as valid value; -------------------------- 0.2.109 BETA Program frmMain ActMenuAgent(): era a non localized string has been fixed; SetCurUserName(): modified in order to return the server role the current logged user is part of; Load_DBFlex(): if the "collation" property was not set at the moment of the database creation, no value was added to the grid: now the default server value will be loaded; ActMenu(): [Search for objects..]: it chrashes if called from the grid instead of the treeview node becouse using a null string to reference the database; -------------------------- 0.2.108 BETA Program User NOt part of the "sysadmin" role where not granted rights to access SQL Server Agent services (JobServer); frmMain modified the request of privileges in order to grant access to SQL Server Agent services to users not part of the "sysadmin" role; it is no longer needed that the SQL Server Agent is currently running other than for Jobs start/stop; ActMenuAGENT(): modified in order to grant access to SQL Server Agent services to users not part of the "sysadmin" role; fJobMgr LoadJob(): notification edit is now allowed only to users part of the "sysadmin" role; a job created by user part of the "sysadmin" role with notification set, will loose these information if later edited and saved by user not part of the "sysadmin" role; Alert loading is now performed via direct Job enum peroperty; only users part of the "sysadmin" role are now allowed to edit/delete Alerts; fJobStep LoadStep(): the combobox of RunAsUser is now enabled only if the current user is part of the "sysadmin" role; fJobMod JobCanAction(): removed call to IsJobServerRunning() in order to grant access to SQL Server Agent services to users not part of the "sysadmin" role; IsJobServerRunning(): protected with error handler; -------------------------- 0.2.107 BETA Program frmMain Editing of existing jobs is now allowed only to job owner and/or to "sys_admin" members; -------------------------- 0.2.106 BETA Program General General changes in order to allow creation and management of database name including spaces; (thanks to Mark Nadig for the feedback); Changed command_buttons labelled "Cancel" with "Close" where the "Cancel" label coul'd confuse user; (thanks to Mark Nadig for the feedback); General changes in order to allo creation and management of objects which names include spaces; fTbDes Flex_Edit(): allowd space as valid char for field names; fExpTB tFlex_LostFocus(): fixed ordinal fields reposition; -------------------------- 0.2.104 BETA Program fJobStep LoadStep(): fixed user load; fBr4Fold ErrTestExistFinalDir(): modified test for file and directory existance; fJobMgr CMD_Action_Job_Step(): CMD_Action_Schedule(): fixed position setting in collection saving; -------------------------- 0.2.102 BETA Program fOpe_Ale LoadAlert(): crashed while loading operator's backup setting if no operator was present; (thanks to Lucia Walles for the feedback); fJobMgr LoadScheduleGrid(): was setting enable property of the Steps buttons... -------------------------- 0.2.101 11/02/2003 Additional Notes for the Beta relase. A major architechtural and desing problem has been noticed (thank's to Fibia FBI for the feedback); the original work by Peter Swaniker, this project depends on, did non consider different objects with same name but different owners; solving this problem caused a quiet complete revision of the code in lot of modules. At present, quiet all anomalies has been fixed, with the documented exception of fQB, the Query Builder form for Views design, that has been removed in order to be fixed becouse of unresolved troubles with Joins; I hope to fix it ASAP. In addition to this problematic, to DbaMgr2k only has been added features of Jobs management; as usual, a special thank is due to Mr. Gert E.R. Drapers for his kindness and knowledege. The very first beta of this rework is released as build 0.2.101, available only as source code and/or as binary update; users that do not own Visual Basic compiler do require a full download of the previous version if they do not have the binary dependences installed on they computer. Succeseive BETA builds will be released as soon as reported bugs are fixed, in order to get a final stable version that will be release on the regular cycle with 0.3.0 build. Please reports bugs as soon as you find them in order to release a final release as soon as possible. While I apologize for the inconvenience, I thank you in advance for your cooperation. fServer Added possibility to list all instances available for the selected computer; fFiltObj Stuff(); now only "(dbo)" and users with "ddl_admin" privileges are added to "owners" combobox; fQuery LoadBD(): now the default database for the current logged user is pre-selected in che database combobox, if available, else the master db will be preselected; (thanks to Luc Wuits for the feedback); OpenSql() and rtfQuery_OleDragDrop(): if the loaded text is in Unicode format, it will be now translated; uses ADVAPI32 function IsTextUnicode, which requires Microsoft Layer for Unicode on Windoes 95/98/Me operating systems; (thanks to Luc Wuits for the feedback); fResult LoadTrigger(): fixed the position of the Exit For instruction that caused an incorrected triggers scan; (thanks to Vincenzo Giordano for the feedback); tRes: modified font to Courier New 8 point; implemented tRes_OLEDragDrop event wich now load the 1st file dropped via OleDrag; ooppss... the procedure to save user defined function was missing; fIndex FlexEdit(): trapped the TAB key in order not to enter in frmLogin Edit mode; fBckMain fResMain fNewDB fBCP fGenOpt fUDT fQB fServer fAdvance fExpHTM fExpTB fDbOwner cmd_Click(): if no item of the owner's combobox is selected, (cbo.listindex=-1), the process is not run; DatabaseObjsProp(); now only "(dbo)" and users that have "ddl_admin" privileges are added to the candidate owners combobox; frmMain ActMenu(): when a connection to SQL Server is refused by the Server itself becouse of not supported version, now the treeview is reinitialized; tview_NodeClick(): added reload of Locks/Id in the Current Activity; LoadLocks(): nodes are now loaded in inverse order from the collection; LoadTables(): added indication of the table's FileGroup; Load_XXX(): changed the mouse pointer to hourglass while loading; Load_ErrLogNo(): added a user setting for the max num of rows that will be loaded while reading the SQL Server logs: when this number is reached, a custom dialog will be showed in order to ask user input to abort current activity, return only the max num of rows as settings, or save the entire result to an external text file; this ahs benn changed do to the amount of time/memory/cpu involved for very big Log files; default max value is 2000 rows; (thanks to Fibia FBI for the feedback); -------------------------- 0.2.0 12/12/2002 Res file Fixed some english translations and modified some italian too... (thanks to Andrew Stead for the feedback); fFiltObj Form to set Filter criterion to Search for objects; fScript Execute(): procedure comletely rewritten in order to script primary objects separately from foreign keys, indexes, checks, etc, using .Script methodo of each object instead of the Transfer object; the old procedure is still present in the source code bu commented out; added buttons to handle filtered searches (fFiltObj); rtf_MouDown(): should the text be locked, then pop-up menu "Cut" is now disabled; fResult tRes_MouDown(): should the text be locked, then pop-up menu "Cut" is now disabled; fPwd chars + and - are now handled; frmLogin bObjDMO ErrExecSqlDirect(); modified EXEC_TYPE from SQLDMOExec_ContinueOnError to SQLDMOExec_Default; (thanks to Allanon for the feedback); frmMain ActMenu() - Database Node (all) grid fetching: fixed db name fetch from the grid, whitch was previously set to an empty string and locked out some operations; (thanks to Fibia FBI for the feedback); ActMenu() - Chang Database Owner: now every db listed (multiselection) to be managed by Changing Owner feature is cycled through in order to test db availibility before proceding; added to database node the feature to search for objects with user's filter criterions; Flex_MouseDown(); Database node: if the grid is empty, due to "Only granted DB" setting, application chrashed testing for .SystemObjects property; (thanks to Humberto Rodrigues for the feedback); LoadDetachedNode(); modified to manage evenience of more Databases with same physical file name but different Db name and different physical location, ie: DB Name = DB1 Physical Flie Name = c:\Dir1\Db1.Mdf DB Name = DB2 Physical Flie Name = c:\Dir2\Db1.Mdf; modified grid tooltip text; (thanks to Humberto Rodrigues for the feedback); StatusBar; changed time panel with current logged user name; fServer if a "Trusted" connection is set, now LoginName an Password are set to blank and disabled; fGenOpt Triggers visualization: now the Enabled state of triggers will be showed and can be modified; fExpHTM ErrWriteTrig(): now the Enabled state of triggers is reported; -------------------------- 0.1.0 19/11/2002 Initial Release alligned with DabMgr 0.47.0 version END