我SQL语句往数据库中插记录,为什么老是插不进去?(150分)

  • 主题发起人 主题发起人 yanliang
  • 开始时间 开始时间
Y

yanliang

Unregistered / Unconfirmed
GUEST, unregistred user!
在一个FORM上放一个query,datasource,四个edit框,我现在要把edit中数据插到query
所联系的数据表中去。
我的程序如下:
sqlstr:='insert into xmgscb values("'+edit1.text+'","'+edit2.text+'","'+edit3.text+'","'+edit4.text+'")';
query1.close;
query1.sql.Clear;
query1.sql.add(sqlstr);
query1.execsql;
执行完后打开Datacase Desktop,若不点击edit按钮,数据表中什么都没有;点击edit
按钮后,已经插入到表中的数据才能显现出来。表面上看现在数据已经插近表中,但是,
若重启动机子后打开Datacase Desktop,则有会发现表中空空如也--数据根本没有存到
磁盘上去!
更奇怪的是,有时候数据却能存上去。(随机的)。我百思不得其解,各位大虾能否
帮帮小弟一二?小弟感激不尽!
(有时候用table插入也会这样)
 
是否设有自增字段,若是就会有这种情况。
 
是什么数据库?

有没有使用事务?如果使用了,记得commit
 
p数据库好像就是这样。
 
所用数据库就是delphi自带的paradox 数据库
 
既然用的是paradox数据库,为什么不用Table呢,Table可以直接添加修改数据嘛
本地数据库的话,使用非常方便的
 
我记得是

insert into tablename(field1,field2) values(value1,value2)


您的没有field1,field2也可以吗?
 
>>您的没有field1,field2也可以吗?
可以省略的。
 
paradox数据库有内部缓冲机制,
你在退出的时候要
Database1.Connected:=false;
才能真正写入数据
 
请将sqlstr:='insert into xmgscb values("'+edit1.text+'","'+edit2.text+'","'+edit3.text+'","'+edit4.text+'")'
改为:
sqlstr:='insert into xmgscb values('+''''+edit1.text+''''+','+''''+edit2.text+''''+
','+''''+edit3.text+''''+','+''''+edit4.text+''''+')'
再一个请注意字段的类型是否相符。在D5中插入SQL语句有是挺怪的。
 
IF query1.CachedUpdates = True then
begin
query1.execsql;

query1.ApplyUpdates
end

//please test this



 
如果,同sql数据库中的安段一一对应,一定可以插入的。
连顺序也不能例外。

Insert Into t_salelist (tcode, tno, optype, unitcode, tdate, itemdcode, itemname, speci, procode, proname, pack, qty, qtyunit, wsprice, rprice, discount, price, tprice, benefit, tamt, whflag, saleflag, optor, opdate, orgcode, orgno, lotno, prodate, expy) Values('LS20000810094245',' 1','零售','1002','2000-08-10 上午 09:42:45','4-6-74','酒精','500ml','10179','北京',0,2,'瓶',7.74,7.74,100,7.74,7.74,0,15.48,'0','3','系统管理','2000-08-10 上午 09:42:45','QC200008010838012000','0962','999','2000-08-01','2000-08-01')
这是我在程序中用过的,没有问题。
 
接受答案了.
 
后退
顶部