我从三个表里选出了想要的字段,用ADOQuery控件显示出来了。
现在我想向这个组合表里增加(或修改)一个记录。
选表的SQL语句如下:
select a_tline.f_name as 线路名称,a_tbuslist.f_buscode as 测点编码,a_tbuslist.f_busname as 监测点名称,
a_tbuslist.f_kva as 容量,a_tbuslist.f_addr 安装地址,a_tbuslist.f_busnum as 仪表号,
a_ttype.f_name as 型号,a_tbuslist.f_size as 变比,a_tbuslist.f_setdate as 安装日期,a_tbuslist.f_note as 备注
from a_tline,a_tbuslist,a_ttype
where a_tline.f_lineno=a_tbuslist.f_lineno and a_ttype.f_type=a_tbuslist.f_type
想要增加或修改字段如下: 线路名称 测点编码 监测点名称 容量 安装地址
仪表号 型号 安装日期 备注{
form2.ADOQuery1.append;
form2.ADOQuery1.fieldvalues['测点编码']:=strtoint(edit1.text);
form2.ADOQuery1.fieldvalues['监测点名称']:=edit2.text;
form2.ADOQuery1.post;
form2.ADOQuery1.refresh;
}//开始这样写的,可惜这段代码实现不了各位高手给点思路或来段实现代码更好(呵呵),小弟谢了先!
现在我想向这个组合表里增加(或修改)一个记录。
选表的SQL语句如下:
select a_tline.f_name as 线路名称,a_tbuslist.f_buscode as 测点编码,a_tbuslist.f_busname as 监测点名称,
a_tbuslist.f_kva as 容量,a_tbuslist.f_addr 安装地址,a_tbuslist.f_busnum as 仪表号,
a_ttype.f_name as 型号,a_tbuslist.f_size as 变比,a_tbuslist.f_setdate as 安装日期,a_tbuslist.f_note as 备注
from a_tline,a_tbuslist,a_ttype
where a_tline.f_lineno=a_tbuslist.f_lineno and a_ttype.f_type=a_tbuslist.f_type
想要增加或修改字段如下: 线路名称 测点编码 监测点名称 容量 安装地址
仪表号 型号 安装日期 备注{
form2.ADOQuery1.append;
form2.ADOQuery1.fieldvalues['测点编码']:=strtoint(edit1.text);
form2.ADOQuery1.fieldvalues['监测点名称']:=edit2.text;
form2.ADOQuery1.post;
form2.ADOQuery1.refresh;
}//开始这样写的,可惜这段代码实现不了各位高手给点思路或来段实现代码更好(呵呵),小弟谢了先!
解决方案 »
- 一个程序生成另一个程序怎样做?
- 鼠标指针变形不成
- InternalError:URW3950 这个问题是什么意思?
- 新手美女提问:怎样给BUTTON按钮写双击事件?
- 我在做程序时,我想在unit3单元引用unit2单元里的函数怎么做啊,我用use unit2还是说找不到该函数,不知道还要添什么代码?(在线等待)
- 帮忙!!!!!!!!!!!!!!!!!!!!!!!!在线!
- 以前过年有压岁钱,现在还要出压岁钱呜……
- 当数据量特别大时怎么办?高分求助,分不够再加.
- 关于delphi 补丁的问题(100分)很简单吧
- 如何在登陆时进行地区验证?(急,问题要今天解决,谢谢帮助)
- 谁有支持滚轮的文本编辑控件
- 动态创建的VCL的事件不能直接赋一个Procdure吗?
//删除计划
var
XH: INTEGER;begin if (Edit_ND.Text = '') or (ComboBox_YF.Text = '') then
begin
abort;
end; if DataModule1.AQ_YFMDJH.FieldByName('计划下达部门').AsString = 'FC' then
begin
Application.MessageBox('此零件由分厂下达,车间不可删除', '错误', MB_OK
+
MB_ICONEXCLAMATION + MB_DEFBUTTON1 + MB_APPLMODAL);
ABORT;
end; if DataModule1.AQ_YFMDJH.RecordCount = 0 then
begin
Application.MessageBox('目前没有记录可供删除', '错误', MB_OK
+
MB_ICONEXCLAMATION + MB_DEFBUTTON1 + MB_APPLMODAL);
ABORT;
end; XH := DataModule1.AQ_YFMDJH.FIELDBYNAME('序号').AsInteger; ///进行删除
try DataModule1.ADOCon_cjjh.BeginTrans; DataModule1.AQ_YFMDJH.Edit;
DataModule1.AQ_YFMDJH.Delete;
DataModule1.AQ_YFMDJH.UpdateBatch; //找出所有比这个序号大的数值
ADOQuery_DELETE.Close;
ADOQuery_DELETE.Parameters.ParamByName('XH_CS').Value := XH;
ADOQuery_DELETE.Parameters.ParamByName('ND_CS').Value := Edit_ND.Text;
ADOQuery_DELETE.Parameters.ParamByName('YF_CS').Value := ComboBox_YF.Text;
ADOQuery_DELETE.Open;
ADOQuery_DELETE.First; //进行序号的根新
while not ADOQuery_DELETE.Eof do
begin
ADOQuery_DELETE.Edit;
ADOQuery_DELETE.FieldByName('XH').AsInteger :=
ADOQuery_DELETE.FieldByName('XH').AsInteger - 1;
ADOQuery_DELETE.Post;
ADOQuery_DELETE.UpdateBatch();
ADOQuery_DELETE.Next;
end; DataModule1.ADOCon_cjjh.CommitTrans; except
DataModule1.ADOCon_cjjh.RollbackTrans;
Application.MessageBox('出现错误,请检查网络', '错误', MB_OK
+
MB_ICONEXCLAMATION + MB_DEFBUTTON1 + MB_APPLMODAL);
end; DataModule1.AQ_YFMDJH.Refresh;end;上段程序ADOQuery_DELETE就是专门来删除的。
一点意见,希望高手批评!