gpt4 book ai didi

c# - 使用特定的 Langdriver 在 .Net 中编写 Paradox 表

转载 作者:太空宇宙 更新时间:2023-11-03 16:34:55 26 4
gpt4 key购买 nike

我正在尝试使用 C# 在悖论表中添加值。

重点是该表包含本地化字符串,BDE 需要 Langdriver ANSII850。

我试图在 .Net 中同时使用 OLEDB 和 Odbc 驱动程序,但我无法在我的数据库中写入正确的值。我总是遇到编码问题。

例子:

// ODBC Connection string (using string.Format for setting the path)
string connectionBase = @"Driver={{Microsoft Paradox Driver (*.db )}};DriverID=538;Fil=Paradox 5.X;DefaultDir={0};CollatingSequence=ASCII;";

// I tried to put the langdriver in the CollatingSequence parameter
string connectionBase = @"Driver={{Microsoft Paradox Driver (*.db )}};DriverID=538;Fil=Paradox 5.X;DefaultDir={0};CollatingSequence=ANSII850;";

// I tried the OleDb driver
string connectionBase = @"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Paradox 5.x;"Data Source={0};";

然后,我尝试插入值“çã á çõ”以进行测试。根据我使用的驱动程序,我得到不同的结果,但最终的字符串从未正确编码。

已编辑:

最后,我找到了一个解决方案,但并不理想:

  • 我可以通过调用用 delphi 编写的外部可执行文件从一个 langdriver 切换到另一个。在本例中,我使用的是 ANSII850。
  • 然后,我就可以从悖论表中读取数据了。但我的数据格式仍然不正确。
  • 表中的字符串也未使用代码页 850 进行编码,尝试使用 .Net 工具对其进行解码是行不通的
  • 相反,我手动跟踪特殊字符(未正确读取)并将它们替换为正确的 utf8 字符。
  • 对于写作,我做的恰恰相反。

它有效,但仍然不理想。

最佳答案

您确定您使用的是 BDE 吗?您的示例涉及很多 Microsoft 部分。

BDE 使用这些“特殊字符”的高级代码和代码页来解释它们。看起来 850 是您认为正确的值。如果您可以将包含所需字符的十六进制或十进制的字符串发送到 bde,您也许能够看到它是否会正确打印。

关于c# - 使用特定的 Langdriver 在 .Net 中编写 Paradox 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9409620/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com