问题标签 [jet]

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 投票
5 回答
3900 浏览

debugging - Microsoft JET SQL 查询日志或“如何调试客户的程序?”

问题:

我们使用我们最大的客户编写的程序来接收订单、预订运输和做其他与订单相关的事情。我们没有其他机会,只能使用该程序,当涉及到他们的程序问题时,客户非常不支持。我们只需要接受这个程序。

现在这个程序在有两个或更多用户使用时,大部分时间都非常慢,所以我试图在幕后寻找问题的根源。

到目前为止我发现的程序的一些要点:

  • 它是用 VB 6.0 编写的
  • 它使用一个受密码保护的 Access-DB (Access 2000 MDB),它位于一个用户机器上的一个文件夹中。
  • 该文件夹通过网络共享并由所有其他用户使用。
  • 它使用 msjet40.dll 版本 4.00.9704 与访问进行通信。我猜是ADO?

我还使用Process Monitor来监视文件访问,并找出程序如此缓慢的原因:即使程序处于空闲状态,它也在对 mdb 文件执行数千次读取操作。在网络上,这当然非常慢:

进程监视器跟踪 http://img217.imageshack.us/img217/1456/screenshothw5.png

真正的问题:

有没有办法监控负责读取活动的查询?我可以设置跟踪标志吗?挂钩 JET DLL 的?我猜该程序正在执行一些昂贵的查询,导致 JET 在此过程中读取大量数据。

PS:我已经尝试将mdb放在我们公司的文件服务器上,成功访问它甚至比通过本地共享还要慢。我还尝试更改客户端上的锁定机制(机会锁定),但没有成功。

我想知道发生了什么,需要为我们客户的开发人员提供一些确凿的事实和建议,以帮助他/她更快地完成程序。

0 投票
5 回答
6766 浏览

c# - 如何在没有互操作程序集的情况下创建 Microsoft Jet (Access) 数据库?

我需要在不使用 ADOX 互操作程序集的情况下创建一个访问 (mdb) 数据库。

如何才能做到这一点?

0 投票
3 回答
1939 浏览

sql-server - 如何创建指向字段名称中带有句点的 SQL Server 视图的 Jet ODBC 链接?

我需要创建一个从 Access 2003 (Jet) 数据库到 SQL Server 托管视图的 ODBC 链接,其中包含包含句点的别名字段名称,例如:

在视图后面的 SQL 源代码中,字段名称用方括号括起来......

...所以 SQL Server 不会抱怨创建视图,但是当我尝试从 Jet DB(以编程方式或通过 Access 2003 UI)创建指向它的 ODBC 链接时,我收到错误消息:

'Seq.Group' 不是有效名称。确保它不包含无效字符或标点符号,并且不要太长。

不幸的是,我无法修改视图的结构,因为它是另一个产品的一部分,所以我坚持使用字段名称的方式。我可以使用无标点符号的字段名称添加自己的视图,但我真的宁愿根本不修改 SQL Server,因为那样每次升级、修补程序等时,这都会成为另一个维护点。有谁知道更好的解决方法?

0 投票
13 回答
18656 浏览

sql - INSERT 语句后的@@IDENTITY 总是返回 0

我需要一个在数据库上执行 INSERT 语句并返回 Auto_Increment 主键的函数。我有以下 C# 代码,但是,虽然 INSERT 语句工作正常(我可以看到数据库中的记录,PK 生成正确并且行 == 1),但 id 值始终为 0。关于可能发生的任何想法错误的?

为了回应答案,我尝试了:

但我现在收到错误“SQL 语句结束后找到的字符”

我正在使用带有 OleDb 连接的 MS Access 数据库,Provider=Microsoft.Jet.OLEDB.4.0

0 投票
2 回答
4661 浏览

c# - 如何通过 OleDb 确定 MS Access 字段大小

