从SpineEdit控件中得到日期,其中CSYear、CSMonth、CSDate、CSHour、CSMin均是string型:
CSYear := IntToStr(SpinEdit1.Value); //年
CSMonth := IntToStr(SpinEdit2.Value); //月
CSDate := IntToStr(SpinEdit3.Value); //日
CSHour := IntToStr(SpinEdit4.Value); //时
CSMin := IntToStr(SpinEdit5.Value); //分现在要将得到的变量写入Oracle数据库,如下语句:
StrIns := 'insert into "tbl_bjdl"(bj_yymmdd) values(';
StrIns := StrIns+'to_date('+''''+CSYear+'-'+CSMonth+'-'+CSDate+' '+CSHour+':'+CSMin+''''+',';
StrIns := StrIns+'''yyyy-mm-dd hh24:mi'''+')'+')';
ADOQuery1.SQL.Add(StrIns);
ADOQuery1.Prepared;
ADOQuery1.ExecSQL;运行后总提示一个Ora-00911错误:无效字符
请高手指点
CSYear := IntToStr(SpinEdit1.Value); //年
CSMonth := IntToStr(SpinEdit2.Value); //月
CSDate := IntToStr(SpinEdit3.Value); //日
CSHour := IntToStr(SpinEdit4.Value); //时
CSMin := IntToStr(SpinEdit5.Value); //分现在要将得到的变量写入Oracle数据库,如下语句:
StrIns := 'insert into "tbl_bjdl"(bj_yymmdd) values(';
StrIns := StrIns+'to_date('+''''+CSYear+'-'+CSMonth+'-'+CSDate+' '+CSHour+':'+CSMin+''''+',';
StrIns := StrIns+'''yyyy-mm-dd hh24:mi'''+')'+')';
ADOQuery1.SQL.Add(StrIns);
ADOQuery1.Prepared;
ADOQuery1.ExecSQL;运行后总提示一个Ora-00911错误:无效字符
请高手指点
这里的引号不然你就 StrIns:=quotedstr(CSYear-CSMonth-CSDate CSHour:CSMin)
StrIns := StrIns+'to_date('''+CSYear+'-'+CSMonth+'-'+CSDate+' '+CSHour+':'+CSMin+''''+',';
StrIns := StrIns+'''yyyy-mm-dd hh24:mi'''+')'+')';
————————————
该句明显错误
假如数据集为 AdoQuery1.写如下语句:
Adoquery1.close;
Adoquery1.sql.clear;
Adoquery1.Sql.add('Insert into table1(id,Date1) values(1,:date1)');
Adoquery1.Parame..ParamByName('date1').value:=DateTimePick1.DateTime;
AdoQuery1.open;
则数据插入到Oracle数据库中。
就可变成日起时间型呀
StrIns := 'insert into tbl_bjdl(bj_yymmdd) values(';
StrIns := StrIns+'to_date('+CSYear+'-'+CSMonth+'-'+CSDate+' '+CSHour+':'+CSMin+',';
StrIns := StrIns+QuotedStr('yyyy-mm-dd hh24:mi')+')'+')'; //这里是重点
ADOQuery1.SQL.Add(StrIns);
ADOQuery1.Prepared;
ADOQuery1.ExecSQL;
sSqlStr:=sSqlStr+'TO_DATE('''+arrColValue[i]+''',''YYYY-MM-DD'')';