主题:困饶我几个星期的问题了
heatfighter
[专家分:10] 发布于 2006-04-21 08:07:00
用Tedit 控件 通过SQL 向数据库一些列(数据类型是datetime 和 money 的 )
常常报错 : 一般都是字符串向money 或datetime类型转换时出错 因为各位高手 是怎么把edit1.text 里面的内容先转换成money 或datetime类型 在成功插入或修改数据库记录的呢??
回复列表 (共6个回复)
沙发
heatfighter [专家分:10] 发布于 2006-04-21 11:10:00
大家给点意见啊。。。。5555
板凳
czzwbm [专家分:90] 发布于 2006-04-21 11:53:00
是不是这样的 试试???
query1.fieldbyname('money').ascurrency:=strtofloat(edit1.text);
query1.fieldbyname('date').asdatetime:=strtodate(edit2.text);
3 楼
gongchengh [专家分:390] 发布于 2006-04-21 14:16:00
当EDIT中的内容转化成DATETIME或者是money 时,edit中的格式必须是一样的
如果是"2006-12-14"是可以转化的 但是"2006-12-14 "(中间有空格)就不可以了.
避免出错是可以与TRY FINALLY END结构.
4 楼
guo888go2005 [专家分:150] 发布于 2006-04-21 15:54:00
:=strtodate(formatdatetime('yyyy-mm-dd',strtodate(edit2.text)));
5 楼
heatfighter [专家分:10] 发布于 2006-04-21 20:16:00
编译可以通过但是输入具体的数字跳出异常
strtodate 这个函数是不可识别的函数名。。。。。。郁闷了
用楼上那个formatdatetime('yyyy-mm-dd'。。。。。) 这样的 他会提示YYYY 这里出错
6 楼
progfan [专家分:2270] 发布于 2006-04-22 10:40:00
procedure TForm1.Button1Click(Sender: TObject);
//Edit1录入日期
//Edit2录入数值
//AdoQuery1连接数据库
//Dateset1建立数据源
//DBGrid1显示数据
begin
//插入数据
with AdoQuery1 do
begin
Close;
Sql.Clear;
Sql.Add('insert into Table1 (sj,mony) values (:a,:b)');
parameters.ParamByName('a').Value:=strtodate(edit1.Text);
parameters.ParamByName('b').value:=edit2.Text;
execsql;
end;
//刷新并显示数据
with AdoQuery1 do
begin
Close;
Sql.Clear;
Sql.Add('select * from Table1');
open;
end;
end;
我来回复