帮看下这个拼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)替代单引号
[解决办法]
[解决办法]
[解决办法]
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
第三个问题
日期赋值时要记得转换类型.