在Paradox表中,当用TQuery控件对表插入数据(代码):
     
     Self.Query_FQB.Close;
     Self.Query_FQB.SQL.Clear;
     Self.Query_FQB.SQL.Add('INSERT INTO Name.db (Name) VALUES ("Cmain")');
     Self.Query_FQB.ExecSQL;
     Self.Query_FQB.Close;数据不是立即写入磁盘(硬盘:FAT32。操作系统:Windows 2000 Server)。
体现在,如果是非正常关机,再启动计算机后,以前写的数据已经丢失了。请问有什么办法可以让数据立即写入磁盘。就是非正常关机,数据也不会丢失。

解决方案 »

  1.   

    Self.Query_FQB.SQL.Add('INSERT INTO Name.db (Name) VALUES ("Cmain")');//是不是有问题Name.db 直接Name不可以吗?
    其它都是对的
      

  2.   

    Self.Query_FQB.Close;
         Self.Query_FQB.SQL.Clear;
         Self.Query_FQB.SQL.Add('INSERT INTO Name.db (Name) VALUES ("Cmain")');
         Self.Query_FQB.ExecSQL;
         self.query_fqb.applyupdates;//加一句  
         Self.Query_FQB.Close;
    你或许用了事务控制,如果这样那就提交事务
    database1.commit;
      

  3.   

    将TQuery.RequestLive设置为true
      

  4.   

    因为你使用的是sql,
    你只能显示调用BDE的API,
    USES BDE 单元;
    DbiSaveChanges(Table1.handle);另外,单独地依靠它也是不可行的,因为你突然断电,数据虽然写到磁盘了,但是fat的文件系统自身也可能出问题,比如fat表出错,你的数据一样丢失。考虑NTFS文件系统,他的强壮性远远高于FAT。