我现在有一表,表名: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;
为什么老是出错呢,究竟我错在什么地方,最好讲详细点,我刚学^_^
Query1.SQL.add('insert into zhang (RoomNO,Max guest qt) values(Edit1.text+Edit2.text,Edit3.text)');
Query1.Post;
为什么老是出错呢,究竟我错在什么地方,最好讲详细点,我刚学^_^
Query1.Execsql; //----执行insert,delete,update 等sql语句
Query1.Execsql;
----------------------------------------------------------------
花自飘零水自流,一种相思,两处闲愁。
此情无计可消除,才下眉头,又上心头。
----------------------------------------------------------------
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.
为什么呢?
哎,好烦
---Max guest qt 是什么?
不会是字段名吧
Query1.sql.add('Select * from zhang');
??
Query1.sql.clear;
Query1.sql.add('Select * from zhang');
Query1.open;
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;
现在重新运行程序后也看不到插入的记录了,郁闷死了,哎
DataSource1:dataset:=Table1
Query1:DataSource:=DataSource1,DatabaseName:=access
Table1:DatabaseName:=access,TableName:=zhang
有错吗?
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;