+ -
当前位置:首页 → 问答吧 → 求助post怎么设置,保存对数据库的修改

求助post怎么设置,保存对数据库的修改

时间:2011-11-10

来源:互联网

具体是我做了两个form
form1为主form 显示数据库 person表 并包括 添加 修改 删除 保存 4个按钮
在点击 添加 修改 会弹出form2  
然后对 edit1 edit2 edit3 combobox1 填写内容后 点击保存 能将数据保存到数据库
现在对点击按钮的 代码怎么写 代码我贴出来 form2的
unit Unit2;

interface

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

type
  TOperate = (otAdd, otEdit);
  TForm2 = class(TForm)
  Label1: TLabel;
  Edit1: TEdit;
  Label2: TLabel;
  Edit2: TEdit;
  Label3: TLabel;
  Edit3: TEdit;
  Button1: TButton;
  Button2: TButton;
  ComboBox1: TComboBox;
  Label4: TLabel;
  procedure Button1Click(Sender: TObject);
  private
  Fop: TOperate;
  procedure InitWindow(Query: TADOQuery);
  public
  { Public declarations }
  end;

var
  Form2: TForm2;

function ShowPersonInfo(Query: TADOQuery; op: TOperate): Boolean;

implementation
  uses Unit1;
{$R *.dfm}

function ShowPersonInfo(Query: TADOQuery; op: TOperate): Boolean;
begin
 with TForm2.Create(nil) do
 try
  Fop := op;
  InitWindow(Query);
  Result := ShowModal = mrOk;
 finally
  Free;
 end;
end;

{ TForm2 }


procedure TForm2.Button1Click(Sender: TObject);
begin
  [color=#FF0000][/color]这里要怎么写
end;

procedure TForm2.InitWindow(Query: TADOQuery);
begin
  if Fop = otAdd then
  begin
  [color=#FF0000][/color]这里是写插入部分的 要怎么写
  end;
  if Fop = otEdit then
  begin
 // showmessage(Query.FieldByName('SNAME').AsString);
  Edit1.Text := Query.FieldByName('XH').AsString;
  Edit2.text := Query.FieldByName('SNAME').AsString;
  Edit3.Text := Query.FieldByName('MARKS').AsString;
  ComboBox1.items.insert(0,query.fieldbyname('SEX').AsString);
  ComboBox1.ItemIndex:=0;
  [color=#FF0000][/color]这里是写修改部分我写了一部分 不知掉全不全
  end;
end;

end.
总体上就这么多
小弟肯定各位大虾鼎力相助

作者: xqlsaber   发布时间: 2011-11-10

[color=#FF0000][/color]这里要怎么写

Self.ModalResult := mrOk;这样关闭窗体,然后
ShowModal;
if ModalResult = mrOK then
begin
  adoquery1.edit;
  adoquery1.fieldbyname('xxx').asstring := edit1.text;
  adoquery1.Post;
end;

作者: bdmh   发布时间: 2011-11-10

引用 1 楼 bdmh 的回复:
Self.ModalResult := mrOk;这样关闭窗体,然后
ShowModal;
if ModalResult = mrOK then
begin
adoquery1.edit;
adoquery1.fieldbyname('xxx').asstring := edit1.text;
adoque……

编译后 显示adoquery1 木有定义 不知道怎么办

作者: xqlsaber   发布时间: 2011-11-10

[color=#FF0000][/color]这里是写插入部分的 要怎么写
 插入部分可以增加一个adocommand,con指向adoconnection
adocommand1.commandtext:='insert into 表(字段1,字段2) values('''+值1+''','''+值2+''')';
adocommand1.execute;

作者: funxu   发布时间: 2011-11-10

大哥,adoquery1是你ado控件的名字,自己改一下

作者: funxu   发布时间: 2011-11-10

引用 3 楼 funxu 的回复:
[ 插入部分可以增加一个adocommand,con指向adoconnection
adocommand1.commandtext:='insert into 表(字段1,字段2) values('''+值1+''','''+值2+''')';
adocommand1.execute;

这个adocommand 是控件 还是 定义的 还有那个con 怎么指向adoconnection
还是说直接把代码贴上去就好了

作者: xqlsaber   发布时间: 2011-11-10

引用 4 楼 funxu 的回复:
大哥,adoquery1是你ado控件的名字,自己改一下

本人纯新手 刚进公司 学习
新接触的不懂 
你能说详细一点吧 我知道这就跟问 高中生 100以内算术一样
不吝赐教啊

作者: xqlsaber   发布时间: 2011-11-10

我把adoquery1 改成我自己的 TADOQuery后 
又出现
This form of method call only only allowed for class methods.

作者: xqlsaber   发布时间: 2011-11-10