问题标签 [advantage-database-server]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1551 浏览

asp.net - ASP.NET 与用于 .NET 的 Delphi 2007。无法加载文件或程序集...找到的程序集的清单定义与程序集引用不匹配

这是一个令人头疼的问题。这是交易。

在将使用 Delphi 2007 for .NET 构建的 ASP.NET 应用程序的 beta 副本部署到测试服务器时,我遇到了一个奇怪的问题。该应用程序无法启动,因为它无法加载我正在使用的 ADO.NET 数据提供程序的正确版本。

只有在 bin 目录中包含旧程序集的版本,应用程序才能运行。但是,我不想被这个旧的 .NET 数据提供者所束缚,所以我决心找到解决这个问题的方法。

我最初使用 .net 数据提供程序程序集作为 Copy Local 编译项目,这应该导致 Delphi 使用我在将其添加到项目管理器中的 References 文件夹时选择的该程序集版本的副本。我选择的实际程序集是 9.10.2.0 版本,这是与应用程序一起出现在 bin 目录中的程序集版本。但是,在运行时,应用程序试图绑定到同一程序集的早期版本 9.0.2.7。

(其实这个问题不管我有没有使用 GAC 版本的 Copy Local 都会出现,所以我觉得不是这个问题。)

在调查这个问题时,我创建了一个新项目,并添加了对 9.10.2.0 程序集的引用。尽管如此,.NET 2.0 配置实用程序和反射器都显示应用程序编译时引用了 9.0.2.7 程序集。

检查 GAC 我看到 9.0.2.7 和 9.10.2.0 版本都已注册。尝试删除 9.0.2.7 版本失败,因为该版本的提供程序仍在 GAC 中引用程序集。

我进入注册表并手动删除了对 9.0.2.7 提供程序的所有引用。然后,我能够将其从 GAC 中删除。这并没有改变什么。从现有应用程序中删除程序集,然后重新添加 9.10.2.0 版本,然后编译,仍然会导致错误的程序集信息被插入到应用程序中。和以前一样,创建引用 9.10.2.0 程序集的新应用程序不起作用,因为对 9.0.2.7 的引用仍被插入到可执行文件中。

我检查了 Delphi 库搜索路径。我还完全从机器中删除了旧程序集文件的每个实例(包括从 ASP.NET 临时文件目录中)。我仍然有问题。我尝试使用 Issam Ali 的 AppManifest 实用程序手动调整清单,但显然它不支持 Delphi 2007 for .NET 中的 ASP.NET 应用程序。

因此,GAC 不再包含对 9.0.2.7 的引用,在注册表中没有对它的引用,在项目或 Delphi 选项对话框中没有到旧提供程序目录的路径,旧提供程序程序集不在文件系统上,并且 9.0.2.7 不会出现在任何项目文件中。它也不会出现在 web.config、machine.config 或我检查的任何其他文件中。尽管如此,每当我引用 9.10.2.0 版本的程序集时,Delphi 坚持使用此版本的程序集。(是的,我重新启动了 Delphi,还重新启动了正在执行此开发的虚拟机。)

即使在卸载 9.10.2.0 数据提供程序(旧的已卸载)并重新安装后,将数据提供程序引用添加到应用程序会导致运行时应用程序尝试加载旧提供程序(即使没有对旧提供程序的引用显然保留在系统中)。

我尝试了其他解决方案(这里值得一提),但没有一个奏效。有人看到这个吗?我将继续解决这个问题,但我很想听听建议。我只是无法让 Delphi 停止将旧的程序集信息插入到项目中。

为了咧嘴笑,我包括了失败的错误日志。该日志基本上复制了我从融合日志中获得的信息。此日志来自我在从 GAC 中删除 9.0.2.7 程序集后创建的一个简单应用程序。请注意,它从一开始就在寻找旧版本的提供程序。

从以下位置加载的程序集管理器:c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll 在可执行文件 c:\windows\microsoft.net\framework\v2.0.50727\aspnet_wp.exe 下运行 --- 详细错误日志如下。

