其他类型的字段都能解析,唯独这个类型不知道怎么解析。我在客户端是用cxDBImage显示和保存的,请问delta更新语句怎么解析成SQL。。

解决方案 »

  1.   

    可以参考http://hi.baidu.com/0xcea4/blog/item/b01c4bdb1576f1d1b7fd48c5.html
      

  2.   


    var qy:TAdoquery;
        dsp:TDataSetProvider;
        ErrCount:Integer;
        adoConnString:string;//连接串
        sqlString:string;//Sql文本,如:'select * from test where 1=0'
    begin
      adoConnString:=ADOConnection1.ConnectionString;
      dsp:=TDataSetProvider.Create(nil);
      qy:=TAdoquery.create(nil);
      try
        qy.ConnectionString:=adoConnString;
        qy.close;
        qy.sql.text:=sqlString;
        dsp.DataSet:=qy;
        dsp.ApplyUpdates(ClientDataSet1.Delta,0,ErrCount);//提交 Delta 数据(含blob和其他类型数据)
      finally
        qy.free;
        dsp.free;
      end;
    end;
      

  3.   

    一下代码在delphi6、7中测试通过:procedure TForm1.Button3Click(Sender: TObject);
    var qy:TAdoquery;
        dsp:TDataSetProvider;
        ErrCount:Integer;
    begin
      if ClientDataSet1.ChangeCount=0 then
      begin
        showmessage('数据没有更改,无须提交。');
        exit;
      end;
      dsp:=TDataSetProvider.Create(nil);
      qy:=TAdoquery.create(nil);
      try
        qy.Connection:=ADOConnection1;
        qy.close;
        qy.sql.text:='select * from test where 1=0';
        dsp.DataSet:=qy;
        dsp.ApplyUpdates(ClientDataSet1.Delta,0,ErrCount);
      finally
        qy.free;
        dsp.free;
      end;
    end;