我用如下代码建立了一个临时表
  self.DS := tclientdataset.Create(nil);
  self.DS.FieldDefs.Add('No',ftAutoInc);
  self.DS.FieldDefs.Add('ProductID',ftString,20);
  self.DS.FieldDefs.Add('Name',ftstring,40);
  self.DS.FieldDefs.Add('Price',ftCurrency);
  self.DS.FieldDefs.Add('Total',ftsmallint);
  self.DS.FieldDefs.Add('Discount',ftsmallint);
  self.DS.FieldDefs.Add('Money',ftCurrency);
  self.DS.IndexDefs.Add('No','No',[ixPrimary]);
  self.DS.CreateDataSet;
  self.dataTemp.DataSet := self.DS;
  self.DS.Open;我想对 Price, Total, Discount, Money 设置默认值及取值范围,该在哪里 添加什么语句?

解决方案 »

  1.   

    你添加的每个字段有DefaultExpression属性
      

  2.   

    我看到了DefaultExpression属性,但是这个属性是 string 型的,可是我的字段的值类型可能是别的,我怎么设置值呢
      

  3.   

    数据库中可以设置默认值的有几种?   就基本哪几种数据类型 字符串,整数,BOL  你直接赋值字符串 它会隐式转换的
      

  4.   

     with cds do
      begin
        with FieldDefs.AddFieldDef do
        begin
          DataType := ftBoolean;
          Name := 'CheckB';
        end;
        with FieldDefs.AddFieldDef do
        begin
          DataType := ftString;
          Size := 20;
          Name := 'WareName';
        end;
        with FieldDefs.AddFieldDef do
        begin
          DataType := ftCurrency;
          Name := 'UnitPrice';
        end;
        with FieldDefs.AddFieldDef do
        begin
          DataType :=ftFloat;
          Name := 'Quantity';
        end;
        with FieldDefs.AddFieldDef do
        begin
          DataType := ftString;
          Size :=15 ;
          Name := 'ProductPlace';
        end;
      end;
      

  5.   

    默认值在 CDS 的 OnNewRecord 中设置
    取值范围在 CDS 的 BeforePost  中设置