这个错误怎么解决?-----"[OLE/DB provider returned message: 既不支持隔离层,也不支持加强型。]"

ytuliangzi 2004-12-22 04:35:07
今天写程序时遇到这个问题.
2004-12-22 16:27:14
Exception:-2147217900未能为 OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 启动事务。
[OLE/DB provider returned message: 既不支持隔离层,也不支持加强型。]
SQL :delete from 字典_产品;
insert into 字典_产品 (编码,名称 ) SELECT 编码,名称 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','H:\Datadb.mdb';'admin';'',字典_产品) ;
...全文
323 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ytuliangzi 2004-12-23
  • 打赏
  • 举报
回复
这个错误是在连续执行多个SQL语句时出现的。
我发现把执行各语句的时间间隔加长,错误就少了
ytuliangzi 2004-12-23
  • 打赏
  • 举报
回复
有没有大侠 帮我看看
NinGoo 2004-12-22
  • 打赏
  • 举报
回复
SET TRANSACTION ISOLATION LEVEL
控制由连接发出的所有 Microsoft® SQL Server™ SELECT 语句的默认事务锁定行为。

这个好像只对select有用,呵呵

你的问题不知道什么原因,继续找
NinGoo 2004-12-22
  • 打赏
  • 举报
回复
631799(杭州工人) ( ) 信誉:97 2004-12-22 18:30:00 得分: 0


楼上,抢分专家啊。哈哈~~


===〉你也不赖啊,呵呵。不知道能不能在2004年里变成猩猩
ytuliangzi 2004-12-22
  • 打赏
  • 举报
回复
SQL :delete from 字典_部门类型;
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
BEGIN TRANSACTION
insert into 字典_产品 (编码,名称 ) SELECT 编码,名称 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','H:\代码测试\数据库\Win数据库维护\bin\Datadb.mdb';'admin';'',字典_产品) ;
COMMIT TRANSACTION

这样还是一样的错误
Exception:-2147217900未能为 OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 启动事务。
[OLE/DB provider returned message: 既不支持隔离层,也不支持加强型。]
631799 2004-12-22
  • 打赏
  • 举报
回复
楼上,抢分专家啊。哈哈~~
NinGoo 2004-12-22
  • 打赏
  • 举报
回复
试一下设置ISOLATION

参考
http://p2p.wrox.com/topic.asp?TOPIC_ID=4971
NinGoo 2004-12-22
  • 打赏
  • 举报
回复
SET TRANSACTION ISOLATION LEVEL
控制由连接发出的所有 Microsoft® SQL Server™ SELECT 语句的默认事务锁定行为。

语法
SET TRANSACTION ISOLATION LEVEL
{ READ COMMITTED
| READ UNCOMMITTED
| REPEATABLE READ
| SERIALIZABLE
}

参数
READ COMMITTED

指定在读取数据时控制共享锁以避免脏读,但数据可在事务结束前更改,从而产生不可重复读取或幻像数据。该选项是 SQL Server 的默认值。

READ UNCOMMITTED

执行脏读或 0 级隔离锁定,这表示不发出共享锁,也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。

REPEATABLE READ

锁定查询中使用的所有数据以防止其他用户更新数据,但是其他用户可以将新的幻像行插入数据集,且幻像行包括在当前事务的后续读取中。因为并发低于默认隔离级别,所以应只在必要时才使用该选项。

SERIALIZABLE

在数据集上放置一个范围锁,以防止其他用户在事务完成之前更新数据集或将行插入数据集内。这是四个隔离级别中限制最大的级别。因为并发级别较低,所以应只在必要时才使用该选项。该选项的作用与在事务内所有 SELECT 语句中的所有表上设置 HOLDLOCK 相同。

注释
一次只能设置这些选项中的一个,而且设置的选项将一直对那个连接保持有效,直到显式更改该选项为止。这是默认行为,除非在语句的 FROM 子句中在表级上指定优化选项。

SET TRANSACTION ISOLATION LEVEL 的设置是在执行或运行时设置,而不是在分析时设置。

示例
下例为会话设置 TRANSACTION ISOLATION LEVEL。对于每个后续 Transact-SQL 语句,SQL Server 将所有共享锁一直控制到事务结束为止。

SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
GO
BEGIN TRANSACTION
SELECT * FROM publishers
SELECT * FROM authors
...
COMMIT TRANSACTION

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