问题标签 [dbdatareader]
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.
sql-server - DB_READER 的 SSMS 扩展表锁定超时
我有一个非常奇怪的问题。
如果具有public
和db_datareader
访问权限的用户尝试在 SSMS 17.2 中扩展表,他们会收到Lock request time out period exceeded. (Microsoft SQL Server, Error: 1222)
错误消息。
如果用户sysadmin
执行相同的操作,则操作按预期工作。
我在 SSMS 扩展返回以下代码的表时运行了分析器。
如果我以管理员身份运行此代码,它会在不到一秒的时间内完成。但是,当具有db_datareader
访问权限的用户运行它时,它需要 20 多秒才能执行。
可能是什么原因造成的?
编辑 1: @Dan Guzman 检查执行计划的建议是一个很好的建议。两个用户之间的执行计划是相同的,除了以下等待 db_datareader 用户:<Wait WaitType="LCK_M_SCH_S" WaitTimeMs="7868" WaitCount="1" />
。
对该数据库运行了一个大型 INSERT BULK 操作,但我不明白为什么锁会出现在一个用户而不是另一个用户上?
c# - hadoop DbDataReader.GetValue 获取错误的时间戳
我正在用C# 中的DbDataReader.GetValue查询一个 hadoop 集群。
问题是我在时间戳上得到了错误的值。
hdfs 文件中的值(以及通过配置单元查询时)是
1997-03-21 01:00:00
但是使用 DbDataReader.GetValue 我得到1997-03-21 00:00:00
1h偏移量。
知道可能是什么问题吗?
谢谢!
.net - DbDataReader 导致 OutOfMemoryException
我正在使用 DbDataReader (OracleDataReader) 类从 Oracle 数据库中读取数据。我在 Visual Studio 2010 中运行该程序,使用 64 位 Windows 10 Enterprise 笔记本电脑和 32GB RAM(20GB 免费),使用 .NET 3.5(升级到较新的 .NET 版本不是一种选择。应用程序本身是32 位应用程序(不是选择)。
代码看起来像这样:
堆栈跟踪:
我也多次跟踪此堆栈:
在这个测试用例中,我自己没有分配任何内存,我只是增加一个整数,但我仍然内存不足,这告诉我 DbDataReader 正在分配内存并且可能没有正确(或及时)释放它. 我试过手动进行垃圾收集,看看是否有帮助,但没有。我还研究了它崩溃的行是否包含太多数据并因此填满了剩余的内存,但这也没有加起来,因为在崩溃之前从其他行读取了更多的数据(并被丢弃) .
非常感谢任何想法/帮助,谢谢!
entity-framework-6 - 如何从具有实体框架的 DbDataReader 加载每个层次结构类型的表?
我尝试调用ObjectContext.Translate<T>
where T 是 table-per-hierarchy 实体的抽象基类型。如果 DbDataReader 正在流回基础表的所有列,我认为此方法将能够通过读取鉴别器列为其构造适当的子类型,但它会引发异常,说明它无法实例化抽象基类型. 如果它正常运行,它将尝试构造派生的可区分类型而不是基本类型。
这是该方法中的一个错误,还是有其他方法可以从数据读取器中读回每个层次结构的表类型?我需要从存储过程(特别是具有多个活动结果集的存储过程)返回每个层次结构的表实体,并且我似乎无法找到一种合适的方法来转换结果,同时观察数据模型映射和每个层次结构的表类型。
c# - SQLite(.NET),8字节双精度转换为“无穷大”而不是插入的double.MaxDouble?
我正在使用 SQLite .NET 库来保存双打
这是我的伪代码
然后我做一个选择:
但是 d 的值是double.PositiveInfinity
而不是double.MaxValue
,这可能是什么原因造成的?
c# - 延迟执行返回sql查询结果
我有一个执行 SQL 语句的方法,它返回我的类的一个实例,ResultSet
其中包含返回的行和列。我只想在调用者实际迭代结果时逐行读取数据。
为此,我尝试将 IEnumerable 传递给我的类的构造函数,但问题是 DbDataReader 实例在您尝试迭代实例的Rows属性时已经被释放ResultSet
:
我知道我可以将 DbDataReader 实例传递给我的类,而不是在Execute
方法中处理它,但是我必须ResultSet
一次性使用,如果可能的话,我想避免这种情况。我不确定我正在尝试做什么?
我在执行之前查看了 using() { } 块 Disposes 内的 yield return 语句,但它并不完全相同,因为它不涉及一次性资源。
c# - 转换列表到 DBDataReader
如何将 a 转换List<Person> personList
为DBDataReader
?
在下面给出的代码中,我正在尝试批量插入personList
. 我有大约 50 万条记录,该方法WriteToServer
需要一个 DBDataReader,我有一个List<Person>
. 我怎样才能转换List<Person>
为DBDataReader
\
sql-server - 使用具有 db_datareader 数据库角色的 SQL Server 帐户获取与特定数据库的当前连接数
我有一个在我的数据库 test_db 上设置了 db_datareader 数据库角色的帐户。
使用 SSMS 我使用此帐户(使用 SQL Server 身份验证)登录并打开一个新的查询窗口,以便通过执行以下查询来获取与 test_db 数据库的当前连接数:
其中 database_id = 6 对应于 test_db。
此查询返回单行而不是多行。
但是,从 SSMS 如果我使用没有设置 db_datareader 的另一个帐户(使用 Windows 身份验证)登录,如果我从 SSMS 打开一个新的查询窗口并键入上面指示的相同查询,我将获得与 test_db 数据库的所有当前连接(更多超过一排)。
为什么?我需要获取到 test_db 数据库的所有当前连接,而不仅仅是当前用户登录的单个连接(具有 db_datareader 数据库角色集的只读帐户)
c# - 将 GetFieldValueAsync 与 GetFieldType 中的类型一起使用
我有一个通用阅读器,我想将它从同步转换为异步。
原始代码是
没关系。我试图做的是
由于错误 CS0411 而无法正常工作
GetFieldValueAsync
无法从用法中推断方法“ ”的类型参数。尝试明确指定类型参数。
我也尝试指定类型, Type t = DR.GetFieldType(i)
但我也做不到await DR.GetFieldValueAsync<t>(i)
。
我在这里运气不好?
我应该在我的异步方法中恢复到以下阻塞代码吗?
是否有理论上的原因为什么没有DR.GetValueAsync(i)
返回像同步对应对象这样的对象?
小记,题外话
如果有人坚持要知道我为什么要为十进制编写不同的代码,这就是问题所在。