首页 > 解决方案 > 从 c#(.NET) 向 Visual Fox Pro db 插入记录时抛出的功能不可用异常

问题描述

如果我禁用 fox pro 表上的插入触发器,则从 c# 插入到 Fox pro db 的以下代码有效。

try
{
    string query = @"insert into TERMS (VENDOR,TERMINAL,TERM) values(?,?,?)";
    OleDbConnection sourceConn = new OleDbConnection(@"Provider=VFPOLEDB.1;Data Source=E:\repos\Database\log");
    using (OleDbCommand cmd = new OleDbCommand(query, sourceConn))
    {
        cmd.CommandType = CommandType.Text;
        cmd.CommandTimeout = 1000;
        OleDbDataAdapter sqlDataAdapter = new OleDbDataAdapter();
        sourceConn.Open();
        cmd.Parameters.AddWithValue("?", "sws1");
        cmd.Parameters.AddWithValue("?", "sa1");
        cmd.Parameters.AddWithValue("?", "ds1");
        cmd.ExecuteNonQuery();
        sourceConn.Close();
    }
}
catch (Exception ex)
{

}

如果我在 Fox pro 表中启用触发器,那么我收到错误为“功能不可用”在 fox pro 表上应用的插入触发器如下

insertlog("terms",RECNO(),"I")

我能够从 Visual Fox pro 将记录插入到 fox pro 表中,并且触发器可以将日志记录添加到其他表中。

感谢您对此的任何提示。

标签: c#.nettriggersoledbfoxpro

解决方案


Insertlog() 函数中是否有 OLEDB 驱动程序不支持的代码?如果您有 Visual FoxPro,则在帮助文件中查找“OLE DB 提供程序中不支持的 Visual FoxPro 命令和函数”并检查您的触发器代码。


推荐阅读