Friday, April 25, 2008

C++ 里 #include " " 与 #incluce< > 的区别

搜索的范围不同

#include " " 用于用户自定义头文件,编译器会在先在用户当前目录开始搜索,找不到的话编译器到编译工具规定的目录中寻找该头文件。例如#include"smtp.h" 也可以在子目录里,例如#include"mylib/smtp.h"

#include< > 用于格式来引用标准库的头文件,编译器会自动在编译器设置的目录里搜索。例如#include

C++ error C2664:解决方法(转)

error C2664: 'void ATL::CStringT::Format(const wchar_t *,...)' : cannot convert parameter 1 from 'const char [4]' to 'const wch



CString s;

s.Format("%2d", num1);

but it generates the following error message when compiling:

d:\my documents\visual studio 2005\projects\pt24\pt24\expression.cpp(74) : error C2664: 'void ATL::CStringT::Format(const wchar_t *,...)' : cannot convert parameter 1 from 'const char [4]' to 'const wchar_t *'

with

[

BaseType=wchar_t,

StringTraits=StrTraitMFC_DLL

]

Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast



Your project is UNICODE enabled so CString format expects an UNICODE string instead of an ASCII one. You need to use the _T macro to create an UNICODE string:

str.Format(_T("%2d"), 42);

You can also change you project settings to use ASCII if you wish. Go to Project properties, Configuration Properties, General and you'll find an option named "Character Set". Change it to "Use Multi-Byte Character Set".

Thursday, April 24, 2008

program 中的 SQL 语句写法

程序中的代码:


string insertQuery;

insertQuery="INSERT INTO TABLE_NAME VALUES(" + appNo + ", '"+work_county+"', '"+ssn+ "', TO_DATE('"+birth_date +"','DDMMYYYY'), '"+gender +"', '"+last_name+"','"+first_name+"', '"+middle_name + "' , 'A')";



生成的SQL 语句:

INSERT INTO TABLE_NAME VALUES( 001,'China','0000000','TO_DATE('01051983','DDMMYY'),
'MALE','AUSTIN','XU','','A');


需要注意的是:
1.INT 类型的不需要用 ' ' 括写来,只有STRING 或者 CHAR 类型的才需要。
2.程序代码中所有东西都是用 + 号连接起来,为的是成为一个完整的字符串,+ 号 两连肯定都要用" " , 代码是STRING, VARIABLE +号. 但还要VARIABLE 的类型决定要不要用' 号

Tuesday, April 15, 2008

Got job offer today!

今天终于收到JOB OFFER了,本来上周二就跟BOSS 定了,可今天才收到OFFER LETTER。所以一直没跟家人和朋友说。今天总算好了。公司还不错,薪水也还不错。我在MSN的Fighter for a better life 后加了 A small step forward。前进了一小步。 最近家里老不顺,股票低吧,打麻将也老输钱,我说的是我爸妈,我也输其实,干脆不打了。

嗯,要以后更积极的面对人生了,用我爸的话说,要好好给人家干。 用BOSS 的话说,I know you won't let me down. So I won't let everyone down.

Monday, April 7, 2008

数据库NULL值的处理

1.MSSQL: ISNULL()

语法

ISNULL ( check_expression , replacement_value ) AS Item1

参数

check_expression

将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。

replacement_value

在 check_expression 为 NULL时将返回的表达式。replacement_value 必须与 check_expresssion 具有相同的类型。

返回类型

返回与 check_expression 相同的类型。

注释

如果 check_expression 不为 NULL,那么返回该表达式的值;否则返回 replacement_value。

2.Oracle: NVL()

语法

NVL(eExpression1, eExpression2)

参数

eExpression1, eExpression2

如果 eExpression1 的计算结果为 null 值,则 NVL() 返回 eExpression2。如果 eExpression1 的计算结果不是 null 值,则返回 eExpression1。eExpression1 和 eExpression2 可以是任意一种数据类型。如果 eExpression1 与 eExpression2 的结果皆为 null 值,则 NVL( ) 返回 NULL

返回值类型

字符型、日期型、日期时间型、数值型、货币型、逻辑型或 null 值

说明

在不支持 null 值或 null 值无关紧要的情况下,可以使用 NVL( ) 来移去计算或操作中的 null 值。

3.Mysql: IFNULL()

语法

IFNULL(expr1,expr2)

参数

expr1,expr2

假如expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。