请教各位高手?这是什么问题(0分)

  • 主题发起人 主题发起人 编程人
  • 开始时间 开始时间

编程人

Unregistered / Unconfirmed
GUEST, unregistred user!
这条语句哪里错了,请指教:
sq.sql.add('select * from jxjh where specialty_year='+quotedstr(cc)+'department_name='+quotedstr(aa));
提示是:general sql error
为什么我下面这句话总是出错:这种查询方式不对吗?
sq.sql.add('select * from jxjh where (specialty_year=:cc) and (department_name=aa)');
系统提示信息:
sq:field 'cc' if of an unknown type.
这是什么原因,请各位指教.

 
1、
sq.sql.add('select * from jxjh where specialty_year='''+quotedstr(cc)+''' department_name='''+quotedstr(aa))+'''';
2、:cc是参数,需要赋值的。使用paramByname赋值
 
同意楼上的说法!
 
建议用下面的方法写query.sql
S:='select * from table1 where field1='+strTemp;
close;sql.clear;
sql.add(s);
open;
调试时就可以看到S的值了,也可以放到sql server 的query analyze或delphi的sql exploer
中了(可以更方便的看到),建议不要用parambyname

 

可以先用二个变量代换一下:
Var
Str1,Str2 : String;
Str1 := quotedstr(cc);
Str2 := quotedstr(aa);
sq.sql.add('select * from jxjh where specialty_year=:var1 and department_name=:var2');
sq.sql.ParamByName('var1').AsString := Str1 ;
sq.sql.ParamByName('var2').AsString := Str2 ;

sq.sql.add('select * from jxjh where specialty_year=:cc and department_name=:aa');
sq.sql.ParamByName('aa').AsString := ? ;
sq.sql.ParamByName('cc').AsString := ? ;
 
后退
顶部