CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

恳请赐教

楼主shangwen()2005-04-01 11:37:07 在 Delphi / 数据库相关 提问

var  
    sqlstr,a,p:string;  
    b,d,e:   variant;  
    dresult:   integer;  
   
  begin  
            a:=edit2.Text;  
            p:=combobox1.Text;  
            b:=edit3.Text;  
            d:=DateTimePicker1.date;  
            e:=DateTimePicker2.date;  
        if   (   a<>'')   and   (   b<>'')and   (p<>''   )   then  
        begin  
            with   adoquery1   do  
   
                  //先判断数据库中是否有了所要加的订单  
                  adoquery1.Active:=false;  
                  sqlstr:='select*   from   采购订单表   where   名称='+quotedstr(a)+'   and   订货人         ='+quotedstr(p)+'   and   订货日期='+(datetostr(d))+'   and   到货期限='+(datetostr(e))+'   and   数量='+b+'';                      
                  adoquery1.SQL.Clear;  
                  adoquery1.SQL.Add(sqlstr);  
                  adoquery1.Active:=true   ;  
    begin  
                              sqlstr:='insert   into   采购订单表(名称,数量,订货日期,到货期限,订货人)   values('+quotedstr(a)+','+b+','+(datetostr(d))+',   '+(datetostr(e))+','+quotedstr(p)+')';  
                              adoquery1.Close;  
                              adoquery1.SQL.Clear;  
                              adoquery1.SQL.Add(sqlstr);  
                              dresult:=messagedlg('是否要把此单放入到数据库中',mtConfirmation,[mbyes,mbno],0)   ;  
                              if   dresult=idyes   then  
                                    begin  
                                      showmessage('是的要加的');  
                                      adoquery1.ExecSQL;  
  请问:为何我明明在表中放了一条完全一样的记录却总是因为日期不符合查找不到呢?从datetimepicker取出时间中到表中是不是过程中会自动转换呢/?谢谢您;我等 问题点数:60、回复次数:6Top

1 楼yiyideyi(一一得一)回复于 2005-04-01 11:48:42 得分 0

是不是变量d、e的类型问题?Top

2 楼duanhai(段海)回复于 2005-04-01 11:54:51 得分 10

樓主將數據庫中的日期字段也按字符格式化一下  
  注意,兩邊的都一樣  
  如SQL   Server  
  convert(varhchar(10),订货日期,121)=FormatDateTime('yyyy-mm-dd',Now)Top

3 楼duanhai(段海)回复于 2005-04-01 11:58:16 得分 50

另外你將你的SQL語句拷貝到查詢分析器中執行,看有什麼結果  
   
  我想你的SQL應該是出在這兒:'订货日期='+(datetostr(d))  
  你應該將後面的條件加上單引號,如:'订货日期='+#39   +   (datetostr(d))   +   #39  
   
  如果不加的話,那麼數據庫會當成是1900年  
  Top

4 楼whbo(王红波(年轻人,要有所作为))回复于 2005-04-01 12:12:46 得分 0

为什么用variant?Top

5 楼shangwen()回复于 2005-04-01 12:46:58 得分 0

to:     一一得一   and   王红播   variant   也可以包含日期型的数据Top

6 楼shangwen()回复于 2005-04-01 13:05:14 得分 0

谢谢,各位,搞定了,就是查询的时候日期类型的要加     #   号,谢谢;Top

相关问题

  • 恳请指点
  • 恳请帮忙
  • 再次恳请大家!
  • 诚恳请教高手
  • 恳请各位大虾-Help!
  • 恳请各位大虾-Help!
  • 各位高手,小弟诚恳请教
  • 请教高手!恳请指点!
  • 小问题,恳请回答!谢谢了。
  • 两个问题,恳请高手

关键词

  • sql
  • adoquery1
  • datetostr
  • 订货
  • dresult
  • quotedstr
  • 日期
  • sqlstr
  • datetimepicker
  • 订单

得分解答快速导航

  • 帖主:shangwen
  • duanhai
  • duanhai

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

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