读书人

苦恼啊SQL查询无效!该怎么解决

发布时间: 2012-02-22 19:36:54 作者: rapoo

苦恼啊~~SQL查询无效!!!
程序顺利通过编译,而且也可以对数据表进行插入、修改和删除,可是偏偏就是不能查询,SQL语句没问题,ADO设置也没问题,可是为什么在点击查询按钮控件后GBGrid没有显示出查询结果(大部分的单表查询都出现这个问题)!只有唯独一个表可以进行查询,可是查询控件的程序都一样,ADO设置也一样,怎么有些可以,有些又不行呢?苦恼之极啊~~
现在例举其中一个表的查询代码,其他的都是类似的:
procedure TNurseForm.pdtj; //为查询条件赋值
begin
if ComboBox1.Text= '编号 ' then
tj:= 'NID ';
if ComboBox1.Text= '姓名 ' then
tj:= 'NName ';
if ComboBox1.Text= '住址 ' then
tj:= 'NAddess ';
if ComboBox1.Text= '电话 ' then
tj:= 'NPhones ';
if ComboBox1.Text= '证书 ' then
tj:= 'certificate ';
if ComboBox1.Text= '工资 ' then
tj:= 'pay ';
if ComboBox1.Text= '雇用日期 ' then
tj:= 'DateHired ';
end;

procedure TNurseForm.sbtLookClick(Sender: TObject); //执行查询
var
s:string;
begin
pdtj;
with DM.ADQNurse do
begin
close;
SQL.Clear;
s:= 'select * from nurse where %s = ' '%s ' ' ';
SQL.Text := format(S,[tj,edContest.Text]);
open;
end;
end;

这个十几个表中唯一一个成功的:
procedure TTreatmentForm.pdtj;
begin
if cmbTJ.Text= '项目名称 ' then
tj:= 'MsName ';
if cmbTJ.Text= '病人姓名 ' then
tj:= 'PatientName ';
if cmbTJ.Text= '医生姓名 ' then
tj:= 'PcName ';
if cmbTJ.Text= '治疗费用 ' then
tj:= 'cost ';
if cmbTJ.Text= '治疗时间 ' then
tj:= 'TreatTime ';
end;

procedure TTreatmentForm.sbtLookClick(Sender: TObject);
var
s:string;
begin
pdtj;
with DM.ADQTreatment do
begin
close;
SQL.Clear;
s:= 'select * from treatment where %s= ' '%s ' ' ';
SQL.Text:=Format(s,[tj,edContest.Text]);
OPen;
end;
end;

程序基本算法是一样的,可是为什么结果相差那么大????


[解决办法]
你查询的时候DBGRID是不是都是绑定到一个ADOQUERY上面了?
[解决办法]
同意楼上的,楼主应该只用了一个DBGrid
[解决办法]


建议lz将最终计算出来的SQL字符串取出来,放到查询分析器里运行以下试试,另外在看看数据控件的状态
[解决办法]
Format(s,[tj,edContest.Text]);
把这个的结果取出来在分析器里执行一下吧
[解决办法]
你查询的时候DBGRID是不是都是绑定到一个ADOQUERY上面了?
不是只用了一个DBGRID
而是所有的DBGRID可能都链接到一个datasource上面了,而datasource是不是全部链接到一个ADOQUERY(关键是这个)上面了?

读书人网 >.NET

热点推荐