我现在有一表,表名:zhang,其中有两个字段:RoomNo,Max guest qt,我用table1和datasource1连接它,使得在运行时在dbgrid中显示其记录,现在我想动态的处理这张表,我是这么做的:
Query1.SQL.add('insert into zhang (RoomNO,Max guest qt) values(Edit1.text+Edit2.text,Edit3.text)');
Query1.Post;
为什么老是出错呢,究竟我错在什么地方,最好讲详细点,我刚学^_^

解决方案 »

  1.   

    Query1.SQL.add('insert into zhang (RoomNO,Max guest qt) values(Edit1.text+Edit2.text,Edit3.text)');
    Query1.Execsql;   //----执行insert,delete,update 等sql语句
      

  2.   

    不行啊,还是出错:Project Project2.exe exception class EDBEngineError with message 'General SQL errer.  [Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.'.Process stopped. Use Setp or Run to continue.
      

  3.   

    把SQL语句SHOW出来看看就清楚了
      

  4.   

    show 出来看了,怎么Edit1.text,Edit2.text,Edit3.text 读不到数据呢,奇怪了
      

  5.   

    没错啊,我在edit1,edit2,edit3中分别输入了1,2,3,怎么用showmessage('insert into zhang (RoomNO,Max guest qt) values(Edit1.text+Edit2.text,Edit3.text)');得到的结果是insert into zhang (RoomNO,Max guest qt) values(Edit1.text+Edit2.text,Edit3.text)呢?
      

  6.   

    Query1.SQL.add('insert into zhang (RoomNO,Max guest qt) values('''+Edit1.text+Edit2.text+''','''+Edit3.text+''')');
    Query1.Execsql;
    ----------------------------------------------------------------
                 花自飘零水自流,一种相思,两处闲愁。
                   此情无计可消除,才下眉头,又上心头。
    ----------------------------------------------------------------
      

  7.   

    我这样改了下:
    str:String;
    str:='insert into zhang (RoomNo,Max guest qt) values'+'("'+Edit1.text+Edit2.text+'","'+Edit3.text+"')';
    showmessage(str);
    show 出来的结果是insert into zhang(RoomNo,Max guest qt) values('2233',44)
    应该没错了啊,为什么运行时不但dbgrid1中没多加入一条记录,还跳出这样一个框:
    Project Project2.exe exception class EDBEngineError with message 'General SQL errer.  [Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.'.Process stopped. Use Setp or Run to continue.
    为什么呢?
    哎,好烦
      

  8.   

    insert into zhang(RoomNo,Max guest qt) values('2233',44)
    ---Max guest qt  是什么?
      不会是字段名吧
      

  9.   

    现在能想数据库中插入记录了,但是每次插入记录后都必需重新运行程序后才能看到效果,这样才能点add button后即能看到插入的记录呢?
      

  10.   

    这样吗:
    Query1.sql.add('Select * from zhang');
    ??
      

  11.   

    Query1.close
    Query1.sql.clear;
    Query1.sql.add('Select * from zhang');
    Query1.open;
      

  12.   

    这是整个代码:
    var
    str:string;
    begin
    str:='insert into zhang (RoomNO,Max guest qt) values('''+Edit1.text+Edit2.text+''','''+Edit3.text+''')';
    Query1.sql.add(str);
    Query1.close
    Query1.sql.clear;
    Query1.sql.add('Select * from zhang');
    Query1.open;
    Query1.execsql;
    end;
    现在重新运行程序后也看不到插入的记录了,郁闷死了,哎
      

  13.   

    是不是我的属性设置有问题呢?
    DataSource1:dataset:=Table1
    Query1:DataSource:=DataSource1,DatabaseName:=access
    Table1:DatabaseName:=access,TableName:=zhang
    有错吗?
      

  14.   

    var
    str:string;
    begin
    str:='insert into zhang (RoomNO,Max guest qt) values('''+Edit1.text+Edit2.text+''','''+Edit3.text+''')';Query1.close;
    Query1.sql.clear;
    Query1.sql.add(str);
    Query1.execsql;Query1.close;
    Query1.sql.clear;
    Query1.sql.add('Select * from zhang');
    Query1.open;end;