8

我需要连接到 Paradox 5.x 表才能选择和更新。我正在使用 OLEDBConnection。

从表中选择我没有问题。在尝试插入表时遇到问题,当我输入硬编码的字段名称时出现错误:INSERT INTO 语句包含以下未知字段名称:...所以我使用 OleDbDataReader.GetName(...) 获取字段名字。现在我使用从表中获取的字段名称来插入表中,但我仍然得到同样的错误。

我认为问题在于字段名称:'Truck #1 Serial Number' 表名:'Vehicles'

我尝试使用 []、.""、.[] 和 .[""]。

我已阅读有关 Borland 引擎的需求,但我不确定这是问题所在。预先感谢。

-=诺姆=-

ps 我无法更改表的名称,因为它是我需要连接的演员数据库。

我添加了我使用的 C# 代码:

private static string createInsertQueryVehicle(string i_VehicleNumber, string i_VehicleMFG, string i_Truck1SerialNo, string i_Truck2SerialNo, string i_Truck3SerialNo)
        {
            string tryout = string.Format("INSERT INTO {0} ([{6}], [{7}], [{8}], [{9}], [{10}]) VALUES(RIGHT('{1}',10),'{2}','{3}','{4}','{5}')",
                TableName, Vnum, Vinfo, T1Serial, T2Serial, T3Serial, VnumFieldName, VinfoFieldName, T1SerialFieldName
                T2SerialFieldName,T3SerialFieldName);
            return tryout;
        }

最终试训举行:

INSERT INTO Vehicles ([Vehicle Number], [Vehicle Mfg], [Truck #1 Serial Number], [Truck #2 Serial Number], [Truck #3 Serial Number]) VALUES(RIGHT('000000010001525',10),'קרונות משא','ר40011_1','ר40011_2','')

编辑:只是想在最后添加我的解决方案:最后我能得到的最好的解决方案是使用访问作为连接点,使用链接表到悖论表,最后将其作为访问数据库处理.....希望它可以帮助某人。

4

3 回答 3

0

您需要使用带引号的标识符,同时在字段或表名称中具有特殊字符。双引号 ( ") 应该是您要查找的内容。

此外,我确实认为需要 Borland 数据库引擎才能与 Paradox 等 Borland 数据库一起工作。至少,这是我一直被告知的,尽管我从未体验过这样的架构,因为我在使用 Paradox 时使用的是 Delphi。

于 2010-12-06T15:19:27.197 回答
0

当您找到(有些复杂的)解决方案时......可能值得放置一个 ODBC 跟踪并查看 Access 如何传递导致问题的字段名称。它可能只是 paradox 接受的散列 (#) 或类似内容的转义序列。只是一个想法。

于 2011-06-03T16:01:15.313 回答
0

我能够通过创建一个包含数字符号 (col#) 的列的表 (Table1) 来重现该问题。喜欢:

INSERT INTO `Table1.db` (`col#`) VALUES ('a')

我在哪里运行这个 SQL 我得到这个错误:

The INSERT INTO statement contains the following unknown field name: 'col#'.  Make sure you have typed the name correctly, and try the operation again.

这似乎是 Microsoft JET 提供程序的错误。找到的唯一解决方法是将值插入另一列,例如

INSERT INTO `Table1.db` (`col1`) VALUES ('a')

然后更新 col# 列:

UPDATE `Table1.db` SET `col#` = col1

我发现 JET 提供程序存在其他问题。例如,如果表没有主键或密码保护,您将收到此错误错误:

Operation must use an updateable query.
于 2017-09-25T21:40:59.177 回答