-------------------------------------------------------------------------------- DbaMgr - An alternative, little Console for MSDE 1.0 -------------------------------------------------------------------------------- If you want to be notified of new releases of DbaMgr, 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 copyright 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 DbaMgr 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 DbaMgr, 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) if fullfilled. I will be very happy to know about these distributions, along with your name, company name, application(s) witch DbaMgr 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.65.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.65.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.64.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.63.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.62.0 22/02/2006 fExpHtm GetScript(); modified output replacing < and > withn < and > ; 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.61.0 24/11/2005 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) 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.60. 07/08/2005 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.59.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; 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.58.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.57.0 21/03/2005 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 (DbaMgr.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"; fBckMain Fixed Retantion Date information retrival and use; -------------------------- 0.56.0 20/01/2005 mainMod GetServicePackLevel(); modified in order to use an external file (SQLBuild.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) 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); 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); 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.55.1 25/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.55.0 25/08/2004 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.54.0 05/06/2004 frmMain DBInfo2Html(); modified; fBckMain Added support to schedule backup directly in the backup window; 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 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) 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.53.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; 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.52.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 frmMain Tview_MouseDown(): access to Server's properties has been set when right-clicking the instance node and no more the Treeview Root node; 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.51.1 09/12/2003 fJoin ViewOptions(): removed references to controls not present in this version; (thanks to Jeroen Elias for the feedback); -------------------------- 0.51.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 ht 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 fGenOpt LoadSpParameter(); i parametri non venivano mostrati; 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); 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; 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); fLista Stuff_Exec() e LoadFlex(): non erano state riportate le istruzioni necessarie alla visualizzazione di cancellazione di oggetti di tipo Processi, Avvisi e Operatori; frmMain LoadJobs(): 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.50.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(): depending on user's choice in the "Configuration" settings, unloading the form when uncommitted changes are pending will cause the "Cancel" button to behave: - save uncommitted changes and quit (default) - abort quitting without saving (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.49.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.49.0 19/03/2003 Definitive 0.3.0 version hase been release based on build 0.48.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.48.120 BETA Program 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.48.119 BETA Program No changes: just to be in sync with DbaMgr2k; -------------------------- 0.48.118 BETA Program No changes: just to be in sync with DbaMgr2k; -------------------------- 0.48.116 BETA Program fSchedu Form Declarations: k_MaxTimeLong constant was wrong; -------------------------- 0.48.115 BETA Program fJobMgr SaveJobData(): modified error handler to protect Schedules and Jobsteps collections; -------------------------- 0.48.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.48.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.48.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.48.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.48.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; -------------------------- 0.48.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; -------------------------- 0.48.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.48.107 BETA Program frmMain Editing of existing jobs is now allowed only to job owner and/or to "sys_admin" members; -------------------------- 0.48.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.48.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.48.102 BETA Program Added job managament as DbaMgr2k version 0.2.102 -------------------------- 0.48.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. The very first beta of this rework is released as build 0.48.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.49.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. fResult tRes: modified font to Courier New 8 point; implemented tRes_OLEDragDrop event wich now load the 1st file dropped via OleDrag; 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); 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.48.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 added + and - chars; frmLogin frmMain Flex_MouseDown(); Database Node: if the grid is empty becouse of "Only Authorized DB" setting, application crashed while testing an invalid DatabaseName string against .SystemObject 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; added possibility to view and list all triggers for table; fServer if a "Trusted" connection is set, now LoginName an Password are set to blank and disabled; fGenOpt visualization of table's triggers; FlexEdit(); fixed unmanaged bug for Views and Stored Procedures; (thanks to Vincenzo Giordano for the feedback); fExpHTM ErrWriteTrig(); now the Enabled state of triggers is reported; ------------------------- 0.47.0 19/11/2002 Versioning policy has been changed, shifting the releases version in the "Minor" place and leaving the "Build" place for a more correct betatester management. From this version on, it will not be possible anymore to connect to Sql Server 2000, but DbaMgr2k is required. DbaMgr and DbaMgr2k, as binary version, can be placed in the same folder, so it will be possible to to install the full version of one of them and unzip the update version of the other one in the same folder, becouse VB dependencies are already installed. Please remember DbaMgr2k requires MDAC 2.6 and Client Components Sql-DMO from the SQL Server 2000 version. cBcpRow Let oType(..): modified type validation to handle User Defined Data Types; fBCP GetBCPType(): modified to handle User Defined Data Types; Flex_KeyDown(): added event handler to intercept F2 key; ErrConnectBcpServer(): modified in variable the hardcoded timeout; LoadColDefinition(): fixed management of User Defined Data Types; cRow added properties IsBinary() e IsString(); fIndex removed property FillFactor for Foreign Keys; removed hard-coded setting for form dimension, changed to form-level variables set in Form_Load; FlexEdit(): editing boolean values for Indexes, caused a call to SetEnabled() which caused a row changing, now correctly reset after that call; added possibility to edit SQL syntax for objects creation; fLista Stuff_Exec(): fixed form's caption for user dropping action which reported "Roles" instead; fExpHTM modified NomeUser: now LoginNames are loaded first (loaded with their .GetUserName if it is <> from loginname), than User's names are loaded if not already loaded; user with UserName = "dbo" always is loaded with his associated LoginName; added function ErrExistsThisLogin() to handle situations where the termporary "am-yyyymmdd" login already exists, due to preceding errors in changing/dropping operations; for NON db object ownership change, login "sa" always is added to the candidate new owners, even if it is impossible to add this system user to users collection; the ownership will be redirected to "dbo" anyway; (thanks to Fibia FBI for the feedback); ------------------------- 0.0.46 22/09/2002 fAdvance Cbo_LostFocus(): added a test If not m_bAnnullaMod which was missing; MainMod GetPackage(): removed hardcoded Version "7", now resulted from VersionMajor + VersionMinor; fResMain Db Name lenght incremented to 128 char; fAttach Db Name lenght incremented to 128 char; incremented text height; modified label message; fNewDB Db Name lenght incremented to 128 char; Logical Db Name lenght incremented to 128 char; Physical Db Name lenght incremented to 260 char as from sysfiles column; fGenOpt permitted Font parametrization for Query Text, Grid and Results, Batch terminator (GO); fQry see above; added missing tooltips to toolbar; added possibility to enable/disable word wrap; added pop-up menu with cut/copy/paste operations; (thanks to Fibia FBI for the feedback); fResult added possibility to enable/disable word wrap; added pop-up menu with cut/copy/paste operations; (thanks to Fibia FBI for the feedback); fServer Search4Help(): modifying help file position did not resulted in grid; (thanks to Fibia FBI for the feedback); to obj.Filter() added "Col" and "*.*" formats; (thanks to Fibia FBI for the feedback); fDbOwner ChangeDbOwner(): modified in order to switch to a temporary owner (am-yyyymmdd); handled double errors evenience; frmLogin SaveData(): modifying an existing Login, sStream variable still was initialized with Language setting when saving DefaultDB; (thanks to Fibia FBI for the feedback); TbDes tFlex_LostFocus(); with DECIMAL data type, setting Dimension value > 28, the MsgBox call resulted in an Application Crash, in the compiled version while not in the IDE... i think the event handler mismatched this... MsgBox call is now placed after TextBaox hiding; (thanks to Fibia FBI for the feedback); LoadTbl(): modified bEditable property to test for read-only DBs; fIndex with read-only DBs, indexes, relations and constraints are now read-only too; fPrivil LoadFlex(); modified Out of Memory message; UpdateDB(); update is now protected with errorhandler; Update(); update is now protected with errorhandler; frmMain added Menu items to call Client Network Utility and local server's Server Network Utility; * LoadDatabaseNodes(): Off-line database are now added to the treeview; * ActMenu(): protected objServer.DetachDB(.) with errorhandler; * ActMenu() and Flex_MousDown(): before showing pop-up menu, it is now tested db is not Off-line; this evenience is tested anyway before calling management procedure calls; * LoadDetacheNode(): routine spread; modified in order to test against all PhysicalNames of all DbFiles and all FileGroups; * Form_Load(): if "SHOWALL" setting was never set, (len(GetIni(..))=0), default is now to True; * Load....(): verified that all flex adding routines include constraint of 1 row to be fixed or disabled when no rows are present; (thanks to Fibia FBI for the feedback); ------------------------- 0.0.45 31/08/2002 fExpTB Generation of INSERT INTO script tor table object: from the original stored procedure by Narayana Vyas Kondreddi as at page http://members.tripod.com/~vyaskn/code.htm#inserts; (many thanks to Gianluca Hotz for the numerous feedbacks, betatesting and unconditionated help); frmMain Load_DbFlex: compatibility DB level shown if not Sql70; fExpHTM ErrWriteDbStuff: compatibility DB level shown if not Sql70; frmLogin FlexLoadData, Fix: postponed check with "sa" and "public" after assignement of Row and Col of FlexGrid in DbRoles loading, in order to correctly assign CellBackColor property; fQuery LoadGrid(): loading RichTextBox, if the rsulting Column's lenght was not bigger of "ResultSet n" [< len("ResultSet " & n)], the row "ResultSet n" got broken in multiple rows; fGenOPt Now it is possible to manage "guest" user; this can be done adding a user with name "guest" with no associated Login; "guest" user, even if represent a particular kind of system user, will always be listed as an Orphaned User; (thanks to Fibia FBI for the feedback); fBckD permitted content showing of remote backup devices; (thanks to Fibia FBI for the feedback); fBckCont LoadData(); for Backup devices was tested if i_lErrReadingDevice then instead of if i_lErrReadingDevice <>0 then so that the BackUpHeader content was not showed; fPrivil LoadFlex(); on Win98 boxes, large DB with lot of objects caused an out-of-memory exception loading the grid with lot of images; now this is trapped an appropriated log is showed, breaking loading cycle and showing a message of alternative management via Query Interface with GRANT, DENY and REVOKE T-Sql statements; ------------------------- 0.0.44 29/07/2002 fBckCont protected LoadData() procedur [BackUp Devices] with error fBckD handler; if the selected file does not contain restore or shoul'd errors be raised, error condition will be set in order to inform fBckD of these events and show them and does not load fBckCont form; fResMain ShowContent() procedure: errTestBackUpSet() will now be fBckMain tested to verify no error occurs in order to load fBckCont; fNewDB fixed regression test problem regardin tFlex_Lostfocus which did not validate the physical name of data file when modified by keyboard; (thanks to Fibia FBI for the feedback); fBckD Select_PhysicalLocation: now filter for *.Bak|*.Bck|*.* files is set on Browse4Folder; ------------------------- 0.0.43 24/07/2002 frmMain * ActMenu(): protected Shrink operation with erro handler; (thanks to Fibia FBI for the feedback); fBckMAIN regression test troubles fixed in procs. fPercent BackUpDB() --> ExecBCK() becouse now the backup file is passed between square brackets "[\..\file.bak]" and it is no longer possible to test for existence, but this is the recommended method by MS; ------------------------- 0.0.42 22/07/2002 frmMain * dropped pop-up menu item "Edit Connection.." as a standard Connection Menu Item was added; * Flex_MouseDown(), fixed behaviour of "Edit Connection.." pop-up menu item; * the property of "Server Acces" is now showed for login; frmLogin added possibility to manage Window NT authenticated Login; * now "\-" chars are allowed in login name (ie: Server\nome); (thanks to Peter Schmid for the feedback); fBckMain now the Remote FileSystem dialog of fBr4Fold is showed for fResMain BackUp\Restore operation on remote servers; fChooseBK all operations on files have been revisited according (this was left behind from version 0.0.33); (thanks to Paolo Fisco for the feedback); fExpHTM in order to speed up execution, localized string are now pre-cached in array; fQuery protected instructions rtfQry.LoadFile .. with error handler; ------------------------- 0.0.41 16/07/2002 fExpHTM added "Stop" button to break very long operations and modified RunExport() accordingly; proc RunExport(), added an Object.Refresh TRUE after each block of search in order to free memory; added visualization of number of objects to scan; added duration of execution time; fixed LocationIsCalled() proc: verified presence of "\" in order to not add it if present; fBr4Fold fixed LoadTview proc that crashed while referencing non available node in order to modify Tag property when the node wasn't added to the Treeview (thanks to Fibia FBI for the feedback); fServer added possibility to chose wheter to execute checkpoint before doing databases detach: it is now possible to switch, in the combo 1 of following settings: statistics supporting query optimization are always updated; (thanks to Fibia FBI for the feedback); frmMain * Database Detach: added prompt if this is set to "Prompt for each DB" in order to skip db checpoint; statistics supporting query optimization are always updated; (thanks to Fibia FBI for the feedback); * extende possility to modify objects ownership for Tables, Views and Stored Proc, by selecting them in the FlexGrid; * regression test failure of ListLogin() procedur fixed: Node text property was not localized; (thanks to Peter Storz for the feedback); * added "Connect" Menu item to Mnu as 1st element, shifting down all others; fAttach added a refresh call for current Frame and Flex in tStrip_Click proc in order to fix a missed repaint of the grid in some circumnstances; (thanks to Fibia FBI for the feedback); fTableDes LoadTbl(), in order to let the grid be editable, (bEditable=true), added check of ownership to DBO to, that now becomes beditable= (getmembership(db_DDLadmin,..) AND getmembership(db_DataReader,..) OR getmembership(db_DBO,..); frmLogin SaveData(), at the end of ErrUpdate label, lErr and sErrset variables are now set with Err object, 'cause they were set to 0 and ""; (thanks to Fibia FBI for the feedback); fGenOpt UpdateUser(), at the end of ErrStat label, lErr and sErrset variables are now set with Err object, 'cause they were set to 0 and ""; (thanks to Fibia FBI for the feedback); fQuery fixed IsGO_USE_Statement procedure in the "USE" test, because sometimes "use" ward was mismatched with USE keyword; used Checked property of the Toolbar for Grid/Text result; magic values of form.width e form.height are now variables module level's variables m_lWidth and m_lHeight, set in the form_load proc; modified LoadGrid procedure to prevent memory leaks, specially on Win9x boxes, doing a cycle of oQry.GetRangeString for more chunks instead of a single one, each chunk is now a const of 1000 items/rows (thanks to Arun Kumar for the feedback); ------------------------- 0.0.40 22/06/2002 Fibia FBI has been a proven beta tester and a valid adviser. frmMain Users: added visualization of objects owned by each user; fLista added visualization of objects owned by each user and possibility to set objects to be changed of ownership via fDbOwner.frm; shoul'd troubles in object objServer raise, it will be set to nothing anc called a sort of callback in frmMain.CollBackReattach in order to null the objServer handler and inform the main form to disconnect; fDbOwner added possibility to change dbojects ownership; (thanks to Fibia FBI for suggesting it and feedback); ------------------------- 0.0.39 18/06/2002 frmMain localized strings for treeview control; updated localization; fLogin updated localization; fChoseBK fGenOpt fDepend fBCP fLista frmLogin TableSet Ado connection is now allowed with NT authentication too; fAdvance added ADO version property read in client section; fIndex index creation is now permitted in FileGroups other then Primary; frmMain regression test troubles fixed in proc. ActMenu(): - ShrinkDefault and ShrinkTruncateOnly operations where linked to older caller codes; - DBCC operations, correctly mapped in the select case test, where still linked to older caller codes in the actual call to oDB.CheckTables(..) (thanks to Fibia FBI for reporting it it); * added visaulization of Sql-DMO dependencies loaded from external file Depend.txt (thanks to Fibia FBI for suggesting it); * modified EULA visaulization, using now an external file DbaMgr-EULA.txt, or a hard-coded english one shoul'd the Eula file misses; ------------------------- 0.0.38 04/06/2002 frmMain after establishment of the connection, the VersionMajor property is tested against the supported oen, showing a warning message if not equal; * added visualization of limited warranty/support ( =;-{ ), you can never know..... fAdvance added Client Comonents information retrival, thank's to Karl E. Peterson, http://www.mvps.org/vb for providing cFileVersion class; ------------------------- 0.0.37 16/05/2002 TableSet tested connection status = adStateOpen before closing it; frmMain Oopsss... regression test trouble fixed regarding Pop-up menu calls for ActMenu regarding Database activity (thank's to Fibia FBI for the feedback); ------------------------- 0.0.36 13/05/2002 frmMain * modified information retrival on active processes using sp_MSget_current_activity instead of objServer.EnumProcesses, which shows more information; (thanks again to Gert E.R. Drapers (www.sqldev.net) for his kindness and knowledge; * added kill processes feature (this is for Fibia FBI); ------------------------- 0.0.35 08/05/2002 fServer added possibility to choose Help File, which by default is "c:\Mssql7\Books\sqlbol.chm; fQB Oopsss... regression test trouble fixed regarding join types name resolution; mainMod GetPackage() function: added Service Pack 4 recognition; fPrivil Db athorization ( Create Tb, Create View, etc) added (thanks to Fibia FBI for suggesting it); fScript: GetFileOutPut(): removed reference to frmMain.lblServer(0).Caption and changed with app.path; I was (correctly) told that DbaMgr does not works with DB objetcs created by users/logins other than "dbo" [thanks to Fibia FBI who exposed the problem]; this kind of management was not considered at all, as I'm used to create all db's objects as dbo (and I personally deprecate this behaviour); this version fixes this kind of problems; bObjDmo added modul to resolve and get objects by name; fTBDes: added checkbox ChkDBO in order to allow creation as "dbo" or following user's/Login name; * FlexEdit(): nullable Property is now always editable as long as the column is an added column; * SaveTbl(): resolved Owner information in order to create- regenerate the table; *** UserDefinedDataType: if the UDT was created by users other than "dbo", modification of tables including this UDT will fail if the operation is done by users other than the UDT creator, while operation via a standard DDL script works as expected (DMO problem??) * LoadTbl(): resolved Owner information in order to get the object; * bEditable= true if GetMembership(db_DDLAdmin, sDbName)=True And GetMembership(db_DataReader, sDbName)=True, becouse I need access as DataReader too in order to regenerate a populated table; fIndex resolved Owner information in order to get the object; fResult frmMain clsDepen fQB fBCP fPrivil fExpHTM fGenOpt fRelView fRelView recoursion status failed; added procedure RecursiveScan() that scans from the root down to search for the table; ------------------------- 0.0.34 25/04/2002 fPercent Oopsss... regression test troubles: oBackUp.files property in ExecBck() was not setted when executing a file backup against existing file; removed lErr variable in ExecBck() that shadowed form global variable with same name; ------------------------- 0.0.33 20/04/2002 Version 0.0.33 chages all things regarding File System management (as regards information recovery), becouse I was told DbaMgr correctly works only with local hosts and not with remote SQL Server installation (DbaMgr is born for this puropose), while on remote servers File System inofrmation are transalted resolving UNC path, that's to say \\RemoteServer\Share\Data\db.* instead of C:\MsSql7\Data\db.* , this for db creation, Devices management with BackUp/Restore operation involvement, and Detached TreeView node information and management... To solve this kind of problems, a new Dialog (fBr4Fold.frm) has been wrote to always show SQL Server Host File System (local or remote), which uses .EnumAvailableMedia, .EnumDirectories properties and a couple of extended Stored Procedure (xp_dirtree, ..) to get these pieces of information. A special thank to Mr. Gert E.R. Drapers (www.sqldev.net), who has been a special resource as always. fBr4Fold.frm Custom Dialog like the one provided by Enterprise Manager b4F_DMO.bas Manager in order to provide Directory/Files selection on SQL Server Host File System computer; frmMain Management involved; Db attachement from remote clients fBckMain has been re-activated (removed in ver. 0.0.32); fResMain fChoseBK fPercent fBckD fAttach ------------------------- 0.0.32 xx/xx/2002 [never published] all froms added tFlex_MousDown event for floating text box to avoid including a and trap standard PopUp Menu; editable flex grid fBckD backup device ???? fNewDB in Form_Initialize(), working directory for New Db creation is always set to SQLServer.Registry.SqlDataRoot & "\"... creation directory on remote SQL Server Hosts can't be an UNC path but shoul'd be a relative path of the Host, ie: remote client does sees (or does not see) the folder or Share \\Host_Server\C\MsSql7\Data, while the correct creation path shoul'd be C:\MsSql7\Data [thanks to Roberto Gismondi who exposed the problem]; fDbOwner added message for"New Owner" = "Old Owner", that showed an empty message box; frmMain * ActMenu(); generating a new login from the treeview instead of the grid caused error for uninitialized variant [thanks to Francesco Bancala']; * modified command lblServer(0) ToolTipText, which now only shows "Full Data Path for Detached DB check"; * as it is not correct (even if possible) to attach DBs from remote clients using UNC path references, now it is no longer active this option, nor detached db files are showed in the grid... a warning will be showed with instruction on how to perform attach operation via a query tool( oSql, etc..) or from a local client installation of DbaMgr [thanks to Roberto Gismondi who exposed the problem]; ------------------------- 0.0.31 02/04/2002 Tripod Server now has been replaced by Lycos, due to Lycos incorporating utenti.tripod; fDbOwner Added possibility to modify DB Owner, with Mapping = Null, meanings that all existing aliases to the old dbo are mapped to the new owner of the current database (see BOL sp_changedbowner); fServer Cancel Button now defaults to Cancel=True and Connect Button now defaults to Default=True; added support for vertical scrolling with cursor keys while editing flex grid; frmMain Flex_MouseDown: regarding 'Database Users' activity, now accesso to Orphan Logins is permitted even with registered users = 0 (ie.: DB attach from other servers) [this operation should be done with a sp_changedbowner 'new owner']; inserted a DoEvents soon after Form fAttach closing in order to permit from paint; In all procedures Loadxxxx (Tables, Roles, SP, Views, etc.), a dbObject.Refresh was added to refresh object list; Load_DBFlex() localized other strings; Load_DBFlex() added dboUseOnly, ReadOnly and SingleUser information; fQuery fixed obj.Def_Dir() to App.Path in sub OpenSql(); ------------------------- 0.0.30 15/02/2002 frmMain ActMenu(): added DoEvents after fNewDB unload before DB collection refresh in order to let Main Form refresh; added DoEvents after unloading Date request Form for deleting BackUp history; Cmd_Click(): SHBrowseForFolder operation now registers App.Path as predefined path if operation is cancelled; it is no longer needed that the returned path contains .Mdf database's files to validate it; fNewDB fixed Setting saving: added verify in AddDBfile2Group() and AddLog2TransLog(): if .bAutoG=False then Object.FileGrowth=0; in chk_click() when referred to AutoGrowth with growth in MB, when Growth =0, Growth will be set to 1MB; fResMain fixed grid data got from oRestore.ReadFileList, if max size < 0 , growth can be unlimited or 0 (unknown); added calla to ShowRestoreFiles() in ShowContent() after visualization of BackupSet selection's form to repopulate grids; resetted to 1 the applied BackUpSet when changing databases combobox; fQuery added results saving facilies; ------------------------- 0.0.29 16/01/2002 General fixed bug in all FlexEdit() routines that entered normal edit mode for boolean values if ascii code were passed; fPercent ExecBck() e ExecRest(): added Doevents to permit form paint; frmMain ActMenu(): confirmation request to load BackUp and Restore forms was commented; ------------------------- 0.0.28 19/12/2001 fServer setted StartUp position of the Form centered with regard to frmMain parent form; fBCP added "Data Type" to column descriptions of Flex grid; frmMain thanks to Yusuf Incekara (yincekara@rocketmail.com) who re-designed TreeView Icons; fChoseBCK modified backup/restore return file name in order to solve Network Mapped Drives problem (see below); cNetMap thanks to Yusuf Incekara (yincekara@rocketmail.com) who identied and solved a problem with Network Mapped Drives in backup/restore operation, returning now the UNC file name instead of Network Mapped file name; ------------------------- 0.0.27 18/11/2001 frmMain fixed procedure SizeControls which moves orizzontal splitter only if Window state is not minimized when it is placed right of form max width; added space in message visualization for "DB Pack" (case Iact 21/22) which is removed from MyLoadResString function; fNewDB LoadProperty procedure, after fGenOpt from show, now the forced set of error to kErrDB_OffLine was removed after the test of OffLine db... don't remember anymore why i set this limit; changed some hardcoded descriptions to parametrized with MyLoadResString; fExpHTM modified write of html sql scripts using
 tags
                and other tags;
                added visualization of work in progress in status bar;
                added option to export system objects too;

fBCP            fixed load of Database Node that crasched with registered
frmMain         but externally deleted dbs;

fQuery          changed Execute procedure, with removal of temp files
                collection and now always using 1 file in read mode with
                the actual Sql statement and 1 file for temp write;
                procedures IsGoStatement() and UsedDBName() are now
                implemented in Is_GO_USE_Statement() function, which fixes
                a bug of comment search too (now tests for /* */ first and
                -- later), so that the doubble string parse is avoided;
                ExecuteWithResultsAndMessages return messages are now catched
                and showed;
                window paint is avoided when changing rtfQry movements of
                SelLenght and SelStart in ErrWriteTmpQuery calling
                LockWindowUpdate() api to avoid flickering;
-------------------------
0.0.26  13/10/2001
fExpHTM         cross-reference database Html documentation generation added;
                from an idea derived from the visit of a demo documentation
                program at:
                http://www.ag-software.com/AGS/default.asp
                http://www.ag-software.com/AGS/ags_scribe_index.asp

fRelView        added graphical view of relations between tables (cascade
                too for futher relations of other tables) with check of
                circolar references; from an idea of SQL Insider v2.0,
                OpenSource project by Robert Vallee: get it at
                http://www.sqlservercentral.com/products/sqlinsider/

clsDepend       modified to be usefull for fExpHTM too without the need to
                show fDepend;

frmMain         fixed bug: it was possible to access scripting facilitie from
                db pop-up menu without being a recognized db user;

fNewDB          increased to 120 chars edit facilitie of locigal and physical
                Db and Log name (max value should be 128[123]);

fResMain        logical name is now editable as long as Physical location;
                increased to 120 chars edit facilitie of locigal and physical
                Db name (max value should be 128[123]);

fUserP          now the JOIN difference from Sql7 and Sql2K is handled;
                Sql2K joins on sid column and not on suid;
                further information:
                By: Rahul Sharma
                Orphan Sessions - Part 1
                http://www.sqlservercentral.com/columnists/rsharma/orphansession1.asp
                An orphaned session is a session that remains open on the
                server side after the client has disconnected. This article
                by Rahul Sharma, shows you how to track these sessions down
                and correct the problem;

fTbDes          fixed bug on Boolean flex-column, where text edit mode was
                entered instead of boolean switch;

fServer         fixed bug of a global setting enabled=false for the                
                AutoStart SQL lServer property, which did not recognize
                (local) as the server name on wich Sql actually runs;
-------------------------
0.0.25  15/09/2001
Entire Project  changed Icon;
                directoryes \Bas, \Cls, \Frm e \Ctl where added to store
                each code module in the right onw;
        ***     application language management was changed the way
                Inno Setup(r) handles them, better, the way Lst2Iss by
                Fred Just (www.fredjust.com), that's to say that translation
                are not stored in the .res file (and compiled) within the exe,
                with the exceptions of the 2 default languages (italian and
                english), but in external language resouce file, wich have to
                be located in application path and have .Lng extention; this
                was done in order to permit localization without the need to
                recompile the application; at the startup, DbaMGR tests for
                defaults language files (Italiano.Lng and English.Lng) and
                freate them if needed; in order to support other languages
                you only have to copy one of them, name it with appropriate
                way (Deutsch.Lng for german...), open it with notepad and
                translate it; after that, the language will be visible in the
                available languages combo box; you have to add it to your
                setup if you want your distribution to include it;

fUserP   ****   WARNING; this facilitie searches for users which are not in
                sync with syslogins table, that's to say where the JOIN
                between sysusers.suid and syslogins.suid produces an empty
                (NULL) value; this can occur because of a restore operation
                on a different server from the backup server, attached db
                from a different server, or as result of server's master
                database rebuild; on user request, sp_dropuser 'username'
                will be issued;

frmAbout        changed with AbSplash form, in order to allow initial splash;


fIndex          modified in order to permit objects creation on FileGroups
                other than PRIMARY;

fTbDes          IsRowGuidCol setting was not handled nor honored;
                becouse of 1 column of the grid is readonly, cell colour was
                changed  (InPrimaryKey)=vbInactiveBorder
          ***   found a bug in DMO object wich does not honour .allownulls
                setting ofr UniqueIdenitifier type columns with
                IsRowGuidCol=true and AllowNulls=False properties values;
                becouse of this behaviour it was necessary to change the
                table creation procedure and not to utilize DB.Tables.ADD
                method but to script the table (str=oTB.GenerateSQL) and
                execute the DDL script against the db;
                added test of presence of another Identity field before
                setting it;
                added Edit mode entering via F2 key wich was left behind;
-------------------------
0.0.24  02/09/2001
fTbDes          fixed bug of doubbled "'" for text(char) fields defaults;
                table modify: if the table has an Identity field, now a
                SET IDENTITY_INSERT table_name ON is issued before data
                copy script, followed by SET IDENTITY_INSERT table_name OFF;
                if a TimeStamp field is present, this will not be added
                to the SELECT list copy script;

TableSet        for not bookmarkable recordset, now an ADO client side
                connection will be opened, that becomes bookmarkable via
                ADO client services, so the use of DataGrid is allowed;
                Identity values will still be immediately visible soon after
                the update, while Defaults, Guids, etc. will be visible after
                an explicit requery (refresh on the toolbar);

frmMain         added NetLibrary information;

fAdvance        added some Server Settings management

fParam          added Start Up Parameters management;

fNewDB          fixed in FelxEdit subprocedure with 
fBCP            "on local error resume next" troubles caused from chars
fGenOpt         like "(";
fUDT
fQB
fServer
fTbDes
fResMain

fQuery          added vertical splitter for size vertical sizing;
                fixed tbar buttons pressed/depressed state;

fAttach         fixed long name and names with spaces adding brackets
                before and after DBfile ("[" + dbfile + "]") for multiStrings
                (ShortFileName could also be used);

fServer         added new flag to FlexGrid editing management Udt, linked
                to element ellipsis (...) to grant edit and dblclikc of
                server property (edit an browse for computer)

frmMain         fixed tView_NodeClick, always setted RichTextBox.visible=false
-------------------------

0.0.23  29/07/2001
installation    added .iss file for InnoSetup 2.0.11(b);

fAttach         A FlexGrid Refresh was added after the unload of the File
                choice window;

fQuery          Removed one ToolBar which was unused;

fNewDB          For new DB cration, 1st data file on Primary FileGroup
                (default) showed OFF icon instead of Primary Icon;
                more you could even edit the icon property... fixed;

fResMain        Now Files FlexGrid accept F2 key to enter edit mode;
-------------------------
0.0.22  30/05/2001
fUDT            fixed bug in combobox_lostFocus, from old Flex manipulation,
                which caused a reentrance and modified a wrong row;                

fNewDB          added support for multi FileGroups, DBFiles and LogFiles;
                for a brand new db, only single DBFile on FileGroup PRIMARY
                will be allowed, as long a single logFile, while other files
                can be added after the initial creation;
                FileGroup field does not show a combobox of previous added;

fTbDes          modified in order to permit tables creation on FileGroups
fPwd            other than PRIMARY;

frmMain         pop-up menu for Tables now shows "Property" as last element
                and "Table Design" soon after get rows calls;
                fixed array reference on checkpoint operation;
                corretto riferimento in array sui checkpoint;
           **   modified detach operation behaviour; now all Files belonging
                to the db will be shown as long as the T-SQL syntax to be
                executed in order to re-attach the db via a command line
                interface; this command can be saved to file;
           **   modified attach operation behaviour, which now shows a dialog
                where you can choose all DataFiles and LogFiles belonging
                to the DB;
                fixe bug which showed the pop-up menu for detached db even
                if no one was present;
                
fGenOpt         DB propertyes, implemented via fGenOpt.frm, are no more
                showed from the pop-up menu on DB view, but from a call
                of DB administration form, implemented in fNewDB;
             *  a new view of Table property was added which shows, Column
                propertys too;

Gen.            enlarged to 50 the size of db's object's names;

fScript         local obj Transfer has been changed with a module visible
                WithEvents object, in order to show ScriptTransfer status;



fQuery          modified ErrSplitCommand() which now calls IsGoStamenent()
                to verify presence of GO instruction;
                modified GetUsedDB, wich left the tmp file open on error
                condition, which precludes it from being deleted and i hope
                improved the routine which returns the name of the used DB;

frmMain         fixed array reference on checkpoint operation;
-------------------------
0.0.21  05/04/2001
vbp             removed reference to unused component;

fNewDB		the path for created DB is now the Full Data Path showed in
		frmMain (if valid), else the value of
		SqlServer.Registry.SQLDataRoot & "\" will be proposed;

fServer         to keep all pictures centralized, all Imagine controls
fBCP            wich exposed elemts like On/Off to be showed in Flex grid
fGenOpt         controls, were dropped from the forms and localized in the
fIndex          .Res file;
fNewDB          i was asked to change the behaviour of the editable Flex grid
fPrivil         to be more Windows like; now it is no longer a must to hit
fQB             Enter key to persist modified values; loosing the focus will
fJoin           automatically persist new values of Edit/Combo controls,
fResMain        while the Esc key will discards any changes; THIS IS A
fBckCont        RELEVANT CHANGE IN THE EDITABLE FLEXGRID BEHAVIOUR;
fRetSet         
frmLogin        
frmMain         
fRoles
fScript
fDUT
fTbDes
fDepend

frmMain         Index Management direct access, as long as Views's result
                set direct access was added;
                fixed out of boud array element call in new Stored Procedure
                call;

fTbDes          command buttons were sostituited with a toolbar;

fUDT            the Default overwrited the Rule value;
                Default and Rules did not showed the respective Owner;

fTbDes          default values entered with " (ie "...") did not removed
                the " in the saved value;

ConstRes.bas    added constant module for Res File;
-------------------------
0.0.20  10/03/2001
fDepend         added trigger recognition;

frmMain         fixed bug for New DB User;

fQuery          implemented rtfQry_OLEDragDrop event wich now load
                the 1st file dropped via OleDrag;
                fixed dbcombo resize;
-------------------------
0.0.18  xx/xx/2000
fServer         the LocalHost is now showed and saved as "(local)" instead of
		ComputerName();

frmMain         now SP3 is recognized (not yet tested);
                added possibility to show object dependencies (see fDepend
                above);

fBckCont        now accept as input param the File Number to be shown as
                checked in the grid; this value is read/write and stand as
                output param for fResMain, wich in it's turn updates the
                textBox of the file number from witch execute restore ops.;
                if a not valid bck file is passed as parameter, a fatal
                exception is no longer raised;
           *    all Bck operation are performed against phisical files,
                bckDevices are translated in the corresponding phisical
                files, cause long-files-names will raise exceptions;

fPercent        if a not existing bck file is specified for backup operation,
                an empty file will be created to avoid failure of
                GetShortPathName; BackUp and Restore operation now work with
                long-files-names too;
           *    all Bck operation are performed against phisical files,
                bckDevices are translated in the corresponding phisical
                files, cause long-files-names will raise exceptions;


fResMain        BackUp and Restore operation now work with long-files-names
fBckMain        too; all Bck operation are performed against phisical files,
                bckDevices are translated in the corresponding phisical
                files, cause long-files-names will raise exceptions;

fResMain        modified to reflect new stuff of fBckCont;
fBckMain
fBckD

fBckD           changed the phisical-location label with a locked textbox
                in order to show very long file names;

fTableSet       added Form with bound DataGrid wich can navigate via ADO
                the resulting DataSet of a table; should errors occure
                (not bookmarkable resultset, ..) you will be asked to show
                the resultset via DMO object;
                the DataGrid is not very stable...

fQry            added support to split commands with GO statements;
                added support to execute SQL statements against multiple DB
                in different commands group;

fLista		added support for multiselect in the main flex control
fDepend		in order to show dependencies for objects..

fServer         added SLEEP parameter in order to delete DB objects, in order
                to let DMO release the DB Object before killing it; DMO will
                need up to 1 minute time to achieve this result;
-------------------------
0.0.18  xx/xx/2000
fChooseBCK      file name TextBox is now disabled (locked=true), now it is
                only possible to choose from an existing device from the
                combo-box or edit/choose a bck file from the ShowSave dialog;

fResMAIN        File/Device Label replaced with locked textbox;
                now GetShortPath() return the DOS 8+3 file name for long
                file names (thanks to Alex for feedback);

fBckMAIN        File/Device Label replaced with locked textbox;
                now GetShortPath() return the DOS 8+3 file name for long
                file names;
                for non existing long files names (new bck files) including
                blanks (ie: 'this is my bck"), blanks char are converted to
                underscores ('_');
-------------------------
0.0.17  18/11/2000
Scaramantic omission
-------------------------
0.0.16  18/11/2000
.res            fixed some english entryes;

fNewDb          files growth setted to illimited;
                initial Data file dimension setted to 2Mb, while Log stay at
                1Mb;

fScript         fixed Database script generation which was fired only in
                preview mode;

fTbDes		FlexPicture as now CenterCenter alligned for boolean fields,
fServer         and RightTop alligned for Combo;

fServer         fixed setting reading before connect: now they are read from
		the struct and no more from the INI;

fQuery		changed dropdown button for Grid/Text display, with a standard
		pushButton;

frmMain		now it is possible to specify the new DB name for reattach;
		afthr the creation of a new DB now a complet refresh is performed
		instead of the re-population of the flex;

moreFrms..	better sized controls in Resize event;
-------------------------
0.0.15  29/09/2000
fBckMain        fixed enable property of cmd "Add", "Remove" and "Content"
fResMain        wich now become True,False,False in then click event of
                DB combo;

frmMain         checking/unchecking "show System objects" now automatically
                perform a refetch of db objects and repopulates the treeview;
                new login method and new start-up form; the connection to the
                server now is raised from the main form (showing the new
                login form fServer.frm);
                added disconnection and reconnection possibility;

fLog            removed login form, see above;

fServer         new connection and server parameter form;
                now every element of the grid wich owns a particular state
                (PushButton-Combo) will not be erased in then rowcoll_change
                scrolling event to another row;
-------------------------

0.0.14  09/09/2000
fQB             managed AllowCustomize property of ToolBar=False;
fQuery

fQB             managed the value Pressed/Unpressed for Tbr buttons
                ShowDesigner,ShowGrid,ShowSql,ShowResult, Group and
                ListTables/Views;
-------------------------
0.0.13b  01/09/2000
fQB             modified controls move method, instead of Drag&Drop now
tblView         coltrols behave a continue move, in order to avoid 
myLst           control's drop in non allowed area;
                Fixed WriteJoin: if RelatedTable Name = BaseTableName,
                {JOIN RelatedTable_Name} was again BaseTableName;
                Changed Form's BorderStyle from FixedToolWindow to Sizable;
-------------------------
0.0.13a  20/08/2000

fQB             fixed Sub WriteSql wich excluded the BaseTable in join
                operation if no field of its was visible;
-------------------------
0.0.13   18/08/2000
frmMain         setted statusBar Panel(1) Autosize=sbrSpring;
                added support for deleting non Systemobject Views;

fQB             added a Query Builder for new Views, wich include
fJoin           fJoin for Join propertyes and View property;
TblView.ctl     includes support for selfjoin, but not all grouping
myLst.ctl       options like in EM Query Builder;
                only 1 condition and 1 OR is permitted;
                with the limit of DMO object;
                the reverse engineering of existing Views is not allowed,
                nor their modification;
                an existing view as source will be loaded in field's
                alphabetic order, not the natural original order of the
                base table;
-------------------------
0.0.12   01/08/2000
frmMain         removed the Detached Datatase ListBox and substitued with a
                a standard Treview Node; now, if so instructed, only DB on
                wich the User has been granted access right will be showed;
		for detached DB, file's attributes are shown
		(cFileInfo.cls courtesy by Karl E. Peterson)

frmLog          substitued fSetting with a general Flex in frmLog form where
                all settings were placed on more pagese setings (for now only
                2);

fSetting        removed and functionnnality inserted in frmLog;
-------------------------

0.0.11   11/07/2000
frmMain		added splitter to size tview and flex;

fTbDes		fixed the right .Lenght property set in intial
		table's columns scan;
		some bugs fixed;
-------------------------
0.0.10   06/07/2000
fIndex		fixed _lostFocus event of floating textbox or combo
fRestore	removing the flex(n).setfocus statement which caused
		a crash if the user chosed to move from tab to tab
		with the CTRL-Tab key;

fSetting	added form to support further settings, including
                Language setting, Trusted NT Connection and SQL Server
		AutoStart;

frmLog          removed checkBox for Trusted NT Connection and SQL Server
		AutoStart, now included in fSetting form;

frmMain		added support for access privileges and removed
		necessity to be part of role "sa" to operate
		with the tool;

fUDT		added support for User Defined Data Types;
fUsed
fTbDes
-------------------------
0.0.9a   15/06/2000
frmMain (damn!) restored as original...users see all Databases, not only
fQuery          Databases for wich they have been granted access for;
-------------------------
0.0.9   14/06/2000
fRoles		support for User Defined Database Roles;

fLogin		added support for User Defined Database Roles;
fPrivil		added support for User Defined Database Roles;
		reestablished view of privileges on SystemObjects;

frmMain		Sql Logs are now showed via a Rtf Control instead of a
                flexGrid;
		the Database Node now allows New DB creation, BackUp and
                Restore operation;
		users now only see Databases for wich they have granted
                access;

fQuery		added text view of results via an RtfText control;
		changed the picture toolbar with a true Toolbar;
		users now only see Databases for wich they have granted
                access;

-------------------------
0.0.8   02/05/2000
fLog            added a checkBox (visible only under Win9x plattform) in
                order to AutoStart SQL Server/Msde; on WinNT this option is
                not supported 'cause SQL Server runs as a service (with it's
		privileges and accounts) and not as an application;
		(thank's P. R.);

cOpen		fixed a bug of Strings parameters loaded in the OFN
                structures; which under WinNT resulted in an error;
		(thank's P. R.);
-------------------------

0.0.7   25/04/2000
fMain		now Sql7 service packs are recongnized and showed;

fTBDes		Computed Fields can now be managed;
		the MouseDown event on a Computed Field pops up an input form
		for the field; a Default Value for the Column must not be set,
                and it is possible to set the boolean value for the
                .IsComputed property;

fPrivil		it's now possible to manage permissions like EM, with the
		exclusion of permission at the Field object level;
		only user created object are manageable (owner = o <> dbo),
		while objects belonging to INFORMATION_SCHEMA are not covered;
-------------------------
0.0.6   12/04/2000
GENERAL		in order to avoid the distribution of a control not used in
                other
		applications of mine, i choosed to use the one with fewer
                troubles
		*  MsFlexGrid= does not raise the _KeyDown events for navigation
		   arrows,
		*  MSHFlexGrid does not release memory
			(Q253295 (06/03/2000) BUG: Loading and Unloading a
                        Form Containing MSHFlexGrid Causes GDI Resource Leak)
		all MSHFlexGrids were changed to usual FlexGrid;

                fixed some localized string loading;

frmOpt          was splitted into 2 other forms and misused;
fTBDes          manages Table Design;
                added the possibility of inserting a new column between
                previously created;
         ***    ATTETION ***
                on errors happenings sometimes the Transacation on which
                the operation is surrended becomes corrupted and
                dependent objects, usually Indexes and Foreign Keys are
                not restored;
		Computed Fields are showed;
fGenOpt         manages Database's and Users's options;

fIndex          internal indexes for statistic's purpose are no longer
                showed, thanks to the test for
		((oIndex.Type And SQLDMOIndex_Hypothetical) <> SQLDMOIndex_Hypothetical)
                before loading to cIndex.AddItem oIndex.Name;

fNewDB          fixed the GrowthType setting for Log File!!!;

fQuery          added schortcut F5 to Run;

fResult         fixed presentation of newly created script bug;

fScript         fixed options in Trans.AddObjectByName for objects other
                than Stored Procedures;

frmMain		added the possibility to clear BackUpHistory with the supplied date;

fRows		replaced with fRequest, which allows other datatype manipulation;
-------------------------
0.0.5   12/02/2000
fScript		new module to generate scripts;
		i still did not understand what the option
		"Generate Create  command" stands for in Enterprise
		Manager, so i replaced it with the "Create " option;

fRows		workaround for Cancel effect typing Esc, setting Rows to fetch=0
		and consequentely
frmMain		the Rows num. is now tested and if = 0 no search will be done;

fQuery		DoSave now set the extention of the file to save as ".sql";

dbaMgr.res	RES file for English string added;
-------------------------

0.0.4   19/01/2000
frmLOG		in Connect2Sql the testo for error condition just before
		the main_form show statement was removed cause the routine
		uses ON LOCAL ERROR GOTO statement to jump to Label LoginErr:
		shoul'd an error be raised;

fNewDB		fixed a bug of loading/showing/saving parameters of Maximum
		File Size Restricted/Unrestricted;

		validation of File Growth value Mb/% is now fired in the
		Validate event;
		becouse of this i have removed the shortcut in Form_KeyDown
		Ctrl+Tab to switch to the next TabStrip Element, cause in this
		case the Validate event woul'd not be fired;

		in SaveDB Sub, soon after the effectively data save, and just
		before the selection of TabStrip(0) element, the modul level
		variable bRefreshData is set to True to avoid unwanted
		modification of the just saved data structure, and reset to
		false after the TabStrip(0) element selection;
-------------------------
0.0.3   14/01/2000
frmLOG          password field was not masked by **** characters;
                added to the caption the version number, so that i'll
                delete the wrong one anymore...;

fBCP            fixed events bcpServer_BatchImported and bcpServer_RowsCopied,
                the cursor was not positioned right after new messages were
                added;

frmMain		the option Shrink NoTruncate shoul'd be TruncateOnly;
-------------------------
0.0.2	xx/11/1999
fBCP		fixed the connection reuse or generation option (wich i
		misunderstood), removed global module variable oSvr which
		become a private var of sub BCP_Execute; BCP_Execute will
                now generate/get the correct connection to the SQL Server
		reference;
-------------------------
0.0.1	xx/11/1999
DbaMGR		removed reference to Typelib (win\tlbinf32.dll) no longer needed;

fBCP		added checkbox to support truncatelog option on bcp import;
		corrected display of IN/OUT operation;

frmMain		deleting a database user (node "Database Users"), the call oDB.name
		failed 'cause the variable oDB was not assigned yet;

fIndex		added Check constraint support; (as for Foreign Key, property
		activate or deactivate "Check for Replica" becomes read-only, but
		with no runtime error)...
END