DBMGR, loaded and with the safety off

Have you ever wanted to delete a component from the database through DBMGR but the visibility was too low?

Of course, some of you just go into the SQL table for the dependency database and hack (er, *tweak*) the vis setting for the component to 1000 and voilĂ ! It's visible to do with as you please...view it, delete it, whatever.

Of course I'm sure this goes without saying, but lets get it out there anyways, that's not supported.

Now, while there's no true "supported" method to view "hidden" components in DBMGR, there is a better, cleaner, more effective way. There is a switch you can use to view the hidden components, it's not documented for a reason. Before i tell you this super secret functionality for DBMGR allow me to explain the *reason* why it's undocumented. The basic reason is going to be a common theme for some of the insights we provide you in this blog:

It's because we didn't want you to accidentally corrupt your database.

We didn't actually hide the information or the component meta-data used by the platform, so there's no nefarious obfuscation going on here. Years ago when we created the product we honestly thought that the embedded developers, who are renowned for hacking on their systems and tweaking things just so (I'm guilty as well), would go a little too far and do something like, hmm, let's see - delete the BASE COMPONENT rendering their runtimes useless from them on and necessitating a full reinstall of the product!

This subject of hiding components deserves further discussion, in another post sometime I'll talk about the numerous meetings I reminded people that we should do the right thing and bump up the visibility of some of the components within Target Designer. I agree that some should remain hidden, like a few of the Core OS components for example, but there's no longer a good reason for something like GAMES to be hidden. In Service Pack 2 you'll find those components (to be discussed later) are now "unhidden".

So anyway, back to DBMGR. Try this.

  1. Launch DBMGR
  2. Click the "components" tab
  3. Note the number of visible components, it'll say something like "12,490" for instance. Remember this number.
  4. Close DBMGR.

Now from a command window, go to .\Program Files\Windows Embedded\bin and launch DBMGR with the " /v" switch ('v' for 'visibility' i guess) like this:

"DBMGR.exe /v"

DBMGR spawns, now go to the "components" tab and you should have like 50 or a 100+ additional components than what you saw in step 3 above. Your visibility is now '0'. In this state it's like you're toying with a loaded gun and the safety off, you can view or delete any component in the DB. If you put yourself in a hosed state you will need to reinstall the DB. This '/v' switch is also not supported. If you use this it's at your own risk.

Let me know if you want more like that. <grin>

Enjoy.

-Andy Allred