Thx for yr reply, zamp.
Ya, I forgot the -ve sign, it should be -2147220401,
but I found that the err number is different from which level of function call.
E.g. A() call B(), B() raise database connecion error to A(),
For the err.number in B() = -2147467259
For the err.number in A() raise from...