首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OleDbException:未实现函数

OleDbException:未实现函数
EN

Stack Overflow用户
提问于 2013-04-30 01:00:35
回答 3查看 1.3K关注 0票数 0

有人知道发生了什么吗?如果它确实删除了所有记录,但仍返回异常

代码语言:javascript
复制
    OleDbConnection dbConn = new OleDbConnection(@"Provider=vfpoledb;Data Source=C:\foxpro");

    try
    {
        dbConn.Open();
        using (OleDbCommand command = dbConn.CreateCommand())
        {
            command.CommandText = "execscript[('USE table in 0' + chr(13) + chr(10) + 'DELETE ALL')]";
            command.ExecuteNonQuery();       
        }            
    }
    catch (Exception ex)
    {
        Response.Write(ex.ToString());
    }
    finally
    {
        dbConn.Close();
    }

例外情况是:

代码语言:javascript
复制
System.Data.OleDb.OleDbException (0x80004005): Function is not implemented. at
System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr) at
System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) at 
System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) at
System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) at 
System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) at
System.Data.OleDb.OleDbCommand.ExecuteNonQuery() at backbuttonclicked.Page_Load(Object sender,
EventArgs e) in e:\MyProjects\programs\FujiDocumentsPrinting\backbuttonclicked.aspx.cs:line 31
EN

回答 3

Stack Overflow用户

发布于 2013-04-30 02:00:28

您可以尝试以下操作:

代码语言:javascript
复制
command.CommandText = "DELETE FROM tablename1";
command.ExecuteNonQuery();       

这也将从文件中删除所有记录。文件“tablename1.dbf”应放在“C:\foxpro\”文件夹中。否则,请在SQL命令文本中使用完整文件名。

票数 0
EN

Stack Overflow用户

发布于 2013-04-30 03:11:06

我已经用下面的代码成功地完成了这类工作:

代码语言:javascript
复制
 string connectionString = @"Provider=VFPOLEDB.1;Data Source=c:\foxpro"; 

    using (OleDbConnection connection = new OleDbConnection(connectionString)) 
    { 
        using (OleDbCommand scriptCommand = connection.CreateCommand()) 
        { 
            connection.Open();

            string vfpScript = @"SET EXCLUSIVE ON
                                USE table
                                DELETE ALL
                                PACK"; 

            scriptCommand.CommandType = CommandType.StoredProcedure; 
            scriptCommand.CommandText = "ExecScript"; 
            scriptCommand.Parameters.Add("myScript", OleDbType.Char).Value = vfpScript; 
            scriptCommand.ExecuteNonQuery(); 
        } 
    } 

DELETE ALL会将记录标记为已删除,但不会将其从表中删除。如果这是您想要的,那么删除PACK命令,该命令将从dbf中删除所有标记为已删除的记录。

票数 0
EN

Stack Overflow用户

发布于 2013-06-24 13:06:57

你的触发器中有一个try catch,这是一个没有实现的特性。今天也遇到了同样的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16284227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档