不必多说微软的认证考试,就把需要的考试科目列一下,以作参考:
与数据库相关的认证, 针对于SQL2008(不管2005的了),相应的认证如下:
MCITP Database Administrator:
70-432(TS: Microsoft SQL Server 2008, Implementation and Maintenance)--DONE
70-450(PRO: Designing, Optimizing and Maintaining a Database Administrative Solution Using Microsoft SQL Server 2008)
MCITP Database Developer:
70-433(TS: Microsoft SQL Server 2008, Database Development)--DONE
70-451(PRO: Designing Database Solutions and Data Access Using Microsoft SQL Server 2008)--DONE
MCITP BI:
70-448(TS: Microsoft SQL Server 2008, Business Intelligence Development and Maintenance)
70-452(PRO: Designing a Business Intelligence Infrastructure Using Microsoft SQL Server 2008)
MCAD, 这个是开发相关的认证, 这个认证是针对Framework 1.1的, 已经过时且大多数的考试已经不被提供, 所以无法进行了. 取代它的是 MCTS:
对于开发人员的认证是MCTS (http://www.microsoft.com/learning/en/us/certification/cert-vstudio.aspx#tab2)和MCPD认证. 在取得MCTS认证以后, 再考相对应的MCPD认证, 其中70-536不必再考了, 如上面的70-528考过以后, 再考 70-547 (PRO: Designing and Developing Web-Based Applications by Using the Microsoft .NET Framework) 可以得到 MCPD: Web Developer 认证.
这一门是必须要的,无论是VS2005或者VS2008:
70-536, (TS: Microsoft .NET Framework – Application Development Foundation)
对于VS2005,有:
70-528, (TS: Microsoft .NET Framework 2.0 - Web-based Client Development) 这门课是关于VS2005 WEB开发的,2005还有其他2门课的认证可以选, 2008有6门认证可以选.
对于VS2008,可选的有:
70-562(TS: Microsoft .NET Framework 3.5, ASP.NET Application Development)
对应的MCPD课程:70-564( PRO: Designing and Developing ASP.NET Applications Using Microsoft .NET Framework 3.5)
或者
70-505(TS: Microsoft .NET Framework 3.5, Windows Forms Application Development)
对应的MCPD课程:70-563( PRO: Designing and Developing Windows Applications Using Microsoft .NET Framework 3.5)
参考网址: MS 官方网页 http://www.microsoft.com/learning/en/us/certification/view-by-technology.aspx#section2
一个极好的题库下载网站:http://www.examcollection.com/
和论坛: http://certcollection.org/ (http://certcollection.org/forum/index.php?/topic/19862-offer-cbt-70-451-microsoft-sql-server-2008/page__p__127802__hl__451__fromsearch__1&#entry127802)
=============================================
靠DELPHI吃饭不是那么牢靠,慢慢年纪大上去,就要不适合编程了.当然,在加拿大这地方,绝对不会因为这个原因就失业,但是,为什么早想好一条出路也是必须的.
现在的打算是慢慢往SQL SERVER上面靠,数据库是一个使用非常广泛的技术,MS SQL现在在慢慢崛起,和ORACLE,DB2,MYSQL一起分割市场,虽然在大公司里不如前2个,在民间不如后一个,但是占据很大部门的中间市场,相信搞这个有市场有前途.
SQL的面很广,如正文所说,有3类认证可选:ADMINISTRATOR,DEVELOPER,BI,这三者看似独立,其实互相都有一定的联系.我的计划是把这3门认证都考下来,一来可以充实自己,二来也可以给自己多点选择.
具体做法,依次考下:
1. MCITP Database Developer:
70-433(TS: Microsoft SQL Server 2008, Database Development)--DONE@2/26/2010
70-451(PRO: Designing Database Solutions and Data Access Using Microsoft SQL Server 2008)--DONE@3/18/2010
2. MCITP Database Administrator:
70-432(TS: Microsoft SQL Server 2008, Implementation and Maintenance),--DONE@ 3/17/2010
70-450(PRO: Designing, Optimizing and Maintaining a Database Administrative Solution Using Microsoft SQL Server 2008)-- 4/30/2010
3. MCITP BI:
70-448(TS: Microsoft SQL Server 2008, Business Intelligence Development and Maintenance) -- 2010年5月份(计划中)
70-452(PRO: Designing a Business Intelligence Infrastructure Using Microsoft SQL Server 2008)-- 2010年6月份(计划中)
=====以上这6个希望能在上半年考完=====
4. 70-536,
(TS: Microsoft .NET Framework – Application Development Foundation) -- 2010年6-7月份(计划中)
70-536不是SQL项目中的科目,但是为了了解MS的.NET,这一门还是应该过的,毕竟SQL支持CLR,其中会有不少的应用.
在MONSTER看了一下,关于SQL的工作机会不少,薪水也不低,看运气了.
===================================
5月29日补充:
真是人算不如天算,费了不少钱力考了4张证,2个MCITP.结果找工作到了KINGSTON,他们用的是SYBASE的ADVANGAGE DATABASE,一个小型数据库系统,完全和MSSQL是两个层次的东西,这下考的也几乎可以算是白考了,呵呵.不过当然不能这么说,通过考试了解的数据库概念和知识还是很有意义的.
VS2005出现编译错误: fatal error C1902: Program database manager mismatch; please check your installation
复制3个文件(mspdb80.dll, mspdbsrv.exe and mspdbcore.dll), 从C:Program FilesMicrosoft Visual Studio 8Common7IDE 到 C:Program FilesMicrosoft Visual Studio 8VCbin
即可.其中mspdb80.dll可能会已经存在,无所谓了.
用VMWARE建了2台WINDOWS2003,各装了SQL2005来试验LINKED SERVER,结果在2号机上建1号机的LINKED SERVER时总是报错说"服务器已存在",在2号机上运行查询,
exec sp_helpserver
结果中出现1号机,可能是以前自己练习时加入的,不知为何在SSMS中看不到但是在系统中却存在着.继续运行如下脚本将其删除.
exec sp_droplinkedsrvlogin 'TEST2003',null
exec sp_dropserver 'TEST2003'
注意TEST2003要大写,否则会出错.再exec sp_helpserver查看,系统报告"没有定义服务器".
-
C++使用 void extern __declspec(dllexport) 函数名()定义的输出函数, 在C#中调用时, 如前文所述, 使用
[DllImport("D:\VS2005Projects\Dev_PetroSim2010b\Dev_AMDBR\Debug\Dev_DR_AMDBR.dll", EntryPoint = "#1")]
public static extern void amDBRSurfaceTensionEX(int compCount, int[] components, int modelID, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] double[] Z, ref int errorID);
来调用.
这里注意的是,定义函数入口点的参数EntryPoint = "#1", C#中有2种方式可以定义入口点, 一种是以序号加前缀"#",这是我一直用的,另一种是用EntryPoint="函数名",这种方法我试了很多次却无法实现,C#编译器总会说在DLL中没有找到函数.
如何找到函数所对应的EntryPoint编号呢?我用的是一个叫DLLExportViewer的软件,可以告诉你各个函数的Ordinal,即编号,照此调用即可,但是问题是,如果原DLL进行编辑之后,增加或减少输出函数之后,各个函数的编号会重新打乱,使原程序无法进行.所以对这种情况,即DLL尚在编辑之中时,还是以函数名作为EntryPoint比较好.
在C:Program FilesMicrosoft Visual Studio 8VCbin目录中,有一个文件dumpbin.exe文件和DLLExportViewer一样可以查看DLL的输出函数,但是在运行时,居然跳出一个错误窗口
查找后发现,mspdb80.dll文件是在C:Program FilesCommon FilesMicrosoft SharedVSA8.0VsaEnv中,将此文件复制到C:Program FilesMicrosoft Visual Studio 8VCbin目录,再运行时错误消失.
查阅dumpbin的输出,发现输出函数说明及如下
| ordinal | hint | RVA | name |
| 7 | 6 | 0002D591 | ?amDBRSurfaceTensionEX@@YAXHPAHHPANAAH@Z = @ILT+1420(?amDBRSurfaceTensionEX@@YAXHPAHHPANAAH@Z) |
前面的ordinal 7即为函数的输出序号, name列即为可用的函数名,在C#中,改函数声明为如下即可用函数名作为EntryPoint
[DllImport("D:VS2005ProjectsDev_PetroSim2010bDev_AMDBRDebugDev_DR_AMDBR.dll", EntryPoint = "?amDBRSurfaceTensionEX@@YAXHPAHHPANAAH@Z")]
============================================
照上述做法,导出函数可以成功,但是在C#中调用却是相当麻烦,因为函数的入口名称太过繁杂且不可理解,因此,还是要解决在C++中的函数输出,以使在C#中能直接以函数名作为入口.
上述问题中,实际上是在C++中函数输出时,默认输出名是使用C++的mangled name, 要使用C的命名方式方可直接使用其输出名,这时,函数输出声明应改为如下:
extern "C" __declspec(dllexport) void amDBREnthalpyEX(int CompCount, int* streamComp, int modelID, double* streamInfo, int& errorID)
这样,可以看到DLLExportViewer的查看结果了,以此方式声明的amDBREnthalpyEX函数和以原方式声明的其他函数的名称的不同如下图所示.
这时,在C#中,就可以以函数名称作为入口点了:
[DllImport("D:VS2005ProjectsDev_PetroSim2010bDev_AMDBRDebugDev_DR_AMDBR.dll", EntryPoint = "amDBREnthalpyEX")]
public static extern void amDBREnthalpyEX(int compCount, int[] components, int modelID, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] double[] Z, ref int errorID);
最近一直有个烦人的困扰,就是划词自动复制的问题,这事说大不大,说小不小.在编辑文本时,要移动对象A用于取代B,我的操作通常是先把用鼠标拖动选中A并CUT了,然后再拖动选中B再直接PASTE,但是最近发现拖动选中B之后,剪贴板中的内容自动变成B了,原来复制的A居然自动消失了,而且奇怪的是有时候是这样,有时候就不是,让我郁闷了很久.
今天才发现,原来是LINGOES词典的划词翻译搞的鬼!
用LINGOES进行划词翻译或者双击翻译时,它居然是先把词选中然后复制到剪贴板再进行的翻译.呜呼~~太可恨了,原来看LINGOES占用资源少,就想用LINGOES来取代金山词霸,看来又要换回去了...
换回了金山词霸GOOGLE合作版,发现内存占用比LINGOES多了10多M,还好可以接受,不过问题是双屏显示时,而且副屏是在主屏的左侧时,对副屏取词,词霸的弹出窗口却显示在主屏上,查看不方便,但是当副屏在主屏的右侧时就没有这个问题.不过这点不便总比LONGOES擅自篡改剪贴板的好得多.






