create table tmp(
zh varchar(3), //证号
lxdh varchar(20), //联系电话
sj date, //办理时间
);
form上有三个控件(接受用户输入数据),如下
edit_zh: TEdit;
edit_dh: TEdit;
MaskEdit_sj: TMaskEdit;
有一按钮(将用户输入信息作为一条新记录插入数据库)
button1: Tbutton;
在按钮的onclick事件写入
procedure Tform1.button1Click(Sender: TObject);
begin
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;
query1.params[2].Asdate:=strtodate(EaskEdit_sj.text);
query1.ExecSQL;
end;
现在问题时,有时用户输入的记录没有联系电话和办理时间,只有一个证号(只是有时候是这种情况),
我想让联系电话和办理时间为空,即可插入这样的记录:
zh lxdh sj
------------------------------------
008 [null] [null]
怎么做,我上面的程序不行,
在query1.params[1].AsString:=edit_dh.text;里,因为我在 edit_dh控件的text里没输入内容,
它就把 '' 赋值给了 lxdh字段,这还没什么,
在query1.params[2].Asdate:=strtodate(EaskEdit_sj.text);里,我在EaskEdit_sj控件的text也没输入内容,
就出错,提示 '' is not a valid date
请问我要达到我的要求,怎么做?
24 个解决方案
#1
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;
#2
try
query1.params[2].Asdate:=strtodate(EaskEdit_sj.text);
except
query1.params[2].Asdate:=null;
end;
//8888888888888888888
if length(edit_dh.text) then
query1.params[1].AsString:='';
#3
try
query1.params[2].Asdate:=strtodate(EaskEdit_sj.text);
except
query1.params[2].Asdate:=null;
end;
//8888888888888888888
if length(edit_dh.text) = 0 then
query1.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 then
query1.params[1].AsString:='';
#4
用Apollo47(阿波罗) 的方法 sj字段的内容为1899/12/30,我想让它为[null]
用airhorse(编程至尊宝) 方法,出错,提示"Invalid variant type conversion"
等待解答
用airhorse(编程至尊宝) 方法,出错,提示"Invalid variant type conversion"
等待解答
#5
对了,对数据库传递参数,null,会有问题,你还是用,其他值代替吧!
#6
try
if EaskEdit_sj.text='' then Query1.SQL.add('insert into tmp(zh,lxdh)...')
//不 插入时间值
else 'insert into tmp(zh,lxdh,sj)') .....//插入时间值
excetp
........
end;
if EaskEdit_sj.text='' then Query1.SQL.add('insert into tmp(zh,lxdh)...')
//不 插入时间值
else 'insert into tmp(zh,lxdh,sj)') .....//插入时间值
excetp
........
end;
#7
我这只是个例子,我的表有20多个字段,怎么能使用9653013(毒谷) 的方法?
#8
首先,sj字段必须可以为空,
建议采用SQL语句插入
INSERT INTO tmp(zh,lxdh,sj)VALUES (zh,null,null);
建议采用SQL语句插入
INSERT INTO tmp(zh,lxdh,sj)VALUES (zh,null,null);
#9
xlem(luzi) 这我知道
问题是,有时用户输入的记录没有联系电话和办理时间,只有一个证号(只是有时候是这种情况),
注意只是有时候是这种情况,
要是有时候我的sj字段又有内容了,即需要用户输入了,
那你的 INSERT INTO tmp(zh,lxdh,sj)VALUES (zh,null,null); 语句就不能满足要求了
大家快帮帮我呀!
问题是,有时用户输入的记录没有联系电话和办理时间,只有一个证号(只是有时候是这种情况),
注意只是有时候是这种情况,
要是有时候我的sj字段又有内容了,即需要用户输入了,
那你的 INSERT INTO tmp(zh,lxdh,sj)VALUES (zh,null,null); 语句就不能满足要求了
大家快帮帮我呀!
#10
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
query1.params[2].Asdate:=0;
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:=0;
query1.ExecSQL;
试试看吧。。。。
#11
machin(刷新一下) :
你所说的和Apollo47(阿波罗) 的方法 一样!
执行后法 sj字段的内容为1899/12/30,
但我想让它为null
快来帮我
你所说的和Apollo47(阿波罗) 的方法 一样!
执行后法 sj字段的内容为1899/12/30,
但我想让它为null
快来帮我
#12
if EaskEdit_sj.Text<>'' then
query1.params[2].Asdate:=strtodate(EaskEdit_sj.text)
else
query1.params[2].Asdate:=null;
query1.params[2].Asdate:=strtodate(EaskEdit_sj.text)
else
query1.params[2].Asdate:=null;
#13
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
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.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;
#14
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;
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;
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;
#15
补充以上说明:
时间或日期的输入最好用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;
时间或日期的输入最好用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;
#16
to chinanet:
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
query1.params[2].Asdate:=null;
query1.ExecSQL;
再试试看吧。。。。
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
query1.params[2].Asdate:=null;
query1.ExecSQL;
再试试看吧。。。。
#17
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;
#18
to :machin(刷新一下)
我说过了象 query1.params[2].Asdate:=null; 这句是不行的,delphi中不认识null,
到DBMS里才认识null
to: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的千年虫?
我说过了象 query1.params[2].Asdate:=null; 这句是不行的,delphi中不认识null,
到DBMS里才认识null
to: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的千年虫?
#19
if else 条件语句符合条件即执行
Try …… Except 是在错误发生时才会去执行except语句
Try …… Except 是在错误发生时才会去执行except语句
#20
格式化输出吧。
#21
label1.Caption:=datetostr(date);
#22
日期输出,两种方式都可以:
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!!
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!!
#23
为什么一定要用日期类型呢?
就不能用字符串型?
用日期类型还有千年虫问题呀!
就不能用字符串型?
用日期类型还有千年虫问题呀!
#24
本来是日期类型的数据用字符表示,会给数据处理带来一些麻烦。
#1
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;
#2
try
query1.params[2].Asdate:=strtodate(EaskEdit_sj.text);
except
query1.params[2].Asdate:=null;
end;
//8888888888888888888
if length(edit_dh.text) then
query1.params[1].AsString:='';
#3
try
query1.params[2].Asdate:=strtodate(EaskEdit_sj.text);
except
query1.params[2].Asdate:=null;
end;
//8888888888888888888
if length(edit_dh.text) = 0 then
query1.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 then
query1.params[1].AsString:='';
#4
用Apollo47(阿波罗) 的方法 sj字段的内容为1899/12/30,我想让它为[null]
用airhorse(编程至尊宝) 方法,出错,提示"Invalid variant type conversion"
等待解答
用airhorse(编程至尊宝) 方法,出错,提示"Invalid variant type conversion"
等待解答
#5
对了,对数据库传递参数,null,会有问题,你还是用,其他值代替吧!
#6
try
if EaskEdit_sj.text='' then Query1.SQL.add('insert into tmp(zh,lxdh)...')
//不 插入时间值
else 'insert into tmp(zh,lxdh,sj)') .....//插入时间值
excetp
........
end;
if EaskEdit_sj.text='' then Query1.SQL.add('insert into tmp(zh,lxdh)...')
//不 插入时间值
else 'insert into tmp(zh,lxdh,sj)') .....//插入时间值
excetp
........
end;
#7
我这只是个例子,我的表有20多个字段,怎么能使用9653013(毒谷) 的方法?
#8
首先,sj字段必须可以为空,
建议采用SQL语句插入
INSERT INTO tmp(zh,lxdh,sj)VALUES (zh,null,null);
建议采用SQL语句插入
INSERT INTO tmp(zh,lxdh,sj)VALUES (zh,null,null);
#9
xlem(luzi) 这我知道
问题是,有时用户输入的记录没有联系电话和办理时间,只有一个证号(只是有时候是这种情况),
注意只是有时候是这种情况,
要是有时候我的sj字段又有内容了,即需要用户输入了,
那你的 INSERT INTO tmp(zh,lxdh,sj)VALUES (zh,null,null); 语句就不能满足要求了
大家快帮帮我呀!
问题是,有时用户输入的记录没有联系电话和办理时间,只有一个证号(只是有时候是这种情况),
注意只是有时候是这种情况,
要是有时候我的sj字段又有内容了,即需要用户输入了,
那你的 INSERT INTO tmp(zh,lxdh,sj)VALUES (zh,null,null); 语句就不能满足要求了
大家快帮帮我呀!
#10
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
query1.params[2].Asdate:=0;
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:=0;
query1.ExecSQL;
试试看吧。。。。
#11
machin(刷新一下) :
你所说的和Apollo47(阿波罗) 的方法 一样!
执行后法 sj字段的内容为1899/12/30,
但我想让它为null
快来帮我
你所说的和Apollo47(阿波罗) 的方法 一样!
执行后法 sj字段的内容为1899/12/30,
但我想让它为null
快来帮我
#12
if EaskEdit_sj.Text<>'' then
query1.params[2].Asdate:=strtodate(EaskEdit_sj.text)
else
query1.params[2].Asdate:=null;
query1.params[2].Asdate:=strtodate(EaskEdit_sj.text)
else
query1.params[2].Asdate:=null;
#13
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
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.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;
#14
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;
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;
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;
#15
补充以上说明:
时间或日期的输入最好用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;
时间或日期的输入最好用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;
#16
to chinanet:
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
query1.params[2].Asdate:=null;
query1.ExecSQL;
再试试看吧。。。。
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
query1.params[2].Asdate:=null;
query1.ExecSQL;
再试试看吧。。。。
#17
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;
#18
to :machin(刷新一下)
我说过了象 query1.params[2].Asdate:=null; 这句是不行的,delphi中不认识null,
到DBMS里才认识null
to: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的千年虫?
我说过了象 query1.params[2].Asdate:=null; 这句是不行的,delphi中不认识null,
到DBMS里才认识null
to: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的千年虫?
#19
if else 条件语句符合条件即执行
Try …… Except 是在错误发生时才会去执行except语句
Try …… Except 是在错误发生时才会去执行except语句
#20
格式化输出吧。
#21
label1.Caption:=datetostr(date);
#22
日期输出,两种方式都可以:
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!!
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!!
#23
为什么一定要用日期类型呢?
就不能用字符串型?
用日期类型还有千年虫问题呀!
就不能用字符串型?
用日期类型还有千年虫问题呀!
#24
本来是日期类型的数据用字符表示,会给数据处理带来一些麻烦。