关于TADODATASET的SELECT问题!请高手不吝赐教!(30分)

  • 主题发起人 主题发起人 TIDE_LIU
  • 开始时间 开始时间
T

TIDE_LIU

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在TADODATASET.COMMANDTEXT中实现类似于
SELECT * FROM TABLEA WHERE TABLEA.LABEL1=EDIT.TEXT;
的功能?
 
sqlstr:='select * from tablea wehre tablea.label1='+edit.text;
commandtext:=sqlstr;
tadodataset的属性commandtype默认就是cmdText

active为true
 
你了可以这样:
用参数动态传递EDIT.TEXT的值
AdoDataSet1.CommandText := 'Select * from Table Where Label1=:Value';
//
AdoDataSet1.Close;
AdoDataSet1.Params.ParamByName('Value').AsString := Edit1.Text;
AdoDataSet1.Open;
//
 
大家再来关注一下,
我使用
ADODATASET1.PARAMS
就报错!说是找不到这个参数!
为什么?
 
同意qiubole的说法
 
procedure DoAdoSql(CurADODS: TADODataSet; SSql: string);
var
oldcur: tcursor;
begin
oldcur := Screen.Cursor;
screen.cursor := crHourGlass;
try
if CurADODS.Active = true then CurADODS.Close;
CurADODS.CommandText := SSql;
CurADODS.Open;
finally
screen.Cursor := oldcur;
end;
end;
 
调用
var
ssql:string;
begin
ssql:='select 品名,日期,SUM(数量) from alljihuaserver group by 品名,日期 ';
ssql:=ssql+' HAVING (日期 = CONVERT(DATETIME,'+''''+datetimetostr(DateTimePicker3.date) + ''',102))';

doadosql(dm1.DSprtj, ssql)
 
上面可以了
参数是这样调用的
dataset.parameters.parambyname('参数名‘).value:=实际值
 
多人接受答案了。
 
后退
顶部