在SQL中这样用变量不对?(50分)

  • 主题发起人 主题发起人 kcx
  • 开始时间 开始时间
K

kcx

Unregistered / Unconfirmed
GUEST, unregistred user!
var
names:string;
begin
{....}
name:='99-12-30';
myqry.sql.add('insert into');
myqry.sql.add('table'+names
代码:
myqry.sql.add('(no,name)');
myqry.sql.add('values('01','andy')');
myqry.ExecSQL;
{...}
end;


错误提示为:"invaild use keyward:-12-30(no,name)" line:2...
 
myqry.sql.add('table'+names
代码:
myqry.sql.add('values(no,name)');
 
刚才是笔误!
var
names:string;
begin
{....}
name:='99-12-30';
myqry.sql.add('insert into');
myqry.sql.add('table'+names);
myqry.sql.add('(no,name)');
myqry.sql.add('values('01','andy')');
myqry.ExecSQL;
{...}
end;
错误提示为:"invaild use keyward:-12-30(no,name)" line:2...
 
name:='99-12-30';
myqry.sql.add('insert into ');
myqry.sql.add('table '+names);
myqry.sql.add(' (no,name) ');
myqry.sql.add('values(''01'',''andy'')');
myqry.ExecSQL;
 
name:='99-12-30';
myqry.sql.add('insert into table '+names+'(no,name) values(''01'',''andy'')');
myqry.ExecSQL;
不过变量最好不要取名name
 
记得用''
Up:
支持!
 
myqry.sql.add('table'+names);?动态生成的表名,叫做Table99-12-30?是吧?至少你的代码是。
注意上面几位都在Table后面多了一个空格。
另外no,是SQL的关键字,极力反对使用,name虽然不是,不过也很不好。
尽量起一些别和关键字冲突的。
你出的错误是编译时还是运行时,编译时的错误以上的解释已经足够,运行时的错误就要查看拼装是否对了。
可以将SQL显示出来。
ShowMessage(Query1.SQL.Text),看是否正确。
 
name:='99-12-30';
myqry.sql.add('insert into ');
myqry.sql.add('[table '+names); ---[TableName]
myqry.sql.add('] (no,name) ');
myqry.sql.add('values(''01'',''andy'')');
myqry.ExecSQL;

 
各位:
这些招好象都不行啊!
names:string;
begin
names:='11';
SQL.Add('insert into aa'+n+'(names) values("safsd");');
ShowMessage(query1.sql.text);
execsql;
end;
showmessage显示:'insert into aa11(names) valuse("sdfsd");'
错误提示:'invaild use keydword. token:names) line number:1.'
 
后退
顶部