ibatis框架:VC++编程问题?

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/27 15:12:17
请看下列代码:
CString m_sCompany="";
m_sCompany=_T("公司名称");
m_sCompany="公司名称";
strQuery = "select * from suppliers where CompanyName='"+m_sCompany+"'";//后台数据库为SQL Serevr 2000

m_sCompany=_T("公司名称");中的_T是什么?
{m_sCompany=_T("公司名称");}与{sWarning="公司名称";}有什么不同?
"+m_sCompany+"中的+号是代表什么? 符号"代表什么?

_T 是VC 中的一个字符串宏, 根据你设置的标志确定返回unicode编码还是
acsii编码,加上此宏有更好的可移植性。

如果没有特殊要求m_sCompany=_T("公司名称");}与{sWarning="公司名称";}
是一样的。
+ 号是以重载的操作符,就是连接字符串。
因为sql语法规定 sql语句里面,字符串要用 单引号来表示,
sql 里面 '公司名称' 就相当于你在c++ 里面 写 "公司名称"

_T("")是一个宏,他的作用是让你的程序支持Unicode编码
因为Windows使用两种字符集ANSI和UNICODE,
前者就是通常使用的单字节方式,
但这种方式处理象中文这样的双字节字符不方便,
容易出现半个汉字的情况。
而后者是双字节方式,方便处理双字节字符。

Windows NT的所有与字符有关的函数都提供两种方式的版本,而Windows 9x只支持ANSI方式。
如果你编译一个程序为ANSI方式,
_T实际不起任何作用。
而如果编译一个程序为UNICODE方式,则编译器会把"Hello"字符串以UNICODE方式保存。_T和_L的区别在于,_L不管你是以什么方式编译,一律以UNICODE方式保存。