delphi SQL2008 R2 数据库不为空,但查询为空

delphi7.0与SQL2008数据库ADOConnection1连接正常,ADOQuery1查询为空,请叫是为什么?procedureTForm1.Button1Cl... delphi7.0与SQL2008数据库ADOConnection1连接正常,ADOQuery1查询为空,请叫是为什么?
procedure TForm1.Button1Click(Sender: TObject);
begin
form1.ADOQuery1.Close;
form1.ADOQuery1.Active:=false;
form1.ADOQuery1.SQL.Clear;
form1.ADOQuery1.SQL.Add('select * form HistoryReport');
form1.ADOQuery1.Prepared;

if not(adoquery1.IsEmpty) then
begin
ShowMessage('数据库不为空');
form1.ADOQuery1.open;
end
else
begin
ShowMessage('数据库为空');

end;
end;
展开
 我来答
司马刀剑
高粉答主

2018-05-22 · 每个回答都超有意思的
知道顶级答主
回答量:4.6万
采纳率:93%
帮助的人:7215万
展开全部
或者使用if adoquery2.RecordCount>0 then
if not(adoquery2.IsEmpty) then
begin
ShowMessage("此产品已存在");
exit;
end;
2、 SQL语句中引入参数之后,在执行SQL语句之前就必须给参数赋值。如何赋值呢?这就要用到ADOQuery组件的Parameters属性。该属性是一个下标从0开始的数组:
Parameters[0]、Parameters[1]、Parameters[2]、…、
其中的每个数组元素与ADOQuery组件的SQL语句中的参数相对应,例如要给SQL语句中的第一个参数赋值,可以执行如下语句:

ADOQuery1.Parameters[0].Value:=<参数值>

要给SQL语句中的第二个参数赋值,可以执行如下语句:

ADOQuery1.Parameters[1].Value:=<参数值>

以此类推 …

除了用Parameters[0].Value 、Parameters[1].Value 等来给SQL语句中的参数赋值外,还可以使用如下语句:

Parameters.ParamByName(<参数名>).Value:=<参数值>

来给参数赋值。例如,例Parameters[0].Value:=edit1.Text;可以改为:

Parameters.ParamByName(‘XianShi’).Value:=edit1.Text;

很明显,后一种方式比前一种更直观一些。

SQL命令中带有多个参数的情形

SQL命令中可以带有多个参数,例如:某个Query组件,为它编写如下的动态SQL语句:

Insert Into Customer(CustNo,Name,Country) Values(:CustNo ,:Name ,:Country)

对于上述这条动态SQL语句中的三个参数,可以利用Query的Params属性为参数赋值:

Query.Params[0].AsString:=”1998” ;

Query.Params[1].AsString:=”AAA” ;

Query.Params[2].AsString:=”China”;

上述语句将把“1998”赋给参数CustNo,“AAA”赋给参数Name,“China”赋给参数Country。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式