估计这是最简单的方法了
你要是找不到就暂时这样用:) 要有个唯一的自添加字段
      with MyQuery do begin
        Close;
        SQL.Clear;
        SQL.Add('INSERT INTO test (name) VALUES (''' + name+ ''')');
        Execute;
      end;       edit1.Text:= inttostr(MyQuery.InsertId);

解决方案 »

  1.   

    比如 在 c/c++ 使用 MYSQL C API 编程 :
    s_sql = "create table hzhtest(";
    s_sql += "myid integer not null auto_increment,";
    s_sql += "mytime datetime null,myname varchar(30),";
    s_sql += " primary key(myid))";...
    s_sql = "insert into hzhtest(mytime,myname) values";
    这个时候我怎么知道当前插入的 myid 是多少???
      

  2.   

    一句是做不到,分开两句吧,先插入,再查询。查询的时候用 last_insert_id() 函数。
      

  3.   

    20.4.29 mysql_insert_id()
    my_ulonglong mysql_insert_id(MYSQL *mysql) 20.4.29.1 说明
    返回由先前的查询为一个AUTO_INCREMENT列生成的ID。在你执行一个INSERT查询向一个包含AUTO_INCREMENT字段的表中插入后,使用这个函数。注意,如果先前的查询不产生一个AUTO_INCREMENT值,mysql_insert_id()返回0。如果你需要在以后保存该值,必须在查询生成了该值后马上调用mysql_insert_id()。也要注意,SQL的LAST_INSERT_ID()函数总是包含最近生成的AUTO_INCREMENT值,并且在查询之间不被重置,因为该函数的值在服务器端维护。