Delphi SQL 语句

sqlstr:='select*from'+stuDataTbName+'whereRunDatebetween:beginDateand:endDateorderbyS... sqlstr:='select * from '+stuDataTbName+' where RunDate between :beginDate and :endDate order by StudentId ASC';
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Text:=sqlstr;
Query1.ParamByName('beginDate').Value:=DateTimePicker_Begin.Date;
Query1.ParamByName('endDate').Value:=DateTimePicker_End.Date;
Query1.Open;
请问这哪里错了哦?纠结死了啊……
展开
 我来答
liu55721
2012-09-04 · TA获得超过922个赞
知道大有可为答主
回答量:1861
采纳率:100%
帮助的人:872万
展开全部
改Query1为ADOdataset组件吧,SQL语句写出来整齐直观,很容易看懂,也不需要什么参数,直接给字段赋值.
从你用的Query1这个组件名称来看,你用的是BDE组件,这东西是很麻烦的,早就被人抛弃了,只是改造一老软件时才用.用ADO,没有给数据库设置别名的麻烦.做起非常直观.用DBE时,如果客户机器没有安装迈达斯的话,软件还不能使用,这就是人们常说的接媳妇还要带上一个婆婆(迈达斯).没有婆婆,媳妇就不干活.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
众口说车
2012-09-03 · TA获得超过2323个赞
知道大有可为答主
回答量:3503
采纳率:50%
帮助的人:1486万
展开全部
从表面上没什么问题,请检查下,begindate 或enddate的日期格式?……。
另外,由于没有测试环境建议你分步来调试
即。先不要加参数,看是否可以正常执行,然后再加入参数,另,也可以考虑使用字符串拼接的形式来加入日期段……
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
604693104
2012-09-04 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:263
采纳率:0%
帮助的人:119万
展开全部
1. select * from '+stuDataTbName+' where 改为——
select * from '''+stuDataTbName+''' where 两边要各三个引号

2. Query1.SQL.Text:=sqlstr; 改为——
Query1.SQL.add(sqlstr);

然後你再调试一下就知道了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
beihaideshui
2012-09-04 · 超过34用户采纳过TA的回答
知道答主
回答量:229
采纳率:100%
帮助的人:108万
展开全部
Query1.SQL.Text:=sqlstr;

后面加一个Query1.prepare;试试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式