posts - 66,  comments - 42,  trackbacks - 1

OracleException: OCI-22053: 溢出错误

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) 编辑
昵称:白沙河
园龄:4年1个月
粉丝:1
关注:0

<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

搜索

 
 

常用链接

随笔分类

随笔档案

最新评论

阅读排行榜

评论排行榜

推荐排行榜