新人求教delphi sql操作

lslcxlsl 2014-03-21 05:48:22
Parameters.Items[0].Value:=Edit2.Text; 这个是啥意思我搞不明白 ,Parameters 是啥?

SQL.Add('update 商品基本信息 Set 商品名称=:商品名称1,商品简称=:商品简称1,');
SQL.Add('规格=:规格1,保质期=:保质期1,产地=:产地1,单位=:单位1,');
SQL.Add('商品单价=:商品单价1,批发价=:批发价1,零售价=:零售价1,供应商编号=:供应商编号1,供应商名称=:供应商名称1,备注=:备注1 Where 商品编号=:商品编号1');

上面这个sql update 操作 商品名称=:商品名称1 的商品名称1这个是获取的edit里的数据还是作者写的一个常量.我想写成变量应该怎么做?

unit USPJBXX;


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
for i:=ComponentCount - 1 downto 0 do
if(Components[i] is TEdit) then
TEdit(Components[i]).Text:=trim(TEdit(Components[i]).Text);
end;
procedure TSPJBXX.GetAll;//获得所有数据
begin
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.Add('INSERT INTO 商品基本信息(商品名称,商品简称,规格,保质期,产地,单位,商品单价,批发价,零售价,供应商编号,供应商名称,备注,商品编号)');
SQL.Add('Values(:商品名称,:商品简称,:规格,:保持期,:产地,:单位,:商品单价,:批发价,:零售价,:供应商编号,:供应商名称,:备注,:商品编号)');
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;
Prepared:=True;
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;



procedure TSPJBXX.SpeedButton1Click(Sender: TObject);
begin //在添加时, 窗体控件初始化
GroupBox1.Enabled:=True;
SpeedButton2.Enabled:=False;
SpeedButton3.Enabled:=True;
SpeedButton4.Enabled:=True;
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
Edit4.Clear;
Edit5.Clear;
Edit6.Clear;
Edit7.Clear;
Edit8.Clear;
Edit9.Clear;
Edit10.Clear;
Edit11.Clear;
ComboBox1.Clear;
Memo1.Clear;
ActionCD:= 'N';
bh;
Edit2.SetFocus;
SpeedButton1.Enabled:=False;
end;

procedure TSPJBXX.SpeedButton2Click(Sender: TObject);
begin
GroupBox1.Enabled:=True;
SpeedButton1.Enabled:=False;
SpeedButton3.Enabled:=True;
SpeedButton4.Enabled:=True;
ACtionCD := 'M';
end;

procedure TSPJBXX.SpeedButton3Click(Sender: TObject);
begin
if (cansave) then
begin
Posting; // 提交存盘
GroupBox1.Enabled:=False;
DM.DSOSPXX.Close;
DM.DSOSPXX.Open;
with DM.QSPXX do
begin
Close;
SQL.Clear;
SQL.Add('Select * from 商品基本信息');
Open;
end;
Application.MessageBox('保存成功!','提示!',64);
actioncd:='';
SPJBXX.Close;
end;
end;

procedure TSPJBXX.SpeedButton4Click(Sender: TObject);
begin
SpeedButton1.Enabled:=True;
SpeedButton2.Enabled:=True;
SpeedButton3.Enabled:=False;
SpeedButton4.Enabled:=False;
GroupBox1.Enabled:=False;
ActionCD:='';
GetAll;
end;

procedure TSPJBXX.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
Edit10.SetFocus;
end;

procedure TSPJBXX.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
Edit5.SetFocus;
end;

procedure TSPJBXX.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
Edit3.SetFocus;
end;

procedure TSPJBXX.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
Edit6.SetFocus;
end;

procedure TSPJBXX.Edit6KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
Edit7.SetFocus;
end;

procedure TSPJBXX.Edit7KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9','.',#13,#8]) then
key:=#0;
if key=#13 then
Edit8.SetFocus;
end;

procedure TSPJBXX.Edit8KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9','.',#13,#8]) then
key:=#0;
if key=#13 then
Edit9.SetFocus;
end;

procedure TSPJBXX.Edit9KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9','.',#13,#8]) then
key:=#0;
if key=#13 then
ComboBox1.SetFocus;
end;

procedure TSPJBXX.ComboBox1DropDown(Sender: TObject);
var
i:integer;
begin //将供应商编号显示在ComboBox1中
ComboBox1.Clear;
with DM.QGYSXX do
begin
SQL.clear;
SQl.Text := 'select 供应商编号 from 供应商基本信息';
Close;
Active := False;
prepared := False;
prepared := True;
Active := True;
if (recordcount > 0) then
first;
for i := 0 to recordcount - 1 do
begin
combobox1.Items.add(FieldByName('供应商编号').asstring);
next;
end;
end;
end;

procedure TSPJBXX.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in[#13,#46]) then
key:=#0;
if key=#13 then
Edit11.SetFocus;
end;

procedure TSPJBXX.Edit2Change(Sender: TObject);
begin
tr
end;

procedure TSPJBXX.Edit3Change(Sender: TObject);
begin
tr
end;

procedure TSPJBXX.Edit4Change(Sender: TObject);
begin
tr
end;

procedure TSPJBXX.Edit5Change(Sender: TObject);
begin
tr
end;

procedure TSPJBXX.Edit6Change(Sender: TObject);
begin
tr
end;

procedure TSPJBXX.Edit7Change(Sender: TObject);
begin
tr
end;

procedure TSPJBXX.Edit8Change(Sender: TObject);
begin
tr
end;

procedure TSPJBXX.Edit9Change(Sender: TObject);
begin
tr
end;

procedure TSPJBXX.Memo1Change(Sender: TObject);
begin
Memo1.Text:=Trim(Memo1.Text);
end;

procedure TSPJBXX.ComboBox1Change(Sender: TObject);
begin
Edit11.Clear; //通过供应商编号,将供应商名称显示在Edit1组件中
with DM.QGYSXX do
begin
Close;
SQL.Clear;
SQL.Add('Select 供应商名称 from 供应商基本信息 where 供应商编号='+''''+ComboBox1.Text+'''');
Open;
end;
Edit11.Text:=DM.QGYSXX.FieldByName('供应商名称').Value;
Edit11.SetFocus;
end;

procedure TSPJBXX.Edit10KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
Edit4.SetFocus;
end;

procedure TSPJBXX.Edit11KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in[#13]) then
key:=#0;
if key=#13 then
Memo1.SetFocus;
end;

procedure TSPJBXX.Edit10Change(Sender: TObject);
begin
tr;
end;

end.
...全文
126 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
bdmh 2014-03-22
  • 打赏
  • 举报
回复
参数化sql查询

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