CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  数据库及相关技术

同样的句子,换了数据库后,居然运行不了!进来up up也好!!

楼主uio45757(一条傻鱼)2002-07-25 06:30:32 在 C++ Builder / 数据库及相关技术 提问

AnsiString   a,b,e;  
  a=MaskEdit1->Text;  
  b=MaskEdit1->Text;  
  e="   SELECT   *   FROM   TABLE5   where   (date   between   '"+StrToDate(a)+"'   and   '"+StrToDate(b)+"')   "  
  上面的语句,当我的数据库是sql   server的时候,就没有问题,可是!  
  我原来是用sql   server的,后来为了学习打包,就用了.db  
  不过.db那些数据和字段,都是用sql   server的那个导出数据转换而来的但是,问题就出现了,  
  Project   Project1.exe   raisde   exception   class   EDBEngineErr   with   message"Invalid   use   of   key   word,  
  Token:date  
  Line   Number;1'   process   stopped  
   
  不明白!! 问题点数:100、回复次数:17Top

1 楼uio45757(一条傻鱼)回复于 2002-07-25 06:36:08 得分 0

hehe,要补充几句,  
  AnsiString   a,b,e;  
  a=MaskEdit1->Text;  
  b=MaskEdit1->Text;  
  e="   SELECT   *   FROM   TABLE5   where   (date   between   '"+StrToDate(a)+"'   and   '"+StrToDate(b)+"')   "  
  Query1->Close();  
  Query1->SQL->clear():  
  Query1->SQL->Add(e);  
  Query1->Open():  
   
  其实我在数据转换的时候,在SQL   server时,date字段是datetime类型  
  在.db时,我把它换成是date字段,是date类型!  
  我不知道有没有关系!!  
  先谢了  
   
   
  Top

2 楼qdxby(足球小子)回复于 2002-07-25 07:43:45 得分 0

.db是什么数据库文件?我怎么想不起来了。一条傻鱼告诉我一下。Top

3 楼hlmsoft(小民)回复于 2002-07-25 08:12:26 得分 30

paradox却是有一些标准sql关键字不支持,如select   into等,没办法,我用powerdesign生成时,也有这种情况。认了吧Top

4 楼wxcwuxuchun(清风)回复于 2002-07-25 08:13:02 得分 30

用参数好一点  
  SELECT   *   FROM   TABLE5   where   (date   between   :SD   and   :ED)  
  Query->Params->ParamByName(SD)->AsDatatime   =   StrToDate(a);  
  Query->Params->ParamByName(ED)->AsDatatime   =   StrToDate(b);  
  Query->Open();  
  Top

5 楼jishiping(JSP 季世平)回复于 2002-07-25 08:26:07 得分 10

当然有关系啦。因为datetime包含日期和时间,比如   2002/07/24   08:10:00  
  而   Pardox   数据库的字段类型为日期型,SQL语句里包含时间,当然不行了。  
  你直接用Edit的内容就可以了,干嘛用StrToDate(a)转换啊,反而转出问题  
  了。  
  e   =   "SELECT   *   FROM   TABLE5   where   date   between   '"+   a   +   "'   and   '"   +   b   +   "'";Top

6 楼e_cat(电猫)回复于 2002-07-25 09:26:24 得分 0

agreeeeeeeeTop

7 楼albert()回复于 2002-07-25 09:51:13 得分 0

同意   uio45757(一条傻鱼)!Top

8 楼piaorenqian(湖心孤舟)回复于 2002-07-25 09:52:34 得分 0

agree,   datetime   和date是两个概念Top

9 楼albert()回复于 2002-07-25 09:53:30 得分 0

同意   uio45757(一条傻鱼)!最好不要用date,   time,   int,   single等关键字作为字段名。Top

10 楼albert()回复于 2002-07-25 09:54:03 得分 0

同意   uio45757(一条傻鱼)!最好不要用date,   time,   int,   single等关键字作为字段名。Top

