我想用这样一段代码: with query1 do begin first; if not eof then begin if fieldbyname('sex').value = '1' then fieldbyname('sex').value : = '男' else fieldbyname('sex').value := '女'; next; end; end; 在显示时将sex字段的值由实际字符'0','1'改成‘男’或‘女’,可是出错信息说:query1:dataset not in edit or insert mode.我找了好半天书,也没找到如何修改这个状态的方法,还请指教。 谢谢。
----------------------------------------------
with query1 do begin requestlive:=true; modified:=true; if not fieldbyname('sex').value='1' then ......... end;
----------------------------------------------
-
type TForm1 = class(TForm) DataSource1: TDataSource; DBGrid1: TDBGrid; Query1: TQuery; ProgressBar1: TProgressBar; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin with query1 do begin first; ProgressBar1.Max := RecordCount; ProgressBar1.Min := 0; RequestLive:=true; Edit; if not eof then begin if fieldbyname('Xb').AsInteger = 1 then fieldbyname('Xb').AsString := '男' else fieldbyname('Xb').AsString := '女'; next; ProgressBar1.Position := ProgressBar1.Position + 1; end; end; end; end. 还是不行呀 问题出在哪了?? 出错信息:Query1 Cannot modify a readonly dateset
----------------------------------------------
我我,我是一只菜鸟,菜菜菜菜菜菜,菜菜菜菜菜菜菜菜菜菜菜菜~~~~~~~~~
你数据库的xb数据定义是什么?整形或字符?如是整形怎么可以插入字 如是字符型可以用下面: procedure TForm1.Button1Click(Sender: TObject); var Query:TQuery; begin Query:=TQuery.create(nil); Query.databasename:=你的数据库名称 Query.sql.clear; with query1 do begin first;
if not eof then begin if fieldbyname('Xb').AsInteger = 1 then begin Query.sql.clear; Query.sql.add('update 表名 set xb='男' where 'xb'='1'); Query.execsql; end; else begin Query.sql.clear; Query.sql.add('update 表名 set xb='男' where 'xb'='1'); Query.execsql; end; next;
如果只是要显示,这好办。 在你查询的query上右键,选"add all fields"然后选中“sex”字段。用OnGetText事件。 if query1.RecordCount > 0 then begin if sender.AsString ='1' then text:='男 else text:='女'; end; 显示出来的就OK了。 至于改数据库中的值,如果用DbGrid显示的话,也是可以更改的,这就不说了。
----------------------------------------------
我的联系方式:QQ:371727146MSN:boylqy23@hotmail.com