delphi中使用SQL语句向access数据库中连续插入数据,大约做几个小时的实验,每6秒钟写入一条数据到数据库中;实验结束后发现,写入数据库的一条条数据不是按照插入的时间先后顺序排列的,会出现后面插入的数据跑到前面去了,不晓得什么原因?插入到access数据库的数据不是应该插入到最后一行吗?请教各位大虾帮忙,给小弟解释一下...

解决方案 »

  1.   

    你从那看到数据排序不对了,是grid中还是access中
      

  2.   

    是看access中的数据,看到顺序不对;我没有设主键, 就是在timer中有这样几句话:  
       sql:='insert into '+form6.tablename+' values(
    '''+formatfloat('0.0',t10_count+''','''+edit1.Text+''')';
       ADOQuery1.Close;
       ADOQuery1.Connection:=ADOConnection1;
       ADOQuery1.SQL.Clear;
       ADOQuery1.SQL.Add(sql);
       ADOQuery1.ExecSQL;
      

  3.   

    最好加一个主键,否则access可能会按某种方式排序,这个可能不是记录的添加顺序
      

  4.   

    打开Microsoft Access ,打开任意一个mdb文件,然后点"工具",
    选中 “选项”,再选 "常规" 项。注意在右下方有 “新建数据库排序次序”下拉框,
    选中 “常规”。然后点确定。(注意,选项只有在有文件打开的状况下才能使用)这里估计就是默认排序规则
      

  5.   

    我的建表的语句是这样的;
    ADOQuery1.SQL.Add('create table '+edit1.Text+'([时间] varchar(10),[温度] varchar(10),[位移] varchar(10)');
    ADOQuery1.ExecSQL;
    请问一下,怎么把[时间]设为主键
      

  6.   

    ADOQuery1.SQL.Add('create table '+edit1.Text+'([时间] varchar(10) [not null] [primary key],[温度] varchar(10),[位移] varchar(10)');
    ADOQuery1.ExecSQL; 
      

  7.   

    同意5楼观点,不是数据库排序不对,是Access本身自动排序了。