delphi 使用query向数据库里插入数据超时问题

delphi 使用query向数据库里插入数据超时问题,第1张

在query1.ExecSQL时出错吗?错误是什么?cpmessage 表中只有2列吗?可能是sql语句出错,可以在access里测试一下。

BDE也是可以放在datamod中。区别是ADO用的是Microsoft提供的数据驱动,BDE用的是Borland提供的。ADO比较好用,大部分的需求都有了。

sql.add('insert into xmb values ( ''+edit1.Text+'')')

这句里面,SQL语句不严谨,表xmb必须是只有一个字段才会成功,如果有多个字段,则必须加上列名。建议改成这样

procedure TForm1.Button1Click(Sender: TObject)

var

sql:string

begin

sql:='insert into xmb(对应的列名1,对应的列名2) values(''%s'',''%s'')'

sql:=format(sql,[edit1.Text,edit2.Text])

with adoquery1 do

begin

close

sql.Clear

sql.add(sql)

execsql

end

end

这个仅仅是插入记录,并不会在dbgrid中显示,要想显示就改成这样

procedure TForm1.Button1Click(Sender: TObject)

var

sql:string

begin

sql:='select * from xmb'

with adoquery1 do

begin

//这边要打开显示

close

sql.Clear

sql.add(sql)

open

//下面开始添加

append

fieldbyname('对应的列名1').asstring:=Edit1.Text

fieldbyname('对应的列名2').asstring:=Edit2.Text

post

end

end

......

Sql.Clear

Sql.Add('Select * from 1ctsklnts.dbf')

Active:=true

append

FieldByName('sj').AsString:='1996'

FieldByName('bxjs').Value:=15

post

//edit

append//当实行到这一步时,总是出错!不能追加一条空记录

FieldByName('sj').AsString:='1997'

FieldByName('bxjs').Value:=25

post

......

============================================

我省略了前后和你一样的代码,你试试

============================================

补充:呵呵,我现在没有Delphi调试,不过先Append然后赋值,最后Post,这个过程是绝对没有问题的!

或者你把Active:=true换成Open试试,其实是一样的。

============================================

嗨!明白了,你看你有多少个字段,你赋了值的才几个?把所有字段都赋值了你再试试!

============================================

这个是我调试通过的,我用的是Access数据库,文件名:test.mdb

调试过程中发现你的create table语句有错误,把所有number类型的长度参数删除,number长度是固定的,不需要指定长度。

procedure TForm1.Button1Click(Sender: TObject)

begin

With AdoQuery1 do

begin

Close

Sql.Clear

Sql.Add('Create table test.dbf (sj char(4),bxjs number,cdjs number,pljs number,wljs number)')

showmessage(Sql.Text)

ExecSql

Sql.Clear

Sql.Add('Select * from test.dbf')

open

append

FieldByName('sj').AsString:='1996'

FieldByName('bxjs').Value:=15

//edit

post

append//当实行到这一步时,总是出错!不能追加一条空记录

FieldByName('sj').AsString:='1997'

FieldByName('bxjs').Value:=25

post

end

end


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11714751.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存