QQ登录

只需一步,快速开始

搜索
查看: 4752|回复: 89

[争议讨论] 刚学了几天delphi,找了个数据库方面的案例,希望大家一起探讨并为小弟理清思路啊。。

  [复制链接]
最佳答案
0 

尚未签到

发表于 2012-12-5 18:09:01 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
是一个基于sql server2000的仓库管理系统。。因为是刚接触数据库方面的,有点不懂。。所以传个源代码上来,文件有点大,传到115网盘上了。希望大家一起探讨下,把知道的部分注释下,贴上了。。并说下以后开发数据库方面的思路哈。。小弟新手哈,目前正在学习中,,希望高手指点哈。。。
游客,如果您要查看本帖隐藏内容请回复

1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:25 天
连续签到:0 天
发表于 2012-12-5 19:46:36 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:25 天
连续签到:0 天
发表于 2012-12-5 19:48:01 | 显示全部楼层
文件拥有者未分享该文件。不能看啊?
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:1 天
连续签到:0 天
发表于 2012-12-5 20:52:42 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 

尚未签到

 楼主| 发表于 2012-12-5 21:29:01 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 

尚未签到

 楼主| 发表于 2012-12-5 21:43:38 | 显示全部楼层
自己看了下,并结合帮助注释了下。。是商品基本信息里的一部分代码,,怎么没人回啊。。我相信大家一起讨论肯定可以研究出来的呀。。。。

unit USPJBXX;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ExtCtrls;

