首 页最新软件下载排行文章资讯投稿发布下载专题
维维下载站
您的位置:首页编程开发网络编程编程其它 → 利用delphi+SQL语句实现sql里数据减少

利用delphi+SQL语句实现sql里数据减少

来源:维维整理 发布时间:2010-5-4 15:46:00 人气:

今天要给各位朋友带来的是利用delphi+SQL语句实现sql里数据减少实例一览,做了一仓库系统想用delphi实现sql里数量减少的界面?跪求各位高手帮帮忙,就是比如数据里有个数量的字段,我用delphi做个界面在EDIT1输入商品名 再在一个EDIT2里输入数量 按确定后数据库里的数量就变成原来的数量减去了,EDIT2所输的数量所得的数字了,下面咱们一块来了解一下吧。

Sql语句:

var

 sSQL:String;

...

sSQL:='Update 表名 Set  [买入数量]=[买入数量]-'+Edit2.text+' Where 商品名='''+Edit1.text+'''';

然后只要在数据连接(AdoConnection)或者是(AdoQuery)之类的做下执行这个SQL语句就行啦。

{Edt_Code             商品编号编辑框

Edt_Name             商品名称编辑框

Edit1                     卖出数量编辑框

Button1                 确定按钮

ADODataSet1       数据集对象}                            
{----------------------------------
        商品编号框移出焦点事件
-----------------------------------}
procedure TForm1.Edt_CodeExit(Sender: TObject);
begin
    If Trim(Edt_Code.Text)='' then exit;
    ADODataSet1.GetBookmark
    If ADODataSet1.Locate('商品编号',Edt_Code.Text[]) then         //根据编号查品名
    begin
        Edt_Name.Text:=ADODataSet1.fieldbyname('商品名称').AsString;
    end;
end;

{----------------------------------
        确定按钮点击事件
-----------------------------------}
procedure TForm1.Button1Click(Sender: TObject);
{第二种情况的代码
 var
    sSQL:String;
}
begin
    If StrToFloatDef(Edit1.Text,0)=0 then
    begin
        Showmessage('请输入不为零的数量');
        Exit;
    end;
{1、按你的窗体写法,不考虑并发操作时可以用这种方式}
    With ADODataSet1 do
    Try
        If Locate('商品编号',Edt_Code.Text[]) then         //根据编号定位
        begin
            If Not (State in [dsEdit]) then Edit;
            Fieldbyname('商品销售量').Value:=Fieldbyname('商品销售量').AsCurrency+StrToFloatDef(Edit1.Text,0);
            Fieldbyname('商品库存').Value:=Fieldbyname('商品库存').AsCurrency-StrToFloatDef(Edit1.Text,0);
            Post;
        end;
    Except On E:Exception do
        begin
            Cancel;
        End;
    End;
{2、因为不知道你的编程习惯(数据连接访问方面的),因此不知道该怎么给你写代码
  假设你有一个叫AdoConnection1的数据连接对象,而且AdoConnection1连接已建立,那么:
  下面就是第二种方法的代码:

  sSQL:='Update 表 Set [商品销售量]=[商品销售量]+'+Edit1.Text+' Where 商品编号='''+Edt_Code.text+'''';
  AdoConnection1.Execute(sSQL);
  ADODataSet1.Requery();
  //若存在并发情况的话,这种方式可以再加上事务处理
}
end;

相关下载
栏目导航
本类热门阅览