向Oracle数据库表中插入十几万条数据,可是当插入3万多条后,程序就抛
Java代码
ORA-01000 maximum open cursors exceeded
ORA-01000 maximum open cursors exceeded
异常信息。Google了异常信息,得知这样的错误很容易出现在Java代码中的主要原因是:Java代码在执行conn.createStatement()和conn.prepareStatement()的时候,实际上都是相当于在数据库中打开了一个cursor。尤其是,如果你的createStatement和prepareStatement是在一个循环里面的话,就会非常容易出现这个问题。因为游标一直在不停的打开,而且没有关闭。
一般来说,我们在写Java代码的时候,createStatement和prepareStatement都应该要放在循环外面,而且使用了这些Statment后,及时关闭。最好是在执行了一次executeQuery、executeUpdate等之后,如果不需要使用结果集(ResultSet)的数据,就马上将Statment关闭(statementName.close())。
下面将代码附上
抛异常代码:
Java代码
Connection conn = DBUtils.getConnection();//获取数据库连接
PreparedStatement pstmt = conn.prepareStatement("select& ......
问题
(1)表employees和department存在参照完整性约束,在表employees中插入记录(‘70’,‘999’)department_id为‘999’时,department表中还不存在department_id为‘999’的记录,所以违背了参照完整性约束,出现“Integrity constraint violation error”提示信息。
UPDATE employees SET department_id = 999 WHERE employee_id = 170;
-- Integrity constraint violation error
(2)
CREATE OR REPLACE TRIGGER constr_emp_trig
AFTER UPDATE ON employees
FOR EACH ROW
BEGIN
INSERT INTO departments
VALUES (999, 'dept999', 140, 2400);
END;
/
结果:Insert操作虽然违反了参照完整性约束,但employees表中依然成功插入了一条新记录。 ......
原出处:http://blog.163.com/zwx_gis/blog/static/32434435200971072634757/
Web编程相关 2009-08-10 19:26 阅读15 评论0
Ajax (Asynchronous JavaScript and XML) 是多种技术的集合,包括JavaScript、XHTML、CSS、DOM、XML、XSTL、XMLHttpRequest等,其中XHTML和CSS 实现标准化呈现,DOM 负责数据的动态显示和交互,XML和XSTL进行数据交换和处理, JavaScript负责操作XMlHttpRequest对象来跟数据库打交道,XMLHttpRequest负责数据的异步获取。
优点:无刷新请求处理数据。
缺点:要求IE5.0,Mozilla1.0,NetScape7以上;
更新页面内容时没有刷新整个页面,故后退功能是失效的;
对流媒体和PDA之类的支持不是很好。
一、核心对象:XMLHttpRequest对象(是XMLHTTP组件的对象)。
一个页面可以通过一个HttpRequest发送一个请求来获取服务器响应,而当前页面不做刷新。XMLHttpRequest对象不是W3C标准,目前支持此对象操作的浏览器有:IE5.0+、Firefox、Netscape7、Mozilla1.0、Safari1.2等。
属性:
属性 ......
Flex有专有的编译解析器,由于AJAX涉及到JAVASCRIPT技术,所以还是面对跨浏览器的烦扰。ajax在页面上处理一些简单逻辑时,需要用JAVASCRIPT来处理,你安心的在你的浏览器上编译解析通过了,你以为大功搞成了,可是殊不知,接踵而来的是客户的投诉,因为你原以为成功的页面在他们的浏览器上简直就是一堆垃圾,原因是他们的浏览器的编译解析不了你的页面代码JAVASCRIPT。你总不能为了一段JS代码而大动干戈,做到兼容所有的浏览器吧,你是做不到这一点的,因为浏览器在更新,不同版本的浏览器也不互相兼容。
Flex干脆就换了编译器,直接用FLASH PLAYER了。
本来就不应该把Flex与AJAX来做比较,这样比较没有任何意义,就比如你比较棉花与铅球的重量一样,两个不同的事物而已,没有共同点的东西,是没有比较点的。Flex给开发者提供全新的一整套开发、编译平台的框架,而Ajax是一系列旧有技术的集合而已。拿棉花和棉花比较,所以我们应该比较下Flex和GWT、OpenLaszlo、Nexaweb、Canoo、Backbase等RIA富客户端技术。 ......
web2.0横空出世,ajax首当其冲,今天做web的如果再不学点ajax的话,就显的落伍了,而学ajax的用的环境如果是asp.net,那ajax.net你就不得不学了。首先就是环境的配置,如下
vs2005+sql2005+Winxp sp2+ie6.0+Office2003
工具下载
1.ASPAJAXExtSetup.msi
http://download.microsoft.com/download/5/4/6/5462bcbd-e738-45fa-84ca-fa02b0c4e1c2/ASPAJAXExtSetup.msi
2.ASPAJAXSourceCode.msi
http://download.microsoft.com/download/6/d/6/6d6c7c47-b9ff-4934-bb03-8a45b8418d35/ASPAJAXSourceCode.msi
3.AjaxControlToolkit
AjaxControlToolkit-NoSource
AjaxControlToolkit
现在给出下载链接。http://ajax.asp.net/downloads/default.aspx?tabid=47
http://www.codeplex.com/AtlasControlToolkit/Release/ProjectReleases.aspx?ReleaseId=1425
环境设置如下:
下载完 ASPAJAXExtSetup.msi 安装更新后在你的系统盘下的(以C盘为例) 出现这个 文件夹:
C:\Program Files\Microsoft asp.NET\ASP.NET 2.0 ajax Extensions\v1.0.61025
安装这个后我们就可以创建Asp.net AJAXEnabledWebSite站点了,这其实就是个ajax.net网站的模板。但是我们现在还不能 ......
今天无事,在论坛上一直看贴子,很少动手实践,今天试着写了一个读取源程序代码行数的例子:
现在的代码如下,可能还有不完善的地方,以后再改进:
#include <stdio.h>
#define CHARCOUNT 255
#define CON 6 /*单行注释最少的时候*/
int realLength = 0;
/*
* function name: strCount
* function : count line number
* created by : lsl
*/
int strCount(int from, char * str)
{
int length = strlen(str), i = 0;
int realCount = length-2-from;
for(i = length-3; str[i]==' ' || str[i] ==' '; i--)
{
realCount--;
}
realLength = realCount;
return realLength;
}
int main(int argc, char *argv[])
{
FILE *fPtr = fopen("tt.c","r");
char buffer[CHARCOUNT];
int lineCount = 0,i=0,j=0,k=0,bufferLen = 0;
int moutLineComment = 0;
if(NULL == fPtr)
{
printf("file open error!\n");
exit(0);
}
while(NULL != fgets(buffer,CHARCOUNT,fPtr))
{
//如果只包含一上回车 begin
if(13 == buffer[0] && 10 == buffer[1])
{
//printf("% ......