query1.Close ;
query1.SQL.Clear ;
query1.SQL.Add('CREATE TABLE dev.dev_per_statistic1 AS ');
query1.SQL.Add('SELECT a.department, b.station_name, c.devtype_name, d.run_nbr, d.run_date, d.device_model, d.pro_nbr');
query1.SQL.Add('FROM com.tc_pub_n_dept_code a, dev.td_dev_fm_station b, dev.tc_dev_def_facilitytype');
query1.SQL.Add('c, dev.td_dev_fm1_document d ');
query1.SQL.Add('WHERE TRIM(a.department_code) = SUBSTR(b.run_department_nbr, 1, 10)');
query1.SQL.Add('AND b.device_nbr = d.deptstation');
query1.SQL.Add('AND TRIM(c.devtype_nbr) = TRIM(d.device_type)');
query1.SQL.Add('AND b.dept_id =:DeptId' );
query1.SQL.Add('AND d.device_run_state_nbr = ''24''');
query1.SQL.Add('ORDER BY a.department, b.station_name, c.devtype_name');//add search parameter
//query1.Params.ParamValues('DeptId'):=edit1.Text;
query1.params[0].asString:=edit1.Text; if not query1.Prepared then
query1.Prepare ;
query1.ExecSQL ;就是通过给SQL传递参数
调试的时候出错:ORA_01036:非法的变量名/编号直接把sql写成 query1.SQL.Add('AND b.dept_id =''010001'' ' );都能正确执行。对应的字段类型:b.dept_id char(15)
query1.SQL.Clear ;
query1.SQL.Add('CREATE TABLE dev.dev_per_statistic1 AS ');
query1.SQL.Add('SELECT a.department, b.station_name, c.devtype_name, d.run_nbr, d.run_date, d.device_model, d.pro_nbr');
query1.SQL.Add('FROM com.tc_pub_n_dept_code a, dev.td_dev_fm_station b, dev.tc_dev_def_facilitytype');
query1.SQL.Add('c, dev.td_dev_fm1_document d ');
query1.SQL.Add('WHERE TRIM(a.department_code) = SUBSTR(b.run_department_nbr, 1, 10)');
query1.SQL.Add('AND b.device_nbr = d.deptstation');
query1.SQL.Add('AND TRIM(c.devtype_nbr) = TRIM(d.device_type)');
query1.SQL.Add('AND b.dept_id =:DeptId' );
query1.SQL.Add('AND d.device_run_state_nbr = ''24''');
query1.SQL.Add('ORDER BY a.department, b.station_name, c.devtype_name');//add search parameter
//query1.Params.ParamValues('DeptId'):=edit1.Text;
query1.params[0].asString:=edit1.Text; if not query1.Prepared then
query1.Prepare ;
query1.ExecSQL ;就是通过给SQL传递参数
调试的时候出错:ORA_01036:非法的变量名/编号直接把sql写成 query1.SQL.Add('AND b.dept_id =''010001'' ' );都能正确执行。对应的字段类型:b.dept_id char(15)
解决方案 »
- Delphi Dll中传递Pchar类型参数是否需要加var
- 下载了很多ACCESS+DElphi开发的例子,为什么表关系都是用程序去控制而不是直接在ACCESS中建立?谢谢
- delphi中如何将UBB代码转换成Html代码
- 看看吧
- 求算法??问题???谢谢帮助!!UP也可以来!!!!在线等待!!解决问题马上给分100
- 问一下:.DBF是哪一种数据库的文件?怎么生成
- 考倒斑竹~~高手必看 给分100
- 接到个项目,仓库管理系统.想求购一套delphi+sql server稳定运行的源代码
- Kingron 请把你刚才回答的问题提供一些代码
- ★★ 真心付出,人民币500+专家分4000等你拿,并有源程序交换,帮我UP者,我也会给他一些源程序,呵呵,不过你要写明要那方面的 ★★
- 新手问题
- 销售餐饮管理软件源码
query1.params[0].asString:=QuoteStr(edit1.Text);
query1.params[0].asString:=QuotedStr(edit1.Text);
这样试试:
query1.SQL.Add('AND b.dept_id = :a ' );
query1.Params.ParamByName('a').Value := edit1.Text;
query1.Params.ParamByName('a').Value := edit1.Text;
query1.params[0].asString:=edit1.Text;
我解决了,不过用的是:where dept_id='''+DepartID+'''',和 longfeih()美女给的方法一致。query1.SQL.Add('AND b.dept_id =:DeptId' );DeptId是单位部门,通过选择来过滤数据。
其它的试试都不行。