在没有Post前、取DBGridEh指定列上的值(有点难度)(200)

  • 主题发起人 主题发起人 bx59830
  • 开始时间 开始时间
B

bx59830

Unregistered / Unconfirmed
GUEST, unregistred user!
假如我向DBGridEh的第三列输入了ABC字符,但此时的值还没有提交到数据库,有什么方法可以获取到ABC这三个字符。我使用以下三种方法只能读取已经提交的数据,没有提交之前读取的为空。DBGridEh1.Fields[2].AsString;DBGridEh1.Fields[2].TextDBGridEh1.DataSource.DataSet.FieldValues['字段名称']
 
dbgrid1.SelectedField.AsString;
 
dbgrid1.SelectedField.AsString; 不灵,不能读取正在输入但没有提交到数据库中的数据。
 
自己顶一下。希望有高手指点。
 
你的第三列有这样一个事件UpdateDataprocedure TFrmTest.dbgG600Columns5UpdateData(Sender: TObject; var Text: String; var Value: Variant; var UseText, Handled: Boolean);var id,nPos:Integer; Str,Str1,Str2:String; d:double;begin //修改水分 Str:= Text; if not TryStrTofloat(Str,d) then begin nPos:=Pos('.',Text); Str1:=MidStr(Text,1,nPos); Str2:=RightStr(Text,Length(Text)-nPos); Str1:=Str1+AnsiReplaceText(Str2, '.', ''); Text:=Str1; Value:=Str1; end; if Value<0 then Value:=0; if Value>30 then Value:=30; Text:=Value; ///end;
 
还是不行、当前时事件在没有提交(保存)数据之前一直没有被触发。
 
可能试下先将数据集post一下
 
如果每输入一个字符存一次盘、效率不高,有没有其它方法,随输随读数据。像TComboBox 控件、输入数据后随时都可以读取 ComboBox1.Text。
 
再没有满意的答案只能结贴了。
 
设置缓存模式,post之后并未提交到数据库,只是提交到数据集。
 
iKing 的提议非常正确、采用了。
 
多人接受答案了。
 
后退
顶部