关于SQL语句的插入问题(20分)

  • 主题发起人 主题发起人 wobuzhidao_yes
  • 开始时间 开始时间
W

wobuzhidao_yes

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序用的是access数据库,其中有一个表的字段是 日期/时间 型Date,
sqlInsert := 'insert into activities ('+
'Process_ID,'+
'Code_Status_code,'+
'Employee_ID,'+
'Date'+
') values ('+
strcbProcessID1+','+
strcbStatus+','+
strcbEmployeeID+','+
'2002-9-12'+
')';
我错在哪里?请帮助!
 
常用的解决办法,在插入之前使用showmessage等方式查看一下sqlInsert的内容。
具体问题:可能是出在date字段处,在2002-9-12的两边加上#试一下。
还有,如果其它字段都为字符型的,可能需要在每个字段值的两边加上#39,也就是需要在
字符型值的两侧用单引号标出。(#39是单引号的ASCII值)
 
日期两边加#
 
我在程序中试过了,可还是不行,不知道原因,我请教在access数据库中
(直接在查询窗口)写sql语言:

insert into activities (Process_ID,Code_Status_code,Employee_ID,Date)
values (1,1,3,'2002-09-09')

这样为什么不对?应该怎样写?请赐教,谢谢!
我加过#之类的符号,还是不行。
 
ACCESS日期格式不能使用字符串形式(内部不会自动转换,不象SQL Server).
写成这样:
insert into activities (Process_ID,Code_Status_code,Employee_ID,Date)
values (1,1,3,#2002-09-09#)


 
ning_ning的回答是正确的,谢谢

但是
sqlInsert := 'insert into activities ('+
'Process_ID,'+
'Code_Status_code,'+
'Employee_ID,'+
'Date'+ //日期/时间 类型,在access中
') values ('+
strcbProcessID1+','+
strcbStatus+','+
strcbEmployeeID+','+
'2002-9-12'+
')';
现在我有一个TDateTime类型的变量a,
我放在'2002-9-12'这个位置,怎样写呢?请帮忙,谢谢!
 
sqlInsert := 'insert into activities (' +
'Process_ID,' +
'Code_Status_code,' +
'Employee_ID,' +
'Date' +
') values (' +
strcbProcessID1 + ',' +
strcbStatus + ',' +
strcbEmployeeID + ',' +
QuotedStr('#'+DateTimeToStr(a)+'#') +
')';
 
如果是在DELPHI中,可使用动态参数解决问题,反正你用的SQL语句
 
我是用showmessage()显示sql,其中 QuotedStr('#'+DateTimeToStr(a)+'#') 转化的
sql是 '#2002-09-15 20:40:30#',而正确的应该是:#2002-09-15 20:40:30#,我应该
怎样写?请指点,谢谢
 
你去看一下quotedstr的help,应该将它去掉就可以了。它转换的结果是有引号的。
 
#'+FormatDateTime('YYYY-MM-DD HH:MM:SS',a)+'#
Access,可能后面的格式有变,比如MM可能是Mi,具体试试就知道了。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
928
SUNSTONE的Delphi笔记
S
I
回复
0
查看
948
import
I
后退
顶部