11 楼wyb_45(小兵)回复于 2002-07-25 09:58:10 得分 20

同意   wxcwuxuchun(清风)   用参数就没问题,可以通用。  
  String   SQL_S="SELECT   *   FROM   TABLE5   where   (date   between   :SD   and   :ED)";  
  Query->Close();  
  Query->SQL->CLear();  
  Query->SQL->Add(SQL_S);  
  Query->Params->ParamByName("SD")->AsDatatime   =   DateTimePicker1->DateTime;  
  Query->Params->ParamByName("ED")->AsDatatime   =   DateTimePicker2->DateTime;  
  Query->Open();Top

12 楼bearbaba(【笨笨熊】)回复于 2002-07-25 10:03:16 得分 10

我认为是数据库引擎出错  
  原因:你在使用SQL   SERVER时,实际上是sql已经为你配置好了与odbc或者是ado连接的接口,但是当你更换了数据库后,在odbc或者是ado中都没有进行新的配置,也就是无法与数据库服务器进行沟通,怎么可能让这些操作被执行呢?Top

13 楼Chimae(David)回复于 2002-07-25 10:52:55 得分 0

不同的数据库对日期字段要求的格式是不同的!  
  PARODOX(.DB)中对日期字段的格式如下:  
  FORMATDATETIME("MM/DD/YYYY",DATETIMEPICKER1->DATE);  
  所以你只要格式转换一下就行了!Top

14 楼Chimae(David)回复于 2002-07-25 10:56:10 得分 0

还有就是你的字段名不能是数据库中的关键字!Top

15 楼jian9(阿呆)回复于 2002-07-25 11:59:33 得分 0

PARODOX数据库日期查询格式时月/日/年,其余的SQL语句是一样的!!Top

16 楼luhongjun(过江项羽)回复于 2002-07-25 14:32:35 得分 0

.db是文件型数据库,有好多SQL语句是不支持的。  
  Top

17 楼uio45757(一条傻鱼)回复于 2002-07-25 19:18:40 得分 0

(JSP   季世平)大侠,我就是试过,e   =   "SELECT   *   FROM   TABLE5   where   date   between   '"+   a   +   "'   and   '"   +   b   +   "'";  
  用你那个方法不行,我才换用我现在的方法  
   
  各位,我本来就只是记录了日期,没有记录时间,那我当然是换字段,  
   
  至于,字段名能不能是数据库的关键字,呵呵,我要回去试试才知道,不过,我那句语句,在server那里,可能运行成功Top

18 楼uio45757(一条傻鱼)回复于 2002-07-25 19:20:01 得分 0

至于,字段名能不能是数据库的关键字,呵呵,我要回去试试才知道,不过,我那句语句,在server那里,可以运行成功  
   
  各位,不好意思啊,我先去试试再结帐,呵呵  
  Top

19 楼uio45757(一条傻鱼)回复于 2002-07-26 01:38:47 得分 0

试完了,原来是,要改2样东西。  
  1,改关键字,  
  2,用那个参数!  
  谢了,各位Top

20 楼liu76xt((网事随逢))回复于 2002-07-28 15:05:39 得分 0

mark!Top

相关问题

  • 数据库被逻辑删除的字段避居然影响程序的运行???呜.....出手帮忙哪
  • 100分!同样的asp程序,前后建立的两个同样数据库居然运行结果不同!
  • 如何数据库正常运行!!!!
  • 运行时建立数据库表
  • 数据库运行后的问题
  • 如何脱离数据库运行
  • 用数据库画笔建表,居然…………
  • 用数据库画笔建表,居然…………
  • 用数据库画笔建表,居然…………
  • 动态连接数据库与不动态运行ADOCONNECTION

关键词

  • 数据库
  • 字段
  • 数据
  • date
  • db
  • sql
  • server
  • strtodate
  • maskedit
  • query

得分解答快速导航

  • 帖主:uio45757
  • hlmsoft
  • wxcwuxuchun
  • jishiping
  • wyb_45
  • bearbaba

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo