if EaskEdit_sj.Text<>'' then
query1.params[2].Asdate:=strtodate(EaskEdit_sj.text)
else
query1.params[2].Asdate:=0;
query1.params[2].Asdate:=strtodate(EaskEdit_sj.text)
else
query1.params[2].Asdate:=0;
调试欢乐多
try
query1.params[2].Asdate:=strtodate(EaskEdit_sj.text);
except
query1.params[2].Asdate:=null;
end;//8888888888888888888
if length(edit_dh.text) thenquery1.params[1].AsString:='';
query1.params[2].Asdate:=strtodate(EaskEdit_sj.text);
except
query1.params[2].Asdate:=null;
end;//8888888888888888888
if length(edit_dh.text) = 0 thenquery1.params[1].AsString:='';
用airhorse(编程至尊宝) 方法,出错,提示"Invalid variant type conversion"
等待解答
对了,对数据库传递参数,null,会有问题,你还是用,其他值代替吧!
if EaskEdit_sj.text='' then Query1.SQL.add('insert into tmp(zh,lxdh)...')
//不 插入时间值else 'insert into tmp(zh,lxdh,sj)') .....//插入时间值
excetp
........
end;
建议采用SQL语句插入
INSERT INTO tmp(zh,lxdh,sj)VALUES (zh,null,null);
query1.SQL.Clear ;
query1.SQL.Add('insert into tmp(zh,lxdh,sj)');
query1.SQL.Add('values(:zh,:lxdh,:sj)');
query1.params[0].AsString:=edit_zh;
query1.params[1].AsString:=edit_dh.text;
if EaskEdit_sj.Text<>'' then
query1.params[2].Asdate:=strtodate(EaskEdit_sj.text)
else
query1.params[2].Asdate:=0;
query1.ExecSQL;
试试看吧。
你所说的和Apollo47(阿波罗) 的方法 一样!
执行后法 sj字段的内容为1899/12/30,
但我想让它为null快来帮我
query1.params[2].Asdate:=strtodate(EaskEdit_sj.text)
else
query1.params[2].Asdate:=null;
query1.SQL.Clear ;
query1.SQL.Add('insert into tmp(zh,lxdh,sj)');
query1.SQL.Add('values(:zh,:lxdh,:sj)');
query1.params[0].AsString:=edit_zh;
query1.params[1].AsString:=edit_dh.text;
if EaskEdit_sj.Text<>'' then
query1.params[2].Asdate:=strtodate(EaskEdit_sj.text)
else
query1.params[2].Asdate:=null;
query1.ExecSQL;
query1.SQL.Clear ;
query1.SQL.Add('insert into tmp(zh,lxdh,sj)');
query1.SQL.Add('values(:zh,:lxdh,:sj)');
query1.paramByName('zh').AsString:=edit_zh;
query1.paramByName('lxdh').AsString:=edit_dh.text;
Try
StrToDateTime(EaskEdit_sj.text);
query1.paramByName('sj').Asdate:=strtodate(EaskEdit_sj.text);
Except
query1.ParamByName('sj').DateType:=ftDateTime;
Query1.ParamByName('sj').Clear;
End;
query1.ExecSQL;时间或日期的输入最好用TDateTimePicker控件
代码应改为:
query1.Close;
query1.SQL.Clear ;
query1.SQL.Add('insert into tmp(zh,lxdh,sj)');
query1.SQL.Add('values(:zh,:lxdh,:sj)');
query1.paramByName('zh').AsString:=edit_zh;
query1.paramByName('lxdh').AsString:=edit_dh.text;
If EaskEdit_sj.Date = 0 Then
Begin
query1.ParamByName('sj').DateType:=ftDateTime;
Query1.ParamByName('sj').Clear;
End
Else
query1.paramByName('sj').Asdate:=strtodate(EaskEdit_sj.text);
query1.ExecSQL;
时间或日期的输入最好用TDateTimePicker控件
代码应改为:
query1.Close;
query1.SQL.Clear ;
query1.SQL.Add('insert into tmp(zh,lxdh,sj)');
query1.SQL.Add('values(:zh,:lxdh,:sj)');
query1.paramByName('zh').AsString:=edit_zh;
query1.paramByName('lxdh').AsString:=edit_dh.text;
If EaskEdit_sj.Date = 0 Then
Begin
query1.ParamByName('sj').DateType:=ftDateTime;
Query1.ParamByName('sj').Clear;
End
Else
// query1.paramByName('sj').Asdate:=StrToDate(EaskEdit_sj.Text);
query1.paramByName('sj').Asdate:=EaskEdit_sj.Date;
query1.ExecSQL;
query1.SQL.Clear ;
query1.SQL.Add('insert into tmp(zh,lxdh,sj)');
query1.SQL.Add('values(:zh,:lxdh,:sj)');
query1.params[0].AsString:=edit_zh;
query1.params[1].AsString:=edit_dh.text;
if EaskEdit_sj.Text<>'' then
query1.params[2].Asdate:=strtodate(EaskEdit_sj.text)
else
query1.params[2].Asdate:=null;
query1.ExecSQL;
再试试看吧。
Query1.RequestLive:=TRUE;
query1.Close;
query1.SQL.Clear ;
query1.SQL.Add('insert into tmp(zh,lxdh,sj)');
query1.SQL.Add('values(:zh,:lxdh,:sj)');
query1.ExecSQL;
我说过了象 query1.params[2].Asdate:=null; 这句是不行的,delphi中不认识null,
到DBMS里才认识nullto:ch2zh1(逍遥剑客)
不知道你的意思!to: zou5655(周围)
你的方法很好,解决了问题!感谢!感谢
(都是我基础知识不好的结果)
但我是这样做的(结合了前几位回复者的意见,也一并表示感谢)
query1.Close;
query1.SQL.Clear ;
query1.SQL.Add('insert into tmp(zh,lxdh,sj)');
query1.SQL.Add('values(:zh,:lxdh,:sj)');
query1.params[0].AsString:=edit_zh;
query1.params[1].AsString:=edit_dh.text;
if EaskEdit_sj.Text<>'' then
query1.params[2].Asdate:=strtodate(EaskEdit_sj.text)
else
begin
query1.params[2].datatype:=ftdate;
query1.params[2].clear;
end;
query1.ExecSQL;准备给分了再请问一下(继续加分),
Try …… Except ……和if……else……有什么区别,我不知道Try …… Except ……的用法我在窗体上放一个label1和一个button1,
在button1的onclick事件中写入
label1.caption:=date;
执行时,label1变成 01-06-20
我如何让它显示成 2001-06-20,这难道是delphi的千年虫?
Try …… Except 是在错误发生时才会去执行except语句
Label1.Caption := FormatDateTime('YYYY-MM-DD',Date);
Label1.Caption := FormatDateTime('YYYY"年"MM"月"DD"日"',Date);
If 是条件语句,具体有以下几种:
If ...
If ... Else
If .. Else If ..Else If ... ... ... ... Else
结构化异常处理语句:
Try ..Except ..End
Try ..Finally .. End
具体操作,自己去看Delphi的Object Pascal语法. OK!!