with ADOSQL do
begin
Close;
SQL.Clear;
SQL.Add(' insert into table1 values(:p1,:p2,:p3);');
Parameters.ParamByName('p1').Value.:=NoMax;
Parameters.ParamByName('p2').Value:=NumD;
Parameters.ParamByName('p3').Value:=DateTimePicker1.Date;
ExecSQL;
end;
提示错误:数据类型不匹配!
数据库为ACCESS
参数p1,p2应该没有错误,参数p3对应的是日期型字段,格式为短日期
怎么写才对呢?
begin
Close;
SQL.Clear;
SQL.Add(' insert into table1 values(:p1,:p2,:p3);');
Parameters.ParamByName('p1').Value.:=NoMax;
Parameters.ParamByName('p2').Value:=NumD;
Parameters.ParamByName('p3').Value:=DateTimePicker1.Date;
ExecSQL;
end;
提示错误:数据类型不匹配!
数据库为ACCESS
参数p1,p2应该没有错误,参数p3对应的是日期型字段,格式为短日期
怎么写才对呢?
Parameters.ParamByName('p3').Value:=formatdatetime('yyyy/mm/dd',DateTimePicker1.Date
可以解决
var
mTime: TDateTime;
mTime := Now();
with DataM.ADOTable1 do
begin
Open;
Insert;
FieldByName('时间').AsDateTime := mTime;
Post;
end;
end;
如:Parameters.ParamByName('p1').DataType := ftInteger;
Parameters.ParamByName('p2').DataType := ftInteger;
Parameters.ParamByName('p3').DataType := ftDateTime;如果还不行,直接赋值成字符串:
Parameters.ParamByName('p3').Value := ''''+ DateTimeToStr(DateTimePicker1.Date) + '''';