我用ADOQUERY查询到若干条记录显示到了dbgrid中(字段有id,name,date)
现在要求将指针指到的记录内容显示到
edit1,edit2,和datetimepicker中然后有要实现4个功能新增:在原有的基础上做小的改动,比如只改动id, name 和date不变,成为一条新记录添加到数据库
修改:改变这条记录的内容。
下一条:将查询得出的记录后移一条,即edit1,edit2,datetimepicker的内容变成查询到的下一条记录
取消:所做的改动不改动到数据库,并退出改界面不知道可不可以完成这些功能,可以的话,请贴出示范代码。
可以运行立即给分
现在要求将指针指到的记录内容显示到
edit1,edit2,和datetimepicker中然后有要实现4个功能新增:在原有的基础上做小的改动,比如只改动id, name 和date不变,成为一条新记录添加到数据库
修改:改变这条记录的内容。
下一条:将查询得出的记录后移一条,即edit1,edit2,datetimepicker的内容变成查询到的下一条记录
取消:所做的改动不改动到数据库,并退出改界面不知道可不可以完成这些功能,可以的话,请贴出示范代码。
可以运行立即给分
解决方案 »
- 能取到TADOQuery的sql的表名吗?
- 用程序修改文件名称
- 小问题,捡分啦~~
- 登录窗口为何关不掉?各位大哥,请进来帮我看一下!谢谢,顺便祝大家五一节快乐!
- 请问哪有《DELPHI5.x分布式多层应用系统编》的附书源码下载? ——不是书,是源码!
- 一个关于InstallShield简单的问题,请进...
- 这段代码里面popallclick有什么用
- Delphi中的THTTPRIO控件在什么地方
- 各位大虾!!遇到一个DELPHI5怪现象!!!!请给予帮助!!
- 初学求解,DATASNAP客户端中的TSQLConnection控件ACTIVE=True时老是SOCKET错误
- 又多了一个角,财去人安乐~
- 消息的问题
-------------------------------
1:将指针指到的记录内容显示到
edit1,edit2,和datetimepicker中
============
procedure TForm1.adoq1AfterScroll(DataSet: TDataSet);
var inout:string;
begin
if edt_sum.Tag=1 then exit;
try
edt_sum.Text:=adoq1.fieldbyname('金额').AsString;
memo_note.Text:=adoq1.fieldbyname('备注').AsString;
edt_date.text:=adoq1.fieldbyname('日期').AsString;
inout:=adoq1.fieldbyname('类别').AsString;
-----------------------------以上供参考--------------
2。新增:把不想让人改的文本框设为只读。
再用sql添加进去就可以了3。修改,好象是用UPDATA
4。下一条。ADOQUERY好象有MOVE方法。(或者是MOVETO)5。取消。对数据库不进行任何操作,把你的edit1,edit2,和datetimepicker内容复位即可。
edit1.text := AdoQuery.FieldByName('id').Asstring;
edit2.text := AdoQuery.FieldByName('name').Asstring;
datetimepicker.date := AdoQuery.FieldByName('date').AsDatetime;新增
adoquery.insert;
edit1.clear;
在edit1输入值后保存下一条
adoquery.next;取消
ADOQuery1.CancelBatch(arAll);
adoquery.edit;
修改edit1,edit2,datetimepicker后保存
adoquery.fieldByName('id').asstring := edit1.text;
adoquery.fieldByName('name').asstring := edit2.text;
adoquery.fieldByName('date').asdatetime := datetimepicker.date;
用dbedit可以自动赋值,而且用navigator可以实现上面所有的操作但是navigator要新增记录,先要append然后再post.
这时,dbedit里的原来内容都清空了,所有的内容都要我再输入一遍。
这不是我想要的。而且不用datetimepicker输入比较麻烦。
所以我想自己手写每个按健。
但是老是出错。所以上来问问
取消 ADOQuery1.CancelBatch(arAll);好象没反应。
新增和修改到底怎么做啊?
是adoquery1.edit;
adoquery.fieldByName('id').asstring := edit1.text;
adoquery.fieldByName('name').asstring := edit2.text;
adoquery.fieldByName('date').asdatetime := datetimepicker.date;
adoquery.updaterecord;
现在就剩下新增和取消了大家快来拿分啊
adoquery1.Open;
adoquery1.insert;(或者adoquery1.append;)
adoquery1.FieldByName('num').AsString:=edit1.Text;
adoquery1.FieldByName('name').AsString:=edit2.Text;
adoquery1.ExecSQL;(或者adoquery1.post;)
都不行.请教正确的做法.
大家救救我吧.
adoquery1.open;
adoquery1.Delete;现在只有新增了,各位大哥
讲一下方法吧
adoq1.SQL.Add('INSERT INTO WEEKDAY');//weekday是表名称,是我程序中的,绝对通过。
adoq1.SQL.Add('(序号 , 日期 , 类别 , 金额 , 结余 , 备注) VALUES( ');
adoq1.SQL.Add(' '''+INTTOSTR(tMAX)+''' ,');
adoq1.SQL.Add(''''+EDT_DATE.TEXT+''',');
adoq1.SQL.Add(' '''+inout+''',');
adoq1.SQL.Add(' '''+EDT_SUM.TEXT+''',');
adoq1.SQL.Add(' '''+currToStr(ibalance)+''',');
adoq1.SQL.Add(' '''+memo_note.text+''')');
adoq1.ExecSQL;
adoq1.SQL.Clear;
adoq1.SQL.Add('select * from weekday') ;
adoq1.Close;
adoq1.Open;
adoq1.Last;