请教大家,我配置了一个ODBC数据源,连了一个ACCESS数据库,然后通过Table和这个数据源相连!我现在想每隔一段时间就往该数据表中写一个数据,代码如下:
try
  if YcValueTable.active = True then
    YcValueTable.Close;  YcValueTable.Open;
  YcValueTable.edit;
  YcValueTable.Append;
  YcValueTable.FieldByName('YcValue').AsFloat := 3;
  YcValueTable.Post;
finally
  YcValueTable.close;
end;
  但是为什么我每次只能往里面写两个值后就再也不能写进去了呢,程序就跳出来了?我用的是ACCESS2003+Delphi7,我换成parodox就没有问题,能一直不停的往里写。但为什么Access就不行,它写两个值后就直接关闭了数据库就退出来!我加了一个Tdatabase进行永久连接,并设置了KeepConnection为True,可是也是不行,我调的时候发现ACCESS会生成一个同名的ldb文件,运行结束后消失,并且每次打开ACCESS时总是会弹出一个安全警告框:(正在打开“c:\ReadInfo\data\Yc.mdb”, 如果文件包含有意破坏计算机的代码,文件可能会不安全。希望打开文件还是取消操作?)为什么会弹出这个警告框,好像我以前用ACCESS2000时从来没有遇到这样的警告框呀,同时问问大家哪个YC.ldb文件是干什么的,它为什么会在打开数据库时出现!

解决方案 »

  1.   

    YcValueTable.Open;
      YcValueTable.edit;//这里要这个干么?多余……
      YcValueTable.Append;
      YcValueTable.FieldByName('YcValue').AsFloat := 3;
      YcValueTable.Post;
      

  2.   

    YcValueTable.edit;这个就不需要了Access2003的问题,如果是English版,用我写的小软件可以解决问题http://lysoft.7u7.net下载YC.ldb是Access的锁描述文件,表示有程序使用MDB文件,描述锁定的内容
      

  3.   

    哈哈,果然把edit去掉就行了,可是这是为什么呢?