type
  TSPJBXX = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label3: TLabel;
    Label5: TLabel;
    Label7: TLabel;
    Label9: TLabel;
    Label11: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    Label6: TLabel;
    Label8: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Memo1: TMemo;
    GroupBox2: TGroupBox;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    Edit10: TEdit;
    Label12: TLabel;
    Label13: TLabel;
    Label10: TLabel;
    ComboBox1: TComboBox;
    Bevel1: TBevel;
    Edit11: TEdit;
    procedure SpeedButton5Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure Edit4KeyPress(Sender: TObject; var Key: Char);
    procedure Edit5KeyPress(Sender: TObject; var Key: Char);
    procedure Edit6KeyPress(Sender: TObject; var Key: Char);
    procedure Edit7KeyPress(Sender: TObject; var Key: Char);
    procedure Edit8KeyPress(Sender: TObject; var Key: Char);
    procedure Edit9KeyPress(Sender: TObject; var Key: Char);
    procedure ComboBox1DropDown(Sender: TObject);
    procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2Change(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    procedure Edit4Change(Sender: TObject);
    procedure Edit5Change(Sender: TObject);
    procedure Edit6Change(Sender: TObject);
    procedure Edit7Change(Sender: TObject);
    procedure Edit8Change(Sender: TObject);
    procedure Edit9Change(Sender: TObject);
    procedure Memo1Change(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure Edit10KeyPress(Sender: TObject; var Key: Char);
    procedure Edit11KeyPress(Sender: TObject; var Key: Char);
    procedure Edit10Change(Sender: TObject);
  private
    { Private declarations }
  public
    procedure GetAll;          //获取数据
    procedure posting;        //提交数据
    Function CanSave: Boolean; //判断是否保存
    procedure bh;             //自动编号
    Procedure tr;             //去除空字符
     { Public declarations }
  end;

var
  SPJBXX: TSPJBXX;

implementation

uses UDM, UMAIN, UGYSXX;

{$R *.dfm}
procedure TSPJBXX.tr;
var
i:integer;
begin

//原型:property ComponentCount[PkgIndex: Integer]: Integer;
//componentcount返回组件的数量

  for i:=ComponentCount - 1 downto 0 do
    if(Components[i] is TEdit) then

/原型:function Trim(const S: string): string; overload;
//function Trim(const S: WideString): WideString; overload;
//作用是除去空格和一些其他字符串

    TEdit(Components[i]).Text:=trim(TEdit(Components[i]).Text);
end;

procedure TSPJBXX.GetAll;//获得所有数据
begin
//原型:function FieldByName(const FieldName: string): TField;
//fieldByName 是 数据库控件的属性, 意思是名称指定字段。‘菜单项’是表内的字段名;.asstring 是以字符形式表示。
//如果"列名"在你SQL语句中找不到,或者表中压根就没有这个字段,就会抛出找不到"列名"字段的异常.
//不过这边对于DM不懂,下面有DM的也不懂。还没看过这方面的知识,先跳过,懂的指点下的。。
    Edit1.Text:=DM.DSOSPXX.FieldByName('商品编号').AsString;
    Edit2.Text:=DM.DSOSPXX.FieldByName('商品名称').AsString;
    Edit3.Text:=DM.DSOSPXX.FieldByName('规格').AsString;
    Edit4.Text:=DM.DSOSPXX.FieldByName('保质期').AsString;
    Edit5.Text:=DM.DSOSPXX.fieldByName('产地').AsString;
    Edit6.Text:=DM.DSOSPXX.FieldByName('单位').AsString;
    Edit7.Text:=DM.DSOSPXX.FieldByName('商品单价').AsString;
    Edit8.Text:=DM.DSOSPXX.FieldByName('批发价').AsString;
    Edit9.Text:=DM.DSOSPXX.FieldByName('零售价').AsString;
    Edit10.Text:=DM.DSOSPXX.FieldByName('商品简称').AsString;
    Edit11.Text:=DM.DSOSPXX.FieldByName('供应商名称').AsString;
    ComboBox1.Text:=DM.DSOSPXX.FieldByName('供应商编号').AsString;
    Memo1.Text:=DM.DSOSPXX.FieldByName('备注').AsString;
end;
procedure TSPJBXX.Posting;          //提交数据
begin
  if ActionCD='N' then
  BEGIN
  with DM.QSPXX do
  begin
    Close;     //关闭数据库连接
    SQL.Clear; //清除上次使用的sql语句

//SQL.Add 设置本次使用的sql语句
    SQL.Add('INSERT INTO 商品基本信息(商品名称,商品简称,规格,保质期,产地,单位,商品单价,批发价,零售价,供应商编号,供应商名称,备注,商品编号)');
    SQL.Add('Values(:商品名称,:商品简称,:规格,:保持期,:产地,:单位,:商品单价,:批发价,:零售价,:供应商编号,:供应商名称,:备注,:商品编号)');

//Parameters传递参数。数据添加   
   
    Parameters.Items[0].Value:=Edit2.Text;
    Parameters.Items[1].Value:=Edit10.Text;
    Parameters.Items[2].Value:=Edit3.Text;
    Parameters.Items[3].Value:=Edit4.Text;
    Parameters.Items[4].Value:=Edit5.Text;
    Parameters.Items[5].Value:=Edit6.Text;
    Parameters.Items[6].Value:=Edit7.Text;
    Parameters.Items[7].Value:=StrToCurr(Edit8.Text);
    Parameters.Items[8].Value:=StrToCurr(Edit9.Text);
    Parameters.Items[9].Value:=ComboBox1.Text;
    Parameters.Items[10].Value:=Edit11.Text;
    Parameters.Items[11].Value:=Memo1.Text;
    Parameters.Items[12].Value:=Edit1.Text;

//原型:property Prepared: WordBool;
//如果设置为真,准备命令组件连接到一个数据存储,数据库准备命令之前执行它。如果准备设置为fal se,干脆不准备命令。

    Prepared:=True;

/原型:function ExecSQL: Integer;
//呼叫execsql执行SQL语句目前分配给查询的性能。使用execsql执行查询不返回光标数据(如插入,更新,删除,并创建表)。
//execsql返回一个整型值反映所影响的行数执行语句。

    ExecSQL;


  end;
  END else
  if ActionCD='M' then
  begin
    With DM.QSPXX DO
    begin
      Close;
      SQL.Clear;
      SQL.Add('update 商品基本信息 Set 商品名称=:商品名称1,商品简称=:商品简称1,');
      SQL.Add('规格=:规格1,保质期=:保质期1,产地=:产地1,单位=:单位1,');
      SQL.Add('商品单价=:商品单价1,批发价=:批发价1,零售价=:零售价1,供应商编号=:供应商编号1,供应商名称=:供应商名称1,备注=:备注1 Where 商品编号=:商品编号1');
      Parameters.Items[0].Value:=Edit2.Text;
      Parameters.Items[1].Value:=Edit10.Text;
      Parameters.Items[2].Value:=Edit3.Text;
      Parameters.Items[3].Value:=Edit4.Text;
      Parameters.Items[4].Value:=Edit5.Text;
      Parameters.Items[5].Value:=Edit6.Text;
      Parameters.Items[6].Value:=Edit7.Text;
      Parameters.Items[7].Value:=StrToCurr(Edit8.Text);
      Parameters.Items[8].Value:=StrToCurr(Edit9.Text);
      Parameters.Items[9].Value:=ComboBox1.Text;
      Parameters.Items[10].Value:=Edit11.Text;
      Parameters.Items[11].Value:=Memo1.Text;
      Parameters.Items[12].Value:=DM.DSOSPXX.FieldByName('商品编号').AsString;
      Prepared:=true;
      ExecSQL;
    end;
  end;
end;

function TSPJBXX.CanSave: Boolean;//判断是否保存
begin
  if Edit1.Text='' then
  begin
    Result:=False;
    Application.MessageBox('商品编号不能为空!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if Edit2.Text='' then
  begin
    Result:=False;
    Application.MessageBox('商品名称不能为空!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if Edit10.Text='' then
  begin
    Result:=False;
    Application.MessageBox('商品简称不能为空!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if Edit3.Text='' then
  begin
    Result:=False;
    Application.MessageBox('商品规格不能为空!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if Edit4.Text='' then
  begin
    Result:=False;
    Application.MessageBox('保质期不能为空!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if Edit5.Text='' then
  begin
    Result:=False;
    Application.MessageBox('商品产地不能为空!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if Edit6.Text='' then
  begin
    Result:=False;
    Application.MessageBox('商品单位不能为空!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if Edit7.Text='' then
  begin
    Result:=False;
    Application.MessageBox('商品进价不能为空!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if Edit8.Text='' then
  begin
    Result:=False;
    Application.MessageBox('商品批发价不能为空!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if Edit9.Text='' then
  begin
    Result:=False;
    Application.MessageBox('商品零售价不能为空!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if ComboBox1.Text='' then
  begin
    Result:=False;
    Application.MessageBox('供应商编号不能为空!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if Edit11.Text='' then
  begin
    Result:=False;
    Application.MessageBox('供应商名称不能为空!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if strtofloat(Edit7.Text)>strtofloat(Edit8.Text) then
  begin
    Result:=False;
    Application.MessageBox('进价不能大于批发价!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if strtofloat(Edit8.Text)>strtofloat(Edit9.Text) then
  begin
    Result:=False;
    Application.MessageBox('批发价不能大于零售价!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if strtofloat(Edit7.Text)>strtofloat(Edit9.Text) then
  begin
    Result:=False;
    Application.MessageBox('进价不能大于零售价!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  
end;
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:25 天
连续签到:0 天
发表于 2012-12-5 22:13:02 | 显示全部楼层
我也刚开始学的,一起进步吧~:D
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:262 天
连续签到:1 天
发表于 2012-12-7 11:57:17 | 显示全部楼层
嗯,多谢楼主分享了哈,那就看看呗
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:25 天
连续签到:0 天
发表于 2012-12-7 14:51:32 | 显示全部楼层
呵呵呵额呵呵呵呵呵呵呵呵
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:479 天
连续签到:1 天
发表于 2012-12-7 19:01:47 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:213 天
连续签到:1 天
发表于 2012-12-19 20:34:52 | 显示全部楼层
我也需要数据库方面的资料。
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:2 天
连续签到:0 天
发表于 2012-12-20 13:12:09 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 

尚未签到

发表于 2013-1-21 19:37:06 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:8 天
连续签到:1 天
发表于 2013-5-11 19:10:38 | 显示全部楼层
楼主加油,鱼C加油!我们都看好你哦!
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
3 
累计签到:356 天
连续签到:1 天
发表于 2013-5-11 22:27:12 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:2 天
连续签到:0 天
发表于 2013-6-9 22:46:37 | 显示全部楼层
激动,激动,激动。。。。。
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:3 天
连续签到:1 天
发表于 2013-10-29 21:37:34 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 

尚未签到

发表于 2013-10-30 08:40:06 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:44 天
连续签到:1 天
发表于 2013-10-30 09:20:07 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:44 天
连续签到:1 天
发表于 2013-10-30 09:21:03 | 显示全部楼层
提示:文件拥有者未分享该文件!!坑爹呀!!
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋手机版Archiver( 粤公网安备 44051102000370号 | 粤ICP备11014136号

© 2010-2017 FishC.com GMT+8, 2017-10-22 01:44 Powered by Discuz! X2.5 Theme by dreambred

快速回复 返回顶部 返回列表