当前位置:主页>销售管理软件> 列表

关于Adodataset带参数的问题! 找用友财务软件官网

销售管理软件版1楼: 其中str1,str2是变量!
adodataset1.Close;
adodataset1.CommandText:=(''select * from bas14 where :s1 = :s2'');
adodataset1.Parameters.ParamByName(''s1'').DataType:=ftstring;
adodataset1.Parameters.ParamByName(''s1'').Value:=''+str1+'';
adodataset1.Parameters.ParamByName(''s2'').Value:=str2;
adodataset1.Open;
运行时查询不出值来,而直接这样写却可以,为什么?
adodataset1.CommandText:=(''select * from bas14 where ''+str1+'' = :s2'');

2楼: String類型參數在實際轉成SQL語句時會帶上單引號,假如str1=''FieldName'',str2=''clwlyc'',轉換出來應該是這樣:
select * from bas14 where ''fieldName''=''CLWLYC'',這肯定是錯誤的. 如批发零售软件

3楼: adodataset1.Parameters.ParamByName(''s1'').Value:=''+str1+'';將這~{>dSP~}語~{7(~}錯誤~{5CP^8D~}為adodataset1.Parameters.ParamByName(''s1'').Value:=str1;~{>M?IRTAK!#~}

4楼: adodataset1.Parameters.ParamByName(''s1'').Value:=str1
我这样试过了也不行的!

5楼: adodataset1.Close;
adodataset1.CommandText:=(''select * from bas14 where :s1 = :s2'');
adodataset1.Parameters.ParamByName(''s1'').DataType:=ftstring;
adodataset1.Parameters.ParamByName(''s1'').Value:=''+str1+'';
adodataset1.Parameters.ParamByName(''s2'').Value:=str2;
adodataset1.prepare; //加上这句试试
adodataset1.Open;

6楼: 建议楼主不要用动态赋值语句,这样容易产生莫名其妙的错误

销售管理软件版7楼: 那要怎么做?那两个地方要动态变化,我是用来做查询的

8楼: adodataset1.CommandText:=format(''select * from bas14 where %s = %s'',[str1,QuotedStr(str2)]);

9楼: 要先create参数呀,然后才能赋值呀。adodataset1.Parameters CreateParameter() ;

10楼: ADOQUERY里SQL引号的用法
''''''+string1+'''''' //字符型变量

11楼: adodataset1.Close;
adodataset1.CommandText:=(''select * from bas14 where :s1 = :s2'');
adodataset1.Parameters.ParamByName(''s1'').DataType:=ftstring;
adodataset1.Parameters.ParamByName(''s1'').Value:=str1;
adodataset1.Parameters.ParamByName(''s2'').Value:=str2;

12楼: 自已搞定!
结贴~ 如用友财务软件官网