问题标签 [tadoquery]
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.
delphi - 缺少运算符或分号错误消息
您好,我得到了一个带有以下代码的 SQL,
SELECT SUM (Travel_Cost)
从 Travel
WHERE Job_ID=:mcode
为了允许用户从传递给 SQL 的编辑组件中输入一个值,我也得到了以下代码,
我不断收到错误消息
“缺少运算符或分号”
当我尝试编译时,有什么建议吗?
delphi - Data type mismatch in criteria expression when changing adoquery.active
i have the following query
when i run the program it successfully lists all the project titles with the status 'In Progress' in a DBlookuplistbox, I have a button with the code:
adoqCurrentProjects is the name of the adoquery, however when i click the button the error message 'Data type mismatch in criteria expression' appears. I would have thought that if i changed the amount of records in the Project table with the status "In Progress" and clicked the button it would just list the new results in the DBlookuplistbox as it does when i restart the program, any suggestions?
delphi - 如何在delphi 2010中显示父类别?
好的,我正在使用 Embarcadero Delphi 2010。目前我正在使用flib.mdb
在该文件中命名的 Access 数据库文件,我创建了一个名为的表MCategory
,其中有 4(四)列命名:codecategory
作为文本和主键,parentcategory
作为文本,category
作为文本,notes
作为文本。
对于数据库连接,我使用 ADOConnection。对于查询,我使用 ADOQuery。对于表,我使用 ADOTable。
因为代码是使用前缀自动生成的,但对于示例,我使用常规数字作为字符串。
只有一个ROOT:codecategory="0" // parentcategory="" // category="ROOT"
不允许添加另一个ROOT(父类别为空的那个)
我的问题是如何重新屏蔽所有父类别,如下图所示?以及如何在 DBGrid 上查看它?
我应该使用递归吗?有什么简单的方法可以做到吗?
还有请在 Delphi 2010 中使用源代码.... ^^
delphi - 第二次执行 SQL 时出现 TADOQuery 错误
我TADOQuery
在 Windows XP 和 Windows7 操作系统上的 Delphi 7 中的组件出现了奇怪的行为。以下问题在 Windows7 操作系统上运行良好,但在 XP 操作系统上出现错误。
让我解释一下这个场景,我有一个 TADOConnection 组件和两个 TADOQuery 组件。TADOConnection 组件的ConnectionString
属性值如下:
我已经将角色/授予的权限应用于我登录到应用程序的用户 ID/密码。
Connection
我已经使用属性将 TADOConnection 组件连接到 TADOQuery 组件。
当我执行第一个 sql 时,它可以正常工作,没有任何错误,但是当我执行第二个 sql 时,我在 Windows XP 操作系统上遇到以下错误。
[Microsoft] [SQL Server Native Client 10.0] [SQL Server] 对对象“我的表名”、数据库“我的数据库名”、架构“dbo”的 SELECT 权限被拒绝
如果我在 Windows7 操作系统上执行相同的代码,它可以正常工作,没有任何错误。
任何人都可以关注可能缺少的内容或可能是什么问题吗?
我添加了“Persist Security Info = False;” 连接字符串如下:
现在,每当我使用 TADOQuery 组件执行 sql 时,我每次都需要编写以下语句,即使我在开始时已经设置了 TADOQuery 的“Connection”属性,但每次执行 sql 时仍然需要设置该属性。
但正如我所说,在 Windows7 上,无需更改 TADOConnection 组件的“ConnectionString”属性,也无需设置任何 TADOQuery 组件的“Connection”属性。
任何人都可以告诉你究竟要做什么?
如果您的应用程序太大并且需要在很多地方进行编码更改,有人会同意吗?那么测试工作呢?在所有地方都必须进行测试,对吗?
所以,我仍在寻找合适的解决方案。这个问题仍然没有答案。
如果有人有任何线索或提示或适当的解决方案,将不胜感激。
delphi - 如何使用 ADO 将值插入 Excel 文件?
我正在使用以下代码在 Excel 文件中插入值:
完全显示了以前的例程。
连接到 Excel 文件
谁能告诉我我做错了什么?
错误是“INSERT INTO 语句中的语法错误”。
delphi - 有没有办法找到谁触发了 TADOConnection 的 OnExecuteComplete 事件?
我正在尝试在 Delphi 7 中编写 ADO 数据库分析器。它是 Delphi 项目的一部分。
我正在使用OnExecuteComplete
事件,但在某些 PC 上我收到“MSADO15.DLL”访问冲突错误。
我研究并理解了一些win版本不兼容或损坏或有不同的版本..
当我使用“命令”的属性时发生了 AV 错误parameters[i].value
。然后我决定编写不同的类型,现在我需要一个对OnExecuteComplete
在 ADOConnection 中调用事件的对象的引用。如果我能达到它,问题就会得到解决。
我使用“命令”和“记录集”引用来比较通过此 ADOConnection 链接的所有 ADO 对象,但某些 ADO 对象没有记录集。有没有办法找到触发该事件的人?像发件人?
delphi - Delphi2005 - 在另一种方法中使用 TADOQuery 结果
由于代码冗余,我将常用的 ADOQuery 处理概括为一个自己的方法,该方法返回查询的 _RecordSet。现在,当我检查该方法中的查询结果时,它们检查正常。但是返回的_RecordSet 似乎为空或nil(异常:EOleException 'Item cannot be found in the collection to the specific name or ordinal.')从我收集的信息来看,我似乎需要返回查询的_RecordSet的克隆。到目前为止,我已经尝试使用
res := qr.Recordset.Clone(adLockUnspecified); Result := res;
,
TADOQuery.RecordSet._xClone()
方法
不成功,以及这些方法,其中没有一个有效(几个组件无法识别,我猜是版本差异)。
我用于查询的代码:
之前是否有人克服过这个问题并知道合适的答案,或者可以引导我找到有用的内容?
delphi - 连接到 SQL Server Compact Edition 时“对象已打开”
我希望有人可以帮助我解决这个问题,因为我正在扯掉我的头发。
我正在创建一个使用 SQL Server Compact 存储一组数据的应用程序。我正在使用 TADOQuery 连接到工作正常的服务器,并且我能够创建表并将值插入到数据库中。然后我可以在 Management Studio 中进行检查,以确保一切都已成功完成。
我遇到的问题是当我尝试从表中检索数据时。在 Management Studio 中,我可以执行标准 SQL 查询
这会愉快地返回一个包含存储在 components 表中的所有数据的表。
但是,当我使用 TADOQuery 在 Delphi 中执行此代码时,我收到“对象已打开”错误。我正在使用的代码如下。
这会导致“对象已打开”错误。
任何想法将不胜感激!
干杯,
阿里
更新
我更新了我的代码如下,但我仍然得到同样的错误。有任何想法吗?
sql-server-2008 - Delphi - 带有 UPDATE SQL 语句的 TADOQuery.RowsAffected 始终为 -1
我正在使用 TADOQuery 组件执行 SQL UPDATE 语句,并希望检查已更新的行数。UPDATE 语句执行良好,并且相应地修改了行,但 .RowsAffected 属性始终返回 -1。文档状态 -1 表示该语句有错误,但正如我所说,它执行得很好。我尝试在语句前加上 SET NOCOUNT OFF 但这没有任何区别。我的代码如下:
我正在使用 Delphi XE2,连接到 MS SQL Server 2008R2。
delphi - ClientDataSet 仅从 TADOQuery 传输部分数据
我有两个数据库,我需要确保一个数据库中的所有记录在另一个数据库中都有匹配的记录。我将这些称为 DB-SQL 和 DB-Legacy
如果两者都有 SQL 接口,这将很容易,但不幸的是,我只有这种类型的访问权限,另一个我有一个“查找记录/第一个/下一个”类型的接口。
我选择执行此任务的方法是通过以下代码将 DB-SQL 传输到客户端数据集:
这是基于http://www.podgoretsky.com/ftp/docs/Delphi/D5/dg/5_ds3.html#20536的代码
然后,这将允许我使用 First/Next 直到 EOF 迭代 DB-legacy,使用 FindKey 搜索 ClientDataSet 以确保 DB-Legacy 中的所有记录都存在于 DB-SQL 中。通过将 FoundInGIS 标记设置为 1,我可以按此值进行筛选,以查找 DB-SQL 中但 DB-Legacy 中没有的所有记录。
我的问题是我们的一个数据库比其他数据库大得多,有 3,310,510 条记录。lQuery 的记录数是正确的,但是在过程结束时 lDataSet 只有大约 2,500,000 条。
现在,我想使用 cds 来使用 FindKey 方法,TADOQuery 不支持该方法,但是如果它忽略了 1/3 的记录,它就没有多大用处了!我猜测 DataSetProvider 或 ClientDataSet 中的某处可能存在整数溢出,尽管如果是这样它不会引发异常,这有点顽皮!有没有其他人遇到过这种问题,有没有办法对其进行排序(也许通过以较小的块下载数据或使用另一种填充 CDS 的方式)?
在这种情况下,SQL-DB 是 Oracle,但代码也需要与 SQL-Server 一起使用,尽管我怀疑这是一个数据库问题。
编辑:我现在的行为略有不同。当我尝试从查询中删除一些字段时,它运行良好。所有字段都可以单独运行,但它无法处理所有字段(这支持我的溢出假设)。我现在是,但是偶尔会出现异常。例外是
这是一种误导,因为深入研究 Debug DCU 表明错误是由
在 TCustomClientDataSet.SetData (DBClient 行 1482)。这会引发 ESafeArrayError (AResult = -2147024882),它会变成“意外的变体或安全数组错误”,但它无法处理对 FormatStr 的后续调用。