分类目录归档:网页技术

跟网页技术及编程相关的资料

ADO中使用事务处理功能

定义和用法

这三个方法与 Connection 对象使用,来保存或取消对数据源所做的更改。

注释:并非所有提供者都支持事务。

注释:BeginTrans、CommitTrans 和 RollbackTrans 方法在客户端 Connection 对象上无效。

BeginTrans

BeginTrans 方法可开始一个新事务。

CommitTrans

CommitTrans 方法可保存自最后一个 BeginTrans 方法调用以来的所有更改,并结束当前事务。它也可能启动新事务。

RollbackTrans

RollbackTrans 方法可取消自最后一次 BeginTrans 方法调用以来的所有更改,并结束该事务。它也可能启动新事务。

说明

对于支持嵌套事务的提供者,在打开的事务中调用 BeginTrans 方法将启动新的嵌套事务。返回值将指示嵌套层次:返回值为“1”指示打开了顶层事务(即此事务未嵌套在其他事务中),返回值为“2”指示打开了第二层事务(嵌套在顶层事务中的事务),依此类推。调用 CommitTrans 或 RollbackTrans 只影响最新打开的事务;在处理任何更高层事务之前必须关闭或回卷当前事务。

语法
level=objconn.BeginTrans()

objconn.BeginTrans

objconn.CommitTrans

objconn.RollbackTrans

转:SQL语句恢复数据库时一直显示“正在还原”

“RESTORE DATABASE ” + dbName + ” From disk='” + filePath + “‘ WITH REPLACE,NORECOVERY “;

dbName:数据库名

filepath:备份数据所在的路径名(包括文件名)

用上面的SQL语句还原备份数据库时,数据库的状态总是“正在还原”,使得不能对它进行其他操作。

 

解决方案:“RESTORE DATABASE ” + dbName + ” From disk='” + filePath + “‘ WITH REPLACE,RECOVERY “;

即:不用NORECOVERY,而用RECOVERY。

注:REPLACE也一定要的,不然就会出错的。(错误跟没有选择”覆盖原数据库“产生的错误是一样的)

EXCEL导入时,同一列中有数据和字符类型,出现导漏数据问题

问:在使用ASP的ADO导入EXCEL数据时,同一列数据中有文本及数字类型数据时,文本部份或数字部分的数据无法导入,但又没有报错,如何解决?直接读取EXCEL显示到ASP页面上,也是显示部份数据为空,如何解决?有没有直接打开EXCEL读取数据的方法?

这个是数据库驱动的原因造成的,你可以在数据库连接字符串中加上”IMEX=1″,如:strCon = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source = ” + Path + “;Extended Properties =’Excel 8.0;HDR=NO;IMEX=1′”; 说明:HDR=表示数据有无标题行(yes/no),IMEX=1通知驱动程序始终将“互混”数据列作为文本读取,在这里需要清楚的是,系统在判断该字段(列)到底是数值还是文本时,是通过该列的前8条记录是否有文本数据,有则该列作为文本读取,否则,即使后面的记录有文本,也还是按数值读取(导致文本为空)。 修改“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel”下的TypeGuessRows注册表值,可以将其改大些,如1000,这样在1000条记录前只要有文本,就不会出现文本为空的现象,具体情况要视你的数据而定。

提交表单到新窗口

很多人会用js函数 window.open(),但这个函数只能GET提交,不能POST提交。在我们开发的过程中往往经常用POST提交。
解决这个问题的思路是:先用window.open()打开一个新的窗口,然后在表单中指定提交的target为刚刚打开的窗口即可。
例子代码:
<form action=”?” method=”post” name=”test” target=”newWindow“>

<input type=”text” />

</form>

<script>

window.open(‘about:blank’,’newWindow‘,”);

document.test.submit();

</script>

document.onkeydown在IE9下的实现方法

以前在IE8之前,一直使用下面的代码,能够实现,当按下回车键时,光标自动移动到下一输入控件,但在IE9下无效,没有任何反应,直接提交了.


//当用户按下回车键时,取消提交动作
function document.onkeydown(){
if(event.keyCode==13 && event.srcElement.type!='submit' && event.srcElement.type!='textarea')
{
event.keyCode=9;
}
}

在网上查找后找到了结论,改为以下代码后在IE9下运行正常,在IE9的兼容模式下也运行正常了.


//当用户按下回车键时,取消提交动作
document.onkeydown=function doKey(){
if(event.keyCode==13 && event.srcElement.type!='submit' && event.srcElement.type!='textarea')
{
event.keyCode=9;
}
}