=== 预绑定状态信息 === LOG:User = TRAINING8A\ASPNET LOG:DisplayName = Advantage.Data.Provider,Version=9.0.2.7,Culture=neutral,PublicKeyToken=e33137c86a38dc06(完全指定) LOG:Appbase = file:///C:/Inetpub/wwwroot/TestAdsVer2/ LOG: Initial PrivatePath = C:\Inetpub\wwwroot\TestAdsVer2\bin

调用程序集:TestAdsVer2,Version=1.0.3572.17384,Culture=neutral,PublicKeyToken=null。

LOG:此绑定在默认加载上下文中开始。LOG:使用应用程序配置文件:C:\Inetpub\wwwroot\TestAdsVer2\web.config LOG:使用主机配置文件:c:\windows\microsoft.net\framework\v2.0.50727\aspnet.config LOG:使用机器配置文件来自 c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config。日志:后策略参考:Advantage.Data.Provider,Version=9.0.2.7,Culture=neutral,PublicKeyToken=e33137c86a38dc06 日志:尝试下载新 URL 文件:///c:/WINDOWS/Microsoft.NET/Framework/v2 .0.50727/临时 ASP.NET 文件/testadsver2/07545aea/3d068a5/Advantage.Data.Provider.DLL。日志:尝试下载新 URL 文件:///c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/testadsver2/07545aea/3d068a5/Advantage.Data.Provider/Advantage.Data.Provider .DLL。日志:正在尝试下载新的 URL 文件:///C:/Inetpub/wwwroot/TestAdsVer2/bin/Advantage.Data.Provider.DLL。警告:比较程序集名称导致不匹配:次要版本错误:无法完成程序集设置(hr = 0x80131040)。探测终止

这已经持续了很长时间,以至于我添加到 LanceSC 答案中的评论不再显示。但我做的事情是我想解决的一个有趣的项目。

这是我对 LanceSC 的最后两条评论

  1. 出现此行为的安装位于不再运行的 VM 中。我认识的另一位开发人员遇到了同样的问题。解决方案是放弃安装。我觉得这个 .NET 数据提供程序的特定版本的安装程序中的某些东西留下了一些产生问题的奇怪工件。此数据提供程序的任何其他版本都不会发生这种情况。我不再追求这个问题的答案。

  2. 说得太早了。我的一位同事今天(2010 年 3 月 5 日)遇到了同样的错误,同样的 .NET 数据提供程序 (9.0.2.1) 的版本稍早一些。他现在处于和我一样的位置。他无法使用任何版本的数据提供者运行他的应用程序,只能保存旧版本。该程序集被用作本地副本,旧版本不在 gac 中。使用他的机器,我们运行带有详细选项的运行 MSBuild。构建工作正常,没有错误。尽管如此,编译应用程序未能运行,未能找到旧版本的提供程序。

概括

