首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

有关ADOQuery的有关问题

2012-02-23 
有关ADOQuery的问题大家好,偶还是菜鸟,最近刚开始学Delphi做数据库。遇到问题还请达人帮忙!我用ADOQuery查

有关ADOQuery的问题
大家好,偶还是菜鸟,最近刚开始学Delphi做数据库。遇到问题还请达人帮忙!
我用ADOQuery查询SQL   Sever中的表,连接和访问都没问题,怀疑是SQL语句存在错误。用了TreeView控件来限制查询条件。

具体代码
with     ADOQuery1   do
          begin
          Close;
          SQL.Clear;
          SQL.Add( 'select   *   from   BSSJ   where   ZY=:a   and   XY=:b   and   NJ=:c ');
          Parameters.ParamByName( 'a ').Value:=trim(treeview1.Selected.Text);
          Parameters.ParamByName( 'b ').Value:=trim(treeview1.Selected.Parent.Text);
          Parameters.ParamByName( 'c ').Value:=trim(treeview1.Selected.Parent.Parent.Text);

              //Parameters.ParamByName( 'a ').Value:= '计算机科学与技术 ';
              //Parameters.ParamByName( 'b ').Value:= '信息工程 ';
              //Parameters.ParamByName( 'c ').Value:= '2001 ';

          Open;
          showmessage( '当前的节点内容为: '+Treeview1.Selected.Text);
          end;

很奇怪,结果总是没有符合条件的记录,但是我如果用//的3句语句来代替之前的3句,则有记录出现。所以我怀疑trim(treeview1.Selected.Text)是不是表达不规范啊?对了ZY和XY都是varchar类型的!

[解决办法]
你這樣調試:
因為這樣
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add( 'select * from BSSJ where ZY=:a and XY=:b and NJ=:c ');
Parameters.ParamByName( 'a ').Value:= '计算机科学与技术 ';
Parameters.ParamByName( 'b ').Value:= '信息工程 ';
Parameters.ParamByName( 'c ').Value:= '2001 ';

Open;
showmessage( '当前的节点内容为: '+Treeview1.Selected.Text);
end;
可以出結果。所以你改一下

======1========
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add( 'select * from BSSJ where ZY=:a and XY=:b and NJ=:c ');
Parameters.ParamByName( 'a ').Value:=trim(treeview1.Selected.Text);
//Parameters.ParamByName( 'b ').Value:=trim(treeview1.Selected.Parent.Text);
//Parameters.ParamByName( 'c ').Value:=trim(treeview1.Selected.Parent.Parent.Text);

//Parameters.ParamByName( 'a ').Value:= '计算机科学与技术 ';
Parameters.ParamByName( 'b ').Value:= '信息工程 ';
Parameters.ParamByName( 'c ').Value:= '2001 ';

Open;
showmessage( '当前的节点内容为: '+Treeview1.Selected.Text);
end;

==========2=======================

with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add( 'select * from BSSJ where ZY=:a and XY=:b and NJ=:c ');
Parameters.ParamByName( 'a ').Value:=trim(treeview1.Selected.Text);
Parameters.ParamByName( 'b ').Value:=trim(treeview1.Selected.Parent.Text);
 //Parameters.ParamByName( 'c ').Value:=trim(treeview1.Selected.Parent.Parent.Text);

//Parameters.ParamByName( 'a ').Value:= '计算机科学与技术 ';
//Parameters.ParamByName( 'b ').Value:= '信息工程 ';
Parameters.ParamByName( 'c ').Value:= '2001 ';

====3==
。。。。調試一下,到底是哪一項導致問題的。

热点排行