unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls, Buttons;type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    Edit1: TEdit;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.BitBtn1Click(Sender: TObject);
var xname:string;
begin
  with ADOQuery1  do
  parameters.ParamByName('XName')value:=Edit1.text;
  close;
  sql.clear;
  sql.add('insert into mytxl(xm),valuse(:XName)');
  Post;
  open;
end;end.
注MYTXL是表名;XM是列名,请问错在哪里??应如何更改?初学者请详细!

解决方案 »

  1.   

    with AdoQuery1 do
     close;
      sql.clear;
      sql.add('insert into mytxl(xm) valuse(:XName)');
      parameters.ParamByName('XName').value:=Edit1.text;
      ExecSQL;
    end; 从with到end 错误N多
      

  2.   

    with AdoQuery1 do
     close;
      sql.clear;
      sql.add('insert into mytxl(xm) valuse(:XName)'); 
      //改成:sql.add('insert into mytxl(xm) values(:XName)');  parameters.ParamByName('XName').value:=Edit1.text;
      ExecSQL;
    end;
      

  3.   

    post一般对应的是Edit,也就是用非SQL语句的修改数据方法。
    open一般在sql语句为查询语句(即只select)后用。
    execsql在用SQL语句实现插入、修改、删除则在写完SQL语句后用。希望你尽快熟悉delphi,所以就多解释了一些。
      

  4.   

    with AdoQuery1 do
     close;
      sql.clear;
      sql.add('insert into mytxl(xm) values(:XName)');
      parameters.ParamByName('XName').value:=Edit1.text;
      ExecSQL;
    end;