我以前从来没有使用过线程,现在我正在尝试创建一个带有查询的线程来检查数据库状态。查询如下:
select (*) as DBCount from v$datafile where status in 'OFFLINE';。
此查询返回所有脱机数据库的总数。现在我想在Delphi中创建一个线程,当我运行它时,它将在我的应用程序的后台执行这个查询,并在标签上显示结果。
是否有人知道此错误的来源:
project xxxx.exe引发异常类EoleException,其中包含查询表达式“串行number=?”中的语法错误(缺少操作符)。
这是我在delphi中用ms数据库编写的实际代码。
with AddIndividualsAccountADOQuery do
begin
SQL.Clear;
SQL.Add('Select * from IndividualAccount where Serial Number=:Sno');
Parameters.ParamByName('Sno').Value:=ed
我在一个Delphi 7项目中使用unidac组件连接到一个SQLite数据库。连接和查询工作良好,但计算字段除外。
我的疑问是:
select c.CardID,
c.FirstName,
c.SurName,
c.Street,
c.City,
c.PostCode,
c.Points,
(select count(1) from FullCard f where f.CardID = c.CardID and f.Paid = 1) as PaidCards,
(select count(1) from FullCard
在Delphi中,我将字符串的crc32散列存储在SQlite数据库中的一个声明为整数的列中。我的理解是,SQlite不区分整数类型: int、int64、signed和unsigned,就数据库而言,它们都是相同的。但是,当我在Delphi中存储一个声明为longword的值时,WHERE子句稍后无法匹配该值。
我的insert语句(在这里删减)是:
INSERT INTO main VALUES (id, crc) (?, ?);
longword值被绑定到第二个参数,一切都很顺利。但当我这么做的时候
SELECT id FROM main WHERE crc = ?;
查询不返回任何结果
我尝试使用以下查询通过Delphi应用程序代码将多条记录插入到Oracle数据库中的单个表中:
将全部插入项目(f1,f2)值(v1,v2)插入项目(f1,f2)值(v3,v4)插入项目(f1,f2)值(v5,v6) SELECT * FROM DUAL
我将上面的查询语句添加到我的Delphi查询中,并运行qry.ExecSql。第一次执行得很好,我看到记录被添加到表中,但是当为下一次查询运行相同的代码时,我收到异常: ORA-03113: end-of-file on communication channel
可能的原因是什么?
我有一个Oracle9数据库,我的Delphi2006应用程序使用下面这样的SQL语句将数据从该数据库读取到TSimpleDataSet中(当然,实际上它更复杂):
select * from myschema.mytable where ID in (1, 2, 4)
我的应用程序在一天中经常启动并执行这个查询,每次在in子句中使用不同的值。
我的DBA已经通知我,这会在数据库服务器上产生额外的负载,因为查询在每次运行时都会被重新解析。他们建议使用,而不是在客户端构建SQL语句。
我很熟悉在Delphi中使用参数化查询,但从上面链接的文章中我得到的感觉并不完全是绑定变量。此外,我还需要这些准
我正在使用delphi和nexusdb开发一个数据库比较工具。我尝试使用查询将BLOB宽备忘录字段添加到表中。但是我找不到正确的数据类型。我试过跟踪查询。
ALTER TABLE Test ADD COLUMN TestField BLOBWideMemo;
ALTER TABLE Test ADD COLUMN TestField NATIONAL CHARACTER LARGE OBJECT;
ALTER TABLE Test ADD COLUMN TestField BLOB Wide Memo;
我有一个奇怪的问题,一个旧的Delphi应用程序失去了它的数据库连接。实际上,我认为它失去了其他东西,从而使连接要么下降,要么无法使用。该应用程序是用Delphi 6编写的,并使用Direct组件(v4.0.7.1)连接到Oracle 9i数据库。该应用程序作为服务运行,并定期使用TOracleQuery对象(qryAlarmList)查询数据库。为此调用的方法如下所示:
procedure TdmMain.RefreshAlarmList;
begin
try
qryAlarmList.Execute;
except
on E: Exception do
be