我的同事辞职重新安装了 Delphi 2007(幸运的是,他在 VM 中工作,并且有第二个使用 Delphi 2007 的 VM,其中从未安装过有问题的 .NET 数据提供程序。这也是我的策略。

在这一点上,我得出结论,这个问题是无法解决的。尽管如此,我将把这个问题留待一周左右。如果在接下来的几周内没有提出可行的解决方案,我将关闭这个问题。

同时,我已要求我的同事将 VM 与行为不端的提供商一起保存,以便测试提出的任何解决方案或调查。

0 投票
1 回答
99 浏览

sql - 需要帮助解决查询(使用 datepart)


我们有一个应用程序,其中有很多人登录,问题是我想进行查询,通过它我可以计算在特定时间登录到系统的人数,例如 14 年上午 10 点/11 月 12 日。

上面的查询是使用 datepart 进行的,通过它我可以检查在上午 10 点签名或退出的人数。

例如,上面的查询在上午 10 点返回 10 人签名/退出,但它没有显示当前正在使用系统的人。

0 投票
3 回答
7968 浏览

sql-server - 将数据从 Advantage 数据库服务器传输到 SQL Server

我的客户正在使用 Advantage Database Server 并希望迁移到 SQL Server,但显然希望将他的所有客户数据作为升级到 SQL Server 的一部分。

我曾考虑编写一个应用程序来进行转移,但认为它可能比它的价值更麻烦。

你会推荐什么?

0 投票
1 回答
817 浏览

.net - Sybase Advantage 数据库服务器和 64 位 VFP OLE 提供程序

有谁知道 sybase ads vfp 提供程序是否工作在 64 位?目前,我们必须构建面向 x86 的 .NET 应用程序才能使用仅在 32 位中运行的 vfpoledb 提供程序。任何解决方案或建议将不胜感激。

0 投票
3 回答
1472 浏览

sql - Advantage 数据库中的分页

我正在创建一个在 Advantage Database 服务器上运行的 Web 应用程序,这不是我个人选择的武器,而是公司使用的。我有几个最终用户需要能够查看的大列表,但是我似乎找不到在 SQL 中对结果进行分页的方法。

Advantage 数据库有类似 LIMIT / OFFSET 的东西吗?如果没有,有什么建议可以解决这个问题吗?

先感谢您!

0 投票
2 回答
5644 浏览

python - 将 Sybase .ADT 文件自动转换为 SQL

我正在处理我获得的一些数据,这些数据是通过使用嵌入式 Advantage 数据库服务器的程序读取的。该程序不是我编写的,也没有我需要的所有功能。我想将此数据转换为不同的格式,以便我可以更自由地使用它,例如 MySQL。

我知道 Sybase 提供了一些工具,可以将单个本地数据库转换为 SQL,这非常好。这可以正常工作,除了该程序的作者为用户正在使用的每个新文档创建一个包含新数据库的新文件夹。因此,可能有 100 个单独的数据库文件夹,每个文件夹中都有 100 个 .ADT 文件。

我正在寻找一种方法来自动化将这些 .ADT 文件及其架构转换为其他任何内容的过程。我过去使用过的几乎所有其他格式都比较幸运,这个是最麻烦的。我不需要索引、视图或任何这些。我只需要将表格导出为另一种格式,以便我可以处理一些数据。

所以我在这里寻找的解决方案只是一种将单个 Advantage Database Server 本地数据库自动转换为 SQL 的方法。所以我有一个代表数据库的 .ADT 文件文件夹。

我在标签中包含了 Ruby 和 Python,因为使用其中一种脚本语言是理想的,但任何解决方案都会很棒。

我现在的路线是尝试使用 ODBC 驱动程序,但我遇到了麻烦,希望有一个更简单的解决方案。

谢谢!

追逐灰色

0 投票
1 回答
228 浏览

foxpro - 将 ADS OLEDB 用于 VFP 时,是否可以使用 VFP SQL 语法?

  • 示例连接字符串 Provider=Advantage.OLEDB.1;Data Source=c:\Bugtest;ServerType=ADS_LOCAL_SERVER; 表类型=ADS_VFP_TABLE
0 投票
5 回答
3811 浏览

sql-server - 优势数据库或 SQL Server

我有一个客户端,目前在其 PC 上使用本地 Advantage 数据库以及应用程序。他们正在考虑升级他们的设置以使多个应用程序运行与数据库服务器即/客户端-服务器环境进行通信。

他们现在正在考虑采用这种方法的最佳数据库。他们将 Advantage Database Server 产品与 SQL Server Express 进行比较(该应用程序现阶段不保证完整的 SQL Server)。

显然 SQL Server 是一个更知名的产品,可能有更多的支持,但我希望你能给我一些意见和想法,你认为最好的产品在性能、稳定性和支持方面是什么。

需要注意的一件事虽然没有直接相关性,但该应用程序当前是用 Delphi 编写的,并且可能会迁移到 C# 以使其保持最新状态。

0 投票
1 回答
107 浏览

subsonic - 亚音速和优势数据库服务器

Subsonic 是否与 Advantage 数据库服务器一起使用,如果可以,是否有任何 TT 文件来生成必要的代码

0 投票
3 回答
726 浏览

nhibernate - Advantage 数据库 ORM 工具或代码生成器工具

有谁知道是否有针对 Advantage 数据库的 ORM 工具或代码生成工具?