tableBlob := TadoTable.Create(Self);//创建对象
 tableblob.connectionstring :=doc_con;//连接数据库
 tableBlob.TableName := 'Doc_Image';//连接表
 tableBlob.Open;//打开表其实我不想要任何的记录,只是相插入一条记录
//可是doc_image 记录太多,打开它需要很长时间
 tableBlob.Insert ;//插入记录
 tableBlob.FieldByName('id').AsString := 'strAttachID';
 ........
tableBlob.Open;//打开表其实我不想要任何的记录,只是相插入一条记录
//可是doc_image 记录太多,打开它需要很长时间
 请问用什么方法可以解决,谢谢大家了.
我只能还用TadoTable对象

解决方案 »

  1.   

    我知道,可是我只能用TadoTable,我现在改别人的程序
    如果换TADOQuery,将非常的麻烦
      

  2.   

    建議用TADOQuery。如果有100000條記錄都出來的話一定很慢的。
      

  3.   

    把open屏蔽了,但是只能用append了
    tableBlob.actived:=true;
    tableblob.append;
      

  4.   

    你可以用adotable.append 
    后再进行EDIT 这样可能会好点
      

  5.   

    1、定义CACHESIZE大于1,可以控制调入内存的记录数。
    2、定义LOCKTYPE为ltbatchoptimistic,批量刷新记录
      

  6.   

    to:outer2000(天外流星) 
    我知道这是动态生成,也想到用TADOQuery,可是我用TADOQuery却一直没用成功
    代码如下
    //把文件放入表中
                 tableBlob1.Open;
                 tableBlob1.Insert ;
                 tableBlob1.FieldByName('id').AsString := strAttachID;
                 tableBlob1.FieldByName('state').AsString := Trim(StringGrid_Attachments.Cells[0,i]);
    TBlobField(tableBlob1.FieldByName('image_data')).LoadFromFile(StringGrid_Attachments.Cells[3,i]);//把一个文件存入到表 Doc_Image
    字段是image_data中
    tableBlob1.Post;//提交记录
    tableBlob1.Close;//关闭表
    以上代码正常,能够实现把文件存入到数据库中
    我用TADOQuery
    代码如下
     querySQL.SQL.Clear ;
                       querySQL.SQL.Add('Insert into Doc_image(id,state)  Values (');
                       querySQL.SQL.Add(''''+strAttachID + ''',''' + Trim(StringGrid_Attachments.Cells[0,i])+'''');
    TBlobField(querySQL.FieldByName('image_data')).LoadFromFile(StringGrid_Attachments.Cells[3,i]);//这句不知如何写,如何才能把文件存入数据库中
        querySQL.ExecSQL ;
        querySQL.Close;
    希望大虾帮忙,谢谢.