读书人

帮看下这个拼sql的语句为何会报错多

发布时间: 2012-04-07 17:31:50 作者: rapoo

帮看下这个拼sql的语句为何会报错,谢谢
procedure TForm1.Button1Click(Sender: TObject);
begin
with data do
begin
data.Close;
data.CommandText := 'select empno 员工编号,enmae 员工名称'
+'job 工作,mgr 管理,sal 薪水,dattime 生日'
+'from scott.emp'
+'where empno=' + edit1.Text;
data.Open;
end;
end;

end.

这是代码,初学delphi不大会用,请大家帮忙指证下3个问题,谢谢

1.用上面编译出来的程序会提示 未找到要求的 from关键字。

2.开始日期和结束日期 我想打开界面 开始日期就初始为当天-2天的00:00:00 结束时间就为当前时间

3.界面如下有两个日期时间段,一个开始日期,一个结束日期,还有一个combox下提列表框,

还有一个edit1输入框,我现在想把上面的时间代码写为下拉列表框不选和edit框不输入的话
就默认的查询条件为 where datetime > 开始时间 and datetime < 结束时间 否则就拼上下拉列表框选中的值和edit输入的值


[解决办法]
from和生日之间要有个空格,where也一样
日期可以直接这么设置:IncDay(Date, -2)
[解决办法]
少了,和空格
[解决办法]
可以在窗体的OnShow事件来设置日期控件的日期,代码就是我上面给的。
[解决办法]
data.CommandText := 'select empno 员工编号,enmae 员工名称'
+'空格job 工作,mgr 管理,sal 薪水,dattime 生日'
+'空格from scott.emp'
+'空格where empno=' + edit1.Text;
data.Open;
[解决办法]
+' and empno=' + quatestr(combobox1.text)
[解决办法]
delphi里的sql语句不识别单引号'',要用char(39)替代单引号
[解决办法]

探讨

下拉列表框里的值如何拼到sql里叱

+' and empno='+combobox1.text
这样是错的,
empno 是字符型数据 要加上单引号,但我加了也是错的
这是加后我写的
+' and empno='+''combobox1.text''

[解决办法]
探讨
下拉列表框里的值如何拼到sql里叱

+' and empno='+combobox1.text
这样是错的,
empno 是字符型数据 要加上单引号,但我加了也是错的
这是加后我写的
+' and empno='+''combobox1.text''

[解决办法]
data.CommandText := 'select empno 员工编号,enmae 员工名称'
+',job 工作,mgr 管理,sal 薪水,dattime 生日'
+' from scott.emp'
+' where empno=' + edit1.Text;
你的字段empno是字符型的话应该改成
data.CommandText := 'select empno 员工编号,enmae 员工名称'
+',job 工作,mgr 管理,sal 薪水,dattime 生日'
+' from scott.emp'
+' where empno=' +'''' +edit1.Text+'''';


[解决办法]
第一个问题
data.Close;
data.CommandText := 'select empno 员工编号,enmae 员工名称'
+'job 工作,mgr 管理,sal 薪水,dattime 生日'
+'from scott.emp'
+'where empno=' + edit1.Text;改成
//
data.Close;
data.CommandText := 'select empno 员工编号,enmae 员工名称'
+',job 工作,mgr 管理,sal 薪水,dattime 生日'+' '
+'from scott.emp'+' '
+'where empno=' + edit1.Text; 如果EMPNO是VARCHAR 就要改成 ='''+EDIT1.TEXT+''''
第二个问题
IncDay(Date, -2),NOW
第三个问题
日期赋值时要记得转换类型.

读书人网 >.NET

热点推荐