如何从DBGRID的某一列的某一行中输入一个字符串然后 回车,用输入的字符串做为参数,并在QUERY1的SQL中执行SELECT * FROM TABLE WHERE FIELD LIKE : 参数+'%'
我是在DBGRIDEH的ON KEY PRESS事件中用的
dm.Q_getsp.SQL.Add('select 0 as shl,spbh,spmch,shpgg,hshjj,shpchd from spkfk
where (spbh like :sp or zjm like :spzjm or spmch like :spm) ');
dm.Q_getsp.SQL.Add('and beactive=''是''');
dm.Q_getsp.ParamByName('sp').AsString:=dbgrideh_djdetail.Fields[4].text+'%'; //参数类型问题
showmessage(dbgrideh_djdetail.SelectedField.text+'%');
showmessage(dbgrideh_djdetail.SelectedField.DisplayText+'%');
showmessage(dbgrideh_djdetail.SelectedField.DefaultExpression+'%');
dm.Q_getsp.ParamByName('spzjm').AsString:=dbgrideh_djdetail.SelectedField.Text+'%';
dm.Q_getsp.ParamByName('spm').AsString:=dbgrideh_djdetail.SelectedField.Text+'%';
在SHOWMESSAGE时只能返回字段的名称或只有一个%
用dm.Q_getsp.ParamByName('spzjm').AsString:=dbgrideh_djdetail.SelectedField.value+'%';时DELPHI提示 Invalid variant type conversion
我应该用什么属性可方法把我要的字符串做为参数传给DELPHI 呢?请给一句代码。
我是在DBGRIDEH的ON KEY PRESS事件中用的
dm.Q_getsp.SQL.Add('select 0 as shl,spbh,spmch,shpgg,hshjj,shpchd from spkfk
where (spbh like :sp or zjm like :spzjm or spmch like :spm) ');
dm.Q_getsp.SQL.Add('and beactive=''是''');
dm.Q_getsp.ParamByName('sp').AsString:=dbgrideh_djdetail.Fields[4].text+'%'; //参数类型问题
showmessage(dbgrideh_djdetail.SelectedField.text+'%');
showmessage(dbgrideh_djdetail.SelectedField.DisplayText+'%');
showmessage(dbgrideh_djdetail.SelectedField.DefaultExpression+'%');
dm.Q_getsp.ParamByName('spzjm').AsString:=dbgrideh_djdetail.SelectedField.Text+'%';
dm.Q_getsp.ParamByName('spm').AsString:=dbgrideh_djdetail.SelectedField.Text+'%';
在SHOWMESSAGE时只能返回字段的名称或只有一个%
用dm.Q_getsp.ParamByName('spzjm').AsString:=dbgrideh_djdetail.SelectedField.value+'%';时DELPHI提示 Invalid variant type conversion
我应该用什么属性可方法把我要的字符串做为参数传给DELPHI 呢?请给一句代码。
IF KEY IN ['0'..'9','a'..'z'] then str:=str+key
else if key=#13 then
DO SOMETHING HERE
当然还要去掉其他非字符键和处理汉字可参考EHLIB中的代码,好象他的能定位元旦快乐!
我一定要用KEYPRESS
LD
回复JACKYSTAR
你能否告诉我用哪个属性?
我一定要用KEYPRESS
LD
回复JACKYSTAR
你能否告诉我用哪个属性?
先Q_getsp.Edit();
Q_getsp.Post()
where (spbh like :sp or zjm like :spzjm or spmch like :spm) ');
dm.Q_getsp.SQL.Add('and beactive=''是''');
//先确认DBGrideh_djdetail的输入
dbgrideh_djdetail.SelectField := dbgrideh_djdetail.Fields[0];
dbgrideh_djdetail.SelectField := dbgrideh_djdetail.Fields[4];
dm.Q_getsp.ParamByName('sp').AsString:=dbgrideh_djdetail.Fields[4].text+'%'; //参数类型问题
showmessage(dbgrideh_djdetail.SelectedField.text+'%');
showmessage(dbgrideh_djdetail.SelectedField.DisplayText+'%');
showmessage(dbgrideh_djdetail.SelectedField.DefaultExpression+'%');
dm.Q_getsp.ParamByName('spzjm').AsString:=dbgrideh_djdetail.SelectedField.Text+'%';
dm.Q_getsp.ParamByName('spm').AsString:=dbgrideh_djdetail.SelectedField.Text+'%';
回复:niat97222(Freeman) 我确认了字段。
if (key=#13) and ((dbgrideh_djdetail.SelectedField.FieldName='spbh') or (dbgrideh_djdetail.SelectedField.FieldName='spmch')) then
begin
showmessage(dbgrideh_djdetail.Fields[4].text+' %');
frm_getspjhrk:=tfrm_getspjhrk.Create(Application);
frm_getspjhrk.DBGrid_getsp.DataSource:=dm.DataSource_getsp;
dm.DataSource_getsp.DataSet:=dm.Q_getsp;
dm.Q_getsp.Active:=false;
dm.Q_getsp.DatabaseName:=dm.db.DatabaseName;
dm.Q_getsp.SQL.Clear;
dm.Q_getsp.SQL.Add('select 0 as shl,spbh,spmch,shpgg,hshjj,shpchd from spkfk where (spbh like :sp or zjm like :spzjm or spmch like :spm) ');
dm.Q_getsp.SQL.Add('and beactive=''是''');