程序用microsoft.jet.oledb.4.0连接ACCESS数据库 在XP系统中可以运行,但是在windows 7中运行就报错“多步 OLE DB 操作产生错误。请检查每个 OLE DB 状态值。没有工作被完成。”
windows 7现在又不支持microsoft.jet.oledb.4.0,有啥解决方法啊?

解决方案 »

  1.   

    网上看到的
    多步OLE DB操作产生错误。如果可能,请检查每个OLE DB 状态值。没有工作被完成--------------------------------------------------------------------------------    数据库采用MSSQL,在添加新记录到数据库里时,出错提示:“Microsoft OLE DB Provider for SQL Server错误80040e21;多步OLE DB操作产生错误。如果可能,请检查每个OLE DB状态值。没有工作被完成。/ff/cai/cjdetail.asp,行 199”。 
     
        引起这个问题的原因简单的说就是数据库的字段类型不匹配或者字符个数超出了数据库的字段的最大限制个数。例如自动编号字段的就不应该指定值;限制50个字符的字段你就不应该提交多于50个字符的字符串。    80040e21 -- 插入或更新时出现 ODBC 错误    当服务器尝试处理包含"更新记录"或"插入记录"服务器行为的页时,会出现此错误。数据库无法处理该服务器行为尝试执行的更新或插入操作。    可能的原因和解决方案如下:    该服务器行为正尝试更新数据库表的自动编号字段或者尝试在自动编号字段中插入记录。由于自动编号域由数据库系统自动填充,因此任何从外部用值填充这些域的尝试都会失败。 
        服务器行为正在更新或插入的数据对于该数据库字段而言是错误的类型,例如将日期插入布尔型(是/否)字段,将字符串插入数值字段,或者将格式不正确的字符串插入"日期/时间"字段。
        今天在做Oracle ODBC连接操作的时候出现了以上错误,网上查到的东西先保存在这里,看看是否有用。    今天求助同事“一地鸡毛”,他在写SQL语句的时候不用Select * 就可以了,不知道是不是iid自增字段是用序列的触发器做的原因……还有待考证。    后来才知道是 Oracle的连接方式的问题,如果用rs.open ……,2,2之类的就不存在这样的问题,呵呵,这个是Oracle比较严谨的地方,从SQL SERVER移植到Oracle就有不少问题,但是从Oracle反过来移植到SQL SERVER就没有问题。
      

  2.   

    madc不包括 Microsoft Jet、Microsoft Jet OLE DB Provider、Desktop Database Drivers ODBC Driver 或 Visual FoxPro ODBC Driver。
    程序的数据库连接是用microsoft.jet.oledb.4.0呢
      

  3.   

    我测试没问题
    1.delphi6+ado(microsoft.jet.oledb.4.0)+access编译后在win7中运行
    2.delphi2010++ado(microsoft.jet.oledb.4.0)+access在win7上编译运行
    查你程序的运行环境.(如权限等)
      

  4.   

    Win 7下修改本地文件需要系统管理员权限,看看是不是被阻止了。
      

  5.   

    我连接数据库的字符串:Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=KBBUIL.mdb;Mode=ReadWrite;Extended Properties="";Persist Security Info=False;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password=666666;Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=2;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on 
    Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False权限我试了 还是不行啊 实在找不出问题出在哪里
      

  6.   

    先在win7下用access打开你的数据库试试