关于sql的一个问题(100分)

  • 主题发起人 主题发起人 Jams
  • 开始时间 开始时间
J

Jams

Unregistered / Unconfirmed
GUEST, unregistred user!
假若现有一数据库为we,其结构为:
Create Table we {
name Char(40),
sex Char(2),
year Date
}
在Query1.Sql.Add()中添加一条新的记录,如果记录内容为常量如;
Query1.Sql.Add('Insert Into we(name, sex, year) Value("Tom", "男", "01-01-01")');
则没有问题,但如果使用变量,如
Query1.Sql.Add('Insert Into we(name, sex, year) Value("Tom", "男", "'+DatetoStr(Date)+'"');
则出现类型错误,该如何解决类似的问题?
另外,适合Query1.Sql的数据库类型都有哪些,请详细列出!
 
日期格式问题。
用formatdatetime()转换日期格式。
 
这样
Query1.Sql.Add('Insert Into we(name, sex, year) Value('Tom', '男', ''''+DatetoStr(Date)+'''');
 
补充:
或者这样
Query1.Sql.Add('Insert Into we(name, sex, year) Value('Tom', '男', DatetoStr(Date));
 
DateToStr函数转换的日期是长日期型,可你定义的是date类型,不是datetime类型,
当然会出错了,用formatdatetime的自定义格式来转换你的日期就不会出错了。
 
呵呵,用个参数就不必烦恼了,我总这样干
 
to jin_sue
创建数据库时好象没有DateTime类型,我试了不行!?
这样做就摆平了!
Query1.Sql.Add('Insert Into we(name, sex, year) Value("Tom", "男", :year);
year := DataToStr(Date);
Query1.Sql.Open

哪位还有更好的方法,提出来,否则结束该问题!
机会多多!?
 
法1. 先设ShortDateFormat := 'YYYY-MM-DD';再写Sql
法2. 用参数。
 
真是奇怪的问题!!!

那个YEAR参数是只提取年还是整个日期???

应该是日期格式的问题!
 

创建数据库时好象没有DateTime类型,我试了不行!?
这样做就摆平了!
Query1.Sql.Add('Insert Into we(name, sex, year) Value("Tom", "男", :year);
year := DataToStr(Date);
Query1.Sql.Open

狂人觉得你这种方法最实用,最稳当。。。。
 
人人有汤喝!?
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
926
SUNSTONE的Delphi笔记
S
后退
顶部