ADOQueryのTField.DefaultExpressionプロパティに設定した値が新規行作成時に反映されない

解決


pandorabox  2007-07-26 23:08:10  No: 27201

DBGrid→DataSource1→ADOQueryと紐つけてデータを表示させたのですが、
新規行作成時にデフォルト値を設定したいと考えています。

 ADOQuery1.FieldByName('xxx').DefaultExpression := 'yyy';

と設定を行いました、
新規行が表示された際に空の項目のままだったのです。

プロパティの設定が間違っているのか
そもそもこのプロパティでいいのかわからず
質問いたしました。
よろしくお願いします。


pandorabox  2007-07-28 02:06:28  No: 27202

http://support.codegear.com/jp/article/36473
TField オブジェクトに DefaultExpression の指定を行うには

上記記事をみて下記のように設定してみました
 ADOQuery1.FieldByName('xxx').DefaultExpression := '''yyy''';
がうまくいきませんでした。


pandorabox  2007-07-28 02:16:24  No: 27203

VCL内のリソースを追ってみても
GetHasConstraintsメソッド内でしか使われていないような感じです。


Ru  2007-07-28 02:26:42  No: 27204

DefaultExpression使ったことないので代替案。
AfterInsertイベントでは無理ですかね?

procedure TForm1.ADOQuery1AfterInsert(DataSet: TDataSet);
begin
  DataSet.FieldByName('xxx').AsString := 'yyy';
end;

ADOはやったことないので想像です。
ご容赦ください。


pandorabox  2007-08-14 18:00:33  No: 27205

Ruさんの方法で解決しました。
ありがとうございます


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加