SQL语句改错
procedure TDatainputs_Form.workGrid;
var SQLstr:string;
begin
with DM.Work_Query1 do
begin
close;
sql.Clear;
sql.Add('select b.员工编号,b.开始时间,b.结束时间,b.工作单位,b.担任职务,b.所在部门,b.级别,b.附加说明 from work b where');
SQLstr:='员工编号'+' '+'='+' '+'"'+DBBH.text+'"';
sql.add(SQLstr);
open;
end;
end;
我这段代码出现以下错误提示:
DBISAM Engine Error # 11949 SQL error - 'Invalid column name '002' or table correlation name "specified in WHERE or JOIN clause'
应该怎么改呀!请高手指点。
数据库为:DBISAM 4.00
问题点数:50、回复次数:13Top
1 楼noil0125(珏心)回复于 2003-12-03 11:56:55 得分 50
sql.Add('select b.员工编号,b.开始时间,b.结束时间,b.工作单位,b.担任职务,b.所在部门,b.级别,b.附加说明 from work b');
sql.Add('where b.员工编号 = '+quotedstr(DBBH.text));Top
2 楼rockswj(石头,一直再努力)回复于 2003-12-03 12:02:29 得分 0
一个表不加别名也可以。Top
3 楼wave_f(小浪花)回复于 2003-12-03 12:04:06 得分 0
SQLstr:='员工编号'+' '+'='+' '+'"'+DBBH.text+'"';
改为
SQLstr:='员工编号='#39+ dbbh.text +#39'';
Top
4 楼LinLinLin(当霖绝顶)回复于 2003-12-03 12:22:27 得分 0
那这几段要怎么改呀!
1、DM.File_Query1.SQL.add('select * from filedata where');
SQLstr:=FindCB1.text+' '+MatchEd1.text+' '+'"'+FindEd1.text+'"';
2、sql.Add('select "隶属部门",'+i+',count(*) as 男 into tmp_gg from FileData where 性别="男" group by "隶属部门",'+i+'');Top
5 楼liqing7165(立青)回复于 2003-12-03 17:32:12 得分 0
upTop
6 楼zhxfzhxf1(zhxfzhxf1)回复于 2003-12-03 17:38:03 得分 0
同意: noil0125(珏心)Top
7 楼LinLinLin(当霖绝顶)回复于 2003-12-03 17:48:26 得分 0
那这几段要怎么改呀!
1、DM.File_Query1.SQL.add('select * from filedata where');
SQLstr:=FindCB1.text+' '+MatchEd1.text+' '+'"'+FindEd1.text+'"';
2、sql.Add('select "隶属部门",'+i+',count(*) as 男 into tmp_gg from FileData where 性别="男" group by "隶属部门",'+i+'');
Top
8 楼xiaocuo_zrf(小错——淫雄所贱略同)回复于 2003-12-03 19:43:18 得分 0
首先如果你觉得那么多‘’号扰乱眼睛
的话试试这个函数QuotedStr(员工编号)
Top
9 楼ln521(*逃课小王子*)回复于 2003-12-03 20:25:43 得分 0
sql.add('selectb.员工编号,b.开始时间,b.结束时间,b.工作单位,b.担任职务,b.所在部门,b.级别,b.附加说明 from work b where b.员工编号='+''''+dbbh.text+'''');
Top
10 楼LinLinLin(当霖绝顶)回复于 2003-12-03 22:35:01 得分 0
这句要怎么改呀!
sql.Add('select "隶属部门",'+i+',count(*) as 男 into tmp_gg from FileData where 性别="男" group by "隶属部门",'+i+'');
运行时出现错误提示如下:
DBISAM Engine Error # 11949 SQL error - 'Invalid column name '男' or table correlation name "specified in WHERE or JOIN clause'Top
11 楼suton(suton)回复于 2003-12-03 22:56:15 得分 0
select into tmp_gg????
不能这样的,有了into表示把查询信息加到一个表里面去,这个表不能是已经存在的表。
一般使用临时表。临时表又分会话中的临时表和全局临时表。前者要在前面加上“#”,后者加两个“#”
如果你真要把查询信息加到这个表,可以这样用:
insert into tmp_gg (fields_list) select (fields_list) from sourcetable where clause......Top
12 楼LinLinLin(当霖绝顶)回复于 2003-12-03 23:07:54 得分 0
TO: suton(suton) 现在这句如果改成这样就没问题,但是加入where 性别="男"
sql.Add('select "隶属部门",'+i+',count(*) as 男 into tmp_gg from FileData group by "隶属部门",'+i+'');
马上就提示如下:
DBISAM Engine Error # 11949 SQL error - 'Invalid column name '男' or table correlation name "specified in WHERE or JOIN clause'
Top
13 楼lilome()回复于 2003-12-04 10:36:35 得分 0
where 语句的员工编号的前面加上一个空格就可以了Top




