我的这段程序为什么会出错?(40分)

  • 主题发起人 主题发起人 woshilu
  • 开始时间 开始时间
W

woshilu

Unregistered / Unconfirmed
GUEST, unregistred user!
我用deplhi开发c/s结构的程序,为什么运行时出现错误提示:"Capability not supported"?

procedure Tmodelmanage.RadioGroup2Click(Sender: TObject); //条件选择输入
begin
DataModule8.Query2.Close;
DataModule8.Query2.SQL.Clear;
DataModule8.Query2a.Close;
DataModule8.Query2a.SQL.Clear;
case RadioGroup2.ItemIndex of
0: begin
DataModule8.Query2.SQL.Add('select * from pdmmodel where programmer=:ev' ) ;
DataModule8.Query2a.SQL.Add('select count(*) as cnt from pdmmodel where programmer=:ev' ) ;
end;


1:
begin
DataModule8.Query2.SQL.Add('select * from pdmmodel where designer=:ev' ) ;
DataModule8.Query2a.SQL.Add('select count(*) as cnt from pdmmodel where designer=:ev' ) ;
end;
2:
begin
DataModule8.Query2.SQL.Add('select * from pdmmodel where sdate=:ev' ) ;
DataModule8.Query2a.SQL.Add('select count(*) as cnt from pdmmodel where sdate=:ev' ) ;
end;

3: begin
DataModule8.Query2.SQL.Add('select * from pdmmodel where modelname=:ev' );
DataModule8.Query2a.SQL.Add('select count(*) as cnt from pdmmodel where modelname=:ev' );
end;
4: begin
DataModule8.Query2.SQL.Add('select * from pdmmodel where modeltype=:ev' );
DataModule8.Query2a.SQL.Add('select count(*) as cnt from pdmmodel where modeltype=:ev' );
end;
5: begin
DataModule8.Query2.SQL.Add('select * from pdmmodel where modelin=:ev' );
DataModule8.Query2a.SQL.Add('select count(*) as cnt from pdmmodel where modelin=:ev' );
end;
end;

end;
procedure Tmodelmanage.Button1Click(Sender: TObject);

begin

DataModule8.Query2.Params[0].AsString:=Edit1.Text;

DataModule8.Query2.Open;

DataModule8.Query2a.Params[0].AsString:=Edit1.Text;

DataModule8.Query2a.Open;
Label8.Caption:=DataModule8.Query2a.FieldByName('cnt').AsString; }
//except
// ShowMessage('检查输入条件值了吗');
//end;
end;

 
补充说明:我的意图是“根据radiogroup种选择的条件和edi中的值同时显示查询和统计结果。
 
出这个错的原因一般是当前数据库不支持你的调用。
这里主要疑点在于你的SQL语句。Count(*) as cnt ... where ...单独取出来这个试验一下。
估计你使用的是paradox数据库。
 
我用的是sqlsever 2000,单独取出来时好使
 
SQL Server 2000?那就不应该是SQL的问题,这些都支持的。
刚才看了一下,你增加的多选并没有问题,只是有一点点漏洞,case raduigroup.itemindex of 如果没有选择的时候会出错的。
使用F7或者F8跟踪调试一下,看在那里出错?
看一下出错的时候对应Query的SQL.Text的值?
 
我用bde连接odbc,+sqlsever2000.!
 
那看看是否字段类型不符合呀?
 
DataModule8.Query2.SQL.Add('select * from pdmmodel where modelin=:ev' );
query中的变量能这样写吗?
如果不是这个原因的话,你就跟踪一下,看看sql语句是否正确;
 
DataModule8.Query2.Params[0].AsString:=Edit1.Text;

DataModule8.Query2.Open;

DataModule8.Query2a.Params[0].AsString:=Edit1.Text;

我觉得是这几句话的问题!
 
根据错误提示是驱动不支持你所写的代码的某些功能或者是数据库不
支持,具体是哪样自己做个判断!:)
 
'select * from pdmmodel where modelname=:ev'是不是应该这样:
'select * from pdmmodel where modelname='+'''+:ev+'''
 
你可不可以先定义两个字符串变量,在RadioGroup2Click中给这两个字符串赋值,然后在
Button1Click中再传给Query,接下来再检查对否。
 
可能是我的参量有问题,就是那个
:ev变量,两个可能冲突了,应该用两个变量值,catchan的建议很有道理,
我这段程序用别的方法解决了,要不可以验证一下,谢谢大家,
谁还有高见吗?
 
你好象没有
case RadioGroup2.ItemIndex of
-1:begin
end;
 
后退
顶部