from:
http://blog.csdn.net/WYZSC/article/details/6169496
OracleException: OCI-22053: 溢出错误
本人近期遇到此问题,整理网上文摘,并进行相关处理的记录
该代码的主要功能是使用OracleDataAdapter填充DataSet。查了网上相关的内容后,得知是数字类型的字段的位数过多造成的。
对 于数字类型的字段,填充DataSet的时候会调用GetValues方法,数字类型的值将从OracleNumber类型转换成 System.Decimal类型,后者的取值范围比前者小,所以可能会引发溢出错误。解决的方法是不使用Fill方法填充DataSet,而是直接调用 OracleDataReader.GetOracleValues。
原因分析
Oracle 数值数据类型最多可存储 38 个字节的精度。当将 Oracle 数值转换为公共语言运行库数据类型时,小数点后边的位数可能过多,这会导致此错误。
解决方法:
使用round()函数:
例如:select min(pval),max(pval),round(avg(pval),5) from hvm_data_dga .
round(avg(pval),5) 使数值小数点后按照四舍五入保留5位。
posted @ 2012-02-08 15:50 白沙河 阅读(2) 评论(0)
编辑
c#调用office2003的文字识别功能
bool CallOcx(string fileName, out string con)
{
con = "";
try
{
MODI.Document doc = new MODI.Document();
doc.Create(fileName);
doc.OCR(MODI.MiLANGUAGES.miLANG_CHINESE_SIMPLIFIED, false, false);
MODI.Images images = doc.Images;
for (int i = 0; i < images.Count; i++)
{
MODI.Image image = (MODI.Image)images[i];
MODI.Layout layout = image.Layout;
con += layout.Text + "\r\n";
}
doc.Close(false);
doc = null;
return true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return false;
}
}
posted @ 2011-08-17 23:28 白沙河 阅读(74) 评论(0)
编辑
public void StartWebService() throws Exception
{
JettyHTTPServerEngineFactory eg = new JettyHTTPServerEngineFactory();
eg.createJettyHTTPServerEngine(9000,"http");
WebServiceMethod webServiceMethod = new WebServiceMethod();
ServerFactoryBean svrFactory = new ServerFactoryBean();
svrFactory.setServiceClass(WebServiceMethod.class);
svrFactory.setAddress("http://localhost:9000/Hello");
svrFactory.setServiceBean(webServiceMethod);
// svrFactory.getServiceFactory().setDataBinding(new
// AegisDatabinding());
svrFactory.create();
}
http://cxf.547215.n5.nabble.com/Virtual-host-with-jetty-standalone-RS-WS-need-help-td3414715.html
From Java, I THINK you can do something like:
bus.getExtention(JettyHTTPServerEngine.class)
.createJettyHTTPServerEngine(null, 8080, "http");
and that will create the connector for the port on all hosts, not the one for
the passed in host. Not 100% sure though.
posted @ 2011-04-19 12:09 白沙河 阅读(95) 评论(1)
编辑
from:http://www.rosoo.net/a/linux/200911/8042.html
linux下获取当前目录
时间:2009-11-29 23:28来源:罗索工作室 作者:落鹤生 点击:1007次
Linux下去获取程序当前路径,包括当前工作路径及实际执行文件路径。
TAG:Linux
1. 取得当前工作目录(相当于windows下的GetCurrentDirectory):
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "unistd.h"
int main()
{
char buf[200];
if(getcwd(buf, sizeof(buf)-1) != NULL)
{
printf(buf);
printf("\n");
}
else
{
printf("error \n");
}
return 0;
}
2. 取得实际文件目录(相当于windows下的GetModuleFileName())
每个进程在/proc下都有一个以进程号命名的目录.
在该目录下有exe文件,该文件是一个链接文件,它指向的路径就是该进程的全路径.
用readlink读exe文件返回该进程的全路径
如果不在意可能导致的安全隐患,可以使用procfs,然后readlink,把当前进程的pid对应的目录下面的file指向的位置读出来(注意需要先挂载procfs)
pit_t mypid = getpid();
sprintf(strsrc, "/proc/%d/file", mypid);
readlink(strsrc, strdest, LEN);//LEN最好是你的_POSIX_PATH_MAX
所以,如果支持/proc文件系统,下面的代码可以解决你的问题:
#include <stdlib.h>
#include <unistd.h>
#ifndef PATH_MAX
#define PATH_MAX 1024
#endif
char * get_exe_name() {
static char buf[PATH_MAX];
int rslt = readlink("/proc/self/exe", buf, PATH_MAX);
if ( rslt < 0 || rslt >= PATH_MAX ) {
return NULL;
}
buf[rslt] = '\0';
return buf;
}
int main( void)
{
char * exe_name = get_exe_name();
puts( exe_name );
return 0;
}
如果不支持/proc文件系统,我也没什么好办法了。
posted @ 2010-11-11 17:00 白沙河 阅读(94) 评论(0)
编辑
某些Ghost版本的XP在安装pdffactroy和Adobe Acrobat时,会提示因为缺少某个模块而无法安装虚拟打印机
2008-12-04 10:19
转载:http://see.xidian.edu.cn/news/200810/20081022133530.htm
ps:本人的系统为deepin xp精简版,以前安装了一个pdfcreator软件,这个软件同样的也是安装一个pdf虚拟打印机驱动,结果在安装的时候出现了一个错误提示,然后打印文档的时候找不到打印机,看了这篇文章总算是知道是怎么一回事了,不过,看来在deepin xp精简版上是不能使用这类安装虚拟打印机驱动的软件了(因为我并不打算了修复“系统还原”这个功能,呵呵)
某些Ghost版本的XP在安装pdffactroy和Adobe Acrobat时,会提示因为缺少某个模块而无法安装虚拟打印机。(编者netfairy注:具体提示如下:
如果安装Adobe Acrobat,则提示“警告20225:Adobe Acrobat 7.0 安装程序无法创建新的key目:Adobe PDF Converter。Adobe PDF Printer可能不可用。GetLastError:找不到指定的模块”。
如果安装 pdfFactory,提示“ pdfFactory Pro 不能被安装(AddPrinterDriver 失败)..找不到指定的模块”。)
其原因不是因为print spooler服务没启动,也不是因为环境变量patch被其它软件更改。(确实如此,我启动了print spooler服务也不好使)
真正的原因是:XP原有的“系统还原”功能被精简掉了!!!
或许很多人都想不到,虚拟打印机跟系统还原能有什么联系,但事实就是这样。
(检验系统还原功能是否被精简掉的方法:在“服务”里启动或停止“system restore service”,如果提示缺少文件无法启动,就说明系统还原功能被精简掉了。)
重装系统还原功能的方法是:找到\WINDOWS\inf\sr.inf,右键选择“安装”,按照系统提示进行安装,最后重启系统。(编者netfairy注:注意此时系统提示你要插入WINXP的安装盘,请提前准备好光盘或者ISO虚拟镜像)
当系统还原功能成功安装之后,再安装pdffactroy和Adobe Acrobat虚拟打印机就能成功了。
该方法在“Ghost Windows XP Professional SP2 20061111 NTFS”版本上测试成功,(该版本精简了系统还原功能,而且作者很低调,做好了系统都不留个名字或联系方法,找他不容易啊)。
不知道该方法对于以前的deepin系统行不行,由于本人手头没有不能安装虚拟打印机的deepin系统,所以无法测试。 |
posted @ 2010-10-24 14:04 白沙河 阅读(338) 评论(0)
编辑
摘要: c# 获得windows mobile 手机IE的历史记录//关键是找到历史记录在注册表中的保存位置 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windo...
阅读全文
posted @ 2010-10-19 22:20 白沙河 阅读(66) 评论(0)
编辑
摘要: 这两天在学习linux下用c++访问mysql,碰到一堆问题,记录一下。1.mysql安装:公司的电脑是64位的,安装的是64为的RHEL4,安装如下三个包:MySQL-client-5.1.49-1.glibc23.x86_64.rpmMySQL-devel-5.1.49-1.glibc23.x86_64.rpmMySQL-server-5.1.49-1.glibc23.x86_64.rpm启动...
阅读全文
posted @ 2010-08-07 01:11 白沙河 阅读(264) 评论(0)
编辑
摘要: 转自:http://blog.csdn.net/qqiuzaihui/archive/2009/01/06/3721590.aspx 添加命名空间using System.Text.RegularExpressions; /// <summary> /// 判断是否为汉字 /// </summary> /// <param name="chrStr"&...
阅读全文
posted @ 2010-07-16 10:17 白沙河 阅读(82) 评论(0)
编辑
摘要: Private Sub CommandButton1_Click() For i = 1 To Sheets.Count - 1 Dim shet Dim shetd shetd = "a" + Trim(str(i)) shet = "b" + Trim(str(i)) For j = 1 To 100 Dim sss sss = "A" + Trim(str(j)) //数字转换成字符,截...
阅读全文
posted @ 2010-07-06 11:51 白沙河 阅读(30) 评论(0)
编辑
摘要: Windows 2003 server的远程连接默认只允许两个用户同时登陆,但是如果有时候远程会话被意外关闭可能会造成连接已断开,但是会话依然存在的情况,这时候可能会造成无法远程登陆的情况,解决办法就是修改组策略。开始-运行-gpedit.msc-计算机配置-管理模板-windows组件-终端服务-"限制连接数量",选择一个数字,比如3或更多。开始-运行-gpedit.msc-计算机配置-管理模板...
阅读全文
posted @ 2010-04-16 19:13 白沙河 阅读(921) 评论(0)
编辑