现有应用程序使用 C#。在启动期间,应用程序调用一个虚拟方法来对数据库进行更改(例如,新修订可能需要计算新字段或其他内容)。打开的 OleDb 连接被传递到该方法中。

我需要更改字段宽度。ALTER TABLE 语句工作正常。但是如果字段已经是适当的大小,我想避免执行 ALTER TABLE 语句。有没有办法使用相同的 OleDb 连接来确定 MS Access 字段的大小?

0 投票
1 回答
3849 浏览

c# - System.Data.OleDb.OleDbException:互联网地址无效。如何使用 OleDb 连接到位于网络服务器上的 excel 文件

我正在尝试创建与位于 SharePoint 服务器上的 Excel 文件的 OleDb 连接。我目前正在使用的示例代码引发 OleDb 异常“无效的 Internet 地址”:

有人知道如何连接到网络服务器上的 Excel 电子表格吗?

更新

Microsoft 支持已回复我并同意无法连接到位于 Web 服务器上的 Excel 文件。Jet .40 和 news ACE(Access Connectivity Engine)都不支持这种操作模式。他们引用了知识库文章“在 Access 2000、Access 2002、Access 2003 和 Access 2007 中,FTP 或 HTTP 服务器帮助主题上的导入/链接数据不正确”

0 投票
2 回答
5714 浏览

.net - 从 .NET 向 Access (Jet) 表添加列

我们的应用程序(已部署)正在使用 Access/Jet 数据库。我们软件的即将发布的版本需要在其中一个表中添加一些额外的列。我需要先检查这些列是否存在,如果不存在则添加它们。

有人可以提供一个快速的代码示例、链接或朝着正确的方向轻推吗?

(我使用的是 c#,但 VB.NET 示例也可以)。

0 投票
2 回答
226 浏览

ms-access - Jet(Access) DB 和基于表达式的列?

我偶尔会在一个旧项目上工作,它使用经典的 asp 作为前端,使用 access 数据库作为后端。

我想在其中一个表中创建一个新列,其中包含从行中的其他列计算其值的逻辑。

我知道如何在更现代的 DBMS 中做到这一点,但我认为访问不支持它。请记住,我没有使用访问前端,只是通过 ODBC 使用 Jet DB 引擎。

任何指针?

0 投票
2 回答
9300 浏览

sql - 在 ACCESS 中添加一个具有默认值的字段

我想使用 Visual C++ 代码插入一个具有默认值的新字段。我写了这个:

但这是不正确的。我该怎么做呢?你们中的某个人可以给我写正确的代码吗?

0 投票
3 回答
3206 浏览

odbc - x64 OS下使用C#查询Jet Databases/Excel文件

因此,我了解到用于查询 Microsoft Access MDB 文件和 Excel 电子表格等数据源的Microsoft.Jet.OLEDB.4.0数据提供程序在 Windows 64 位操作系统下不起作用。

我现在应该使用什么来查询 .NET 3.5 (C#) 应用程序中的这些文件类型,以确保在 x86 和 x64 环境中的兼容性?我已经搜索了互联网,但似乎无法找到关于如何处理这种不兼容性的直接答案。

我还尝试过使用 ODBC 提供程序和 MSDASQL 提供程序,但没有成功,因为它们似乎会抛出与 Microsoft.JET.OLEDB.4.0 提供程序在 x64 环境中使用时相同的异常(除非我在做一些公然错误的事情)这两个提供程序,即使它们在我的 Windows XP x86 环境下运行良好)。

我发现有人说我需要在 x64 系统中使用%WINDIR%\System32\odbcad32.exe进行 ODBC 连接,但我知道如何使用它。

在 x64 下抛出的示例异常:

************** 异常文本 ************** System.InvalidOperationException:“Microsoft.Jet.OLEDB.4.0”提供程序未在本地机器。在 System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString constr, DataSourceWrapper& datasrcWrapper) 在 System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) 在 System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo、DbConnectionPool 池、DbConnection owningObject)