delphi 编程 DBGrid 不显示内容Query中的

procedure TForm1.Button1Click(Sender: TObject);
begin
form1.Query1.Close;
form1.Query1.SQL.Clear;
//
form1.Query1.SQL.Add('select claimno from c_claim where telephone = ''');
form1.Query1.SQL.Add(edit1.Text);
form1.Query1.SQL.Add(''' union select claimno from c_claim where mobile = ''');
form1.Query1.SQL.Add(edit1.Text);
form1.Query1.SQL.Add(''';');

//form1.Query1.SQL.Add('select claimno from c_claim where telephone= ''');
//form1.Query1.SQL.Append(edit1.Text +''' union select claimno from c_claim where mobile = ''');
//form1.Query1.SQL.Append(edit1.Text +''';');
//form1.edit2.text := form1.Query1.SQL.Text;

Try
Query1.Active;
Query1.Prepare;
Query1.Open;
Except
Query1.ExecSQL;
End;
form1.DBGrid1.Refresh;
end;

查询过后 DBGrid能显示claimno 这个字段 但是里面没有值
我在informix数据库里面看到是有值的

procedure TForm1.Button1Click(Sender: TObject);
begin
form1.Query1.Close;
form1.Query1.SQL.Clear;
//
form1.Query1.SQL.Add('select claimno from c_claim where telephone = ''');
form1.Query1.SQL.Add(edit1.Text);
form1.Query1.SQL.Add(''' union select claimno from c_claim where mobile = ''');
form1.Query1.SQL.Add(edit1.Text);
form1.Query1.SQL.Add('''');

//form1.Query1.SQL.Add('select claimno from c_claim where telephone= ''');
//form1.Query1.SQL.Append(edit1.Text +''' union select claimno from c_claim where mobile = ''');
//form1.Query1.SQL.Append(edit1.Text +'''');
//form1.edit2.text := form1.Query1.SQL.Text;

Try
Query1.Active;
Query1.Prepare;
Query1.Open;
Except
Query1.ExecSQL;
End;
form1.DBGrid1.Refresh;
end;

改成这样试试
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-07-15
把这两句注释掉看看
form1.Query1.SQL.Add(''' union select claimno from c_claim where mobile = ''');
form1.Query1.SQL.Add(edit1.Text);
第2个回答  2010-07-16
主要debug思路,查询条件有没有问题
第3个回答  2010-07-23
form1.Query1.SQL.Add('select claimno from c_claim where telephone = ''');
form1.Query1.SQL.Add(edit1.Text);
form1.Query1.SQL.Add(''' union select claimno from c_claim where mobile = ''');
form1.Query1.SQL.Add(edit1.Text);
form1.Query1.SQL.Add(''';');

改成以下写法:
var
ssql1:string;

ssql1:= ‘select claimno from c_claim where telephone = '''+ edit1.Text +’’’ union select claimno from c_claim where mobile = '''+ edit1.Text+’’’ ’;
form1.Query1.SQL.Add(ssql1);

如果还不行的话就要看看claimno的栏位长度,超过300好像DBGrid就显示不出来。。。

delphi中,为什么dbgrid不能显示memo字段里的内容.
MEMO字段内容太多,在表格中放不下,所以DBGRID没有这项功能。

delphi中,为什么dbgrid不能显示memo字段里的内容
因为dbgrid中的单元格的长度是受限的,估计在256或者128以内,而memo的长度为32768,dbgrid中自然不能显示memo的内容。

delphi dbgrid不能显示记录
1,你应该设定query的SQL属性是:select *from 学生表,而不是database的SQL属性;2,dbgrid的数据源设定了吗?(dbgrid的数据源对应的数据应该是query)3,with query do begin if active then active := False;\/\/如果激活,则不激活 query.active;\/\/激活它,就重新刷新了 end;...

delphi dbgrid只显示空白 我检查过ado datasoure 等连接都对的, dbgri...
双击DBGrid,看下是不是有添加到Columns,有的话全部删除后再试下 或者在Columns的FieldName中填入正确的字段名,你的查询中三个分别是用户,密码和权限

delphi里面DBGrid1CellClick不能显示字段值
怎么会出现这样的事呢?有时光标已经落在DBGRID中的话,第一击是不显示的.我遇到过.adoquery_find打开了没有 另外,检查一下组件搞对了没有,label组件放的很多,甚至在界面的其它页上,.label3是不是在当前界面上.DBGrid1里有没有数据.

关于delphi中DBGrid显示数据的问题。
表应该有个ID字段 query查询显示数据就是 order by id (可以是升序或者是降序)那新增以后 用query的 last 或者 first就能移动到新增的那个位置 query 的 Delete方法:删除数据集中的当前记录,并使当前记录指向下一条记录。所以你想显示上一行记录 只要 执行Delete 以后 执行 adoquery.Prior ...

...Delphi中DBGrid滚动条滚动式数据不能及时显示的bug
这不是BUG吧,应该是数据读取速度不够所致。记录太多时,不适合用DBGrid来显示。在使用DBGrid之前,应该用ADOQuery查询,加上比较苛刻的条件,这样查出来的记录就少得多,再用DBGrid显示,就不会出现“卡”的现象。

DELPHI 数据写入表里数据后为什么不能马上显示出来??需要退程序重进才可...
你的DBGRID的数据源没有设置为该ADOQuery2 ,可能是设置为其他数据集

delphi dbgrid显示数据
首先,dbgrid1的datasource属性设置为datasource1,datasource1的dataset属性设置为adoquery1,adoquery1的connection属性设置为adoconnection1 然后 procedure TForm1.Button1Click(Sender: TObject);var sqlstr:string;begin with adoconnection1 do begin try connected:=true;showmessage('连接数据库成功')...

delphi dbgrideh,加一列数据集中没有的字段
Editor,在Field Editor 右键->NewField,加入一个calculated类型的计算字段,然后,在数据集的OnCalcFields事件中加入如下代码:procedure TForm1.qry1CalcFields(DataSet: TDataSet);begin if Dataset[a]>DataSet[b] then DataSet[计算字段]:='大'else DataSet[计算字段]:='小';end;...

相似回答