我从一张表中查处一个int型的数据项,把它在于另一个数相加,在更新回该数据项,Delphi报无法操作,不知语句该如何写才对 ?谢谢帮助。
a,b:integer
a;=adoquery1.FieldByName('字段').Value+b;//不能执行
adoquery1.sql.add('update 表名 set 字段=''a'' where=……);
这个update语句中的变量a的付值,adoquery与大部分书上讲的qrery的属性也不一样,没有params和后面一连串属性来给a付值,不好意思请多多帮助解决上面两个问题。
a,b:integer
a;=adoquery1.FieldByName('字段').Value+b;//不能执行
adoquery1.sql.add('update 表名 set 字段=''a'' where=……);
这个update语句中的变量a的付值,adoquery与大部分书上讲的qrery的属性也不一样,没有params和后面一连串属性来给a付值,不好意思请多多帮助解决上面两个问题。
解决方案 »
- bass.dll 怎么设置缓冲目录
- 【大家来说说】你是如何在delphi中运用面向对象的?
- 怎样将TMemoryStream转换成string,然后将string 转换成TMemoryStream 并保存。
- 怎樣獲得漢字拼音的第一個字母!
- 为什么我用XMLDocument生成的xml文件只有一行,没有换行?
- 屏蔽掉的事件怎么恢复?
- 真是的,怎么回事?我一运行就这样
- 请问在delphi 中如何打开并控制ps/2端口
- 新手请教几个问题,请知道的兄弟指点一二。
- 推荐学Pascal语法的经典书!最好是电子版的!
- 关于动态设置Midas应用程序服务器连接数据库的问题,请高手指点。
- 如何屏蔽SQL语句里的特殊字符,如括号,星号(*)等?
adoquery1.sql.add(format('update 表名 set 字段= %d where=……',[a]));
a;=adoquery1.FieldByName('字段').AsInteger+b;//不能执行
adoquery1.sql.text := 'update 表名 set 字段=''' + IntToStr(a) +''' where=……';
如下:
窗体用了一个adoconnection,一个adoquery,一个datasource,一个button,一个dbedit运行结果:每单机一次,dbedit的值增加b的值,这里为2.5////////////////////////////////////////////////////////////
按钮单机事件如下:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
a_previous,a_changed,b:double;
begin
//------------------------------------
b:=2.5;
a_previous:=strtofloat(dbedit1.Text);
a_changed:=strtofloat(dbedit1.Text)+b;
//------------------------------------
with adoquery1 do
begin
//------------------------------------
Close;
SQL.Clear;
sql.add('update 东一变 set 电压35KV=:a_changed where(电压35KV=:a_previous)');
Parameters.ParamByName('a_changed').Value:=a_changed;
Parameters.ParamByName('a_previous').Value:=a_previous;
ExecSQL;
//------------------------------------
Close;
SQL.Clear;
sql.add('select * from 东一变');
open;
//------------------------------------end;
/////////////////////////////////////////////////////////////////////
窗体代码如下:
object Form1: TForm1
Left = 248
Top = 278
Width = 544
Height = 375
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object DBEdit1: TDBEdit
Left = 120
Top = 136
Width = 121
Height = 21
DataField = '电压35KV'
DataSource = DataSource1
TabOrder = 0
end
object BitBtn1: TBitBtn
Left = 288
Top = 48
Width = 75
Height = 25
Caption = 'BitBtn1'
TabOrder = 1
OnClick = BitBtn1Click
end
object ADOConnection1: TADOConnection
Connected = True
ConnectionString =
'Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=G:\My_D' +
'ataBase\my access database\My_电力信息远传系统.mdb;Persist Security Info' +
'=True'
LoginPrompt = False
Mode = cmShareDenyNone
Provider = 'Microsoft.Jet.OLEDB.4.0'
Left = 48
Top = 16
end
object ADOQuery1: TADOQuery
Active = True
Connection = ADOConnection1
CursorType = ctStatic
Parameters = <>
SQL.Strings = (
'select * from 东一变;')
Left = 120
Top = 16
end
object DataSource1: TDataSource
DataSet = ADOQuery1
Left = 184
Top = 16
end
end
":"号而不是“;”
这样不行吗??
--------------------------------------- 欢迎访问 http://www.coderpub.com 技术论坛