救急:动态添加字段(100分)

  • 主题发起人 主题发起人 js
  • 开始时间 开始时间
J

js

Unregistered / Unconfirmed
GUEST, unregistred user!

创建表用ADODataSet时出错,而用ADOQuery行,why?
如何动态添加字段到表temp

表X
zh ....
1
2
3
...

结果:
表temp
Y 1 2 3 ...
.
.
.
我错在那里?
with DataModule2.ADOQuery_Temp do begin
SQL.Clear;
SQL.Add( 'ALTER TABLE Temp ADD COLUMN myzh CHAR(5) where myzh=:zh ');
Parameters.ParamByName('myzh').value:= DataModule2.ADOTable_xzh.fieldbyname('zh').value;
ExecSQL;
end;
 
帮帮忙吧,我被这问题挡了
还有,打错了:
DataModule2.ADOTable_x.fieldbyname('zh').value;
 
procedure bt1onclick(sender:object);
var s:string;
try
s:='ALTER TABLE Temp ADD COLUMN'+DataModule2.ADOTable_xzh.fieldbyname('zh').asstring
+'CHAR(5)';
with DataModule2.ADOQuery_Temp do begin
sql.clear;
sql.add(s);
execsql;
except

end;
 
还是不行,到第二时出错,并中止了程序:Syntax error in field definition.
while not DataModule2.DataSource_x.DataSet.Eof do begin
myX:= DataModule2.ADOTable_x.fieldbyname('zh').AsString;
myY:='ALTER TABLE jc_Temp ADD COLUMN '+DataModule2.ADOTable_x.fieldbyname('zh').AsString+' CHAR(5)';
try
with DataModule2.ADOQuery_jc_Temp do begin
messageDLg(myX,mtError,[mbOK],0);
SQL.Clear;
SQL.Add(myY);
ExecSQL;
end; //with
finally
DataModule2.DataSource_x.DataSet.Next;
end; //f
end; //while
 
不好意思,由于使用了mask,而messageDLg(myX,mtError,[mbOK],0);没有发现,
但是为什么try...finally不起作用?
第一个问题:创建表用ADODataSet时出错,而用ADOQuery行,为什么?
 
既然不返回数据,就不要用ADODataSet
用ADOCommand
 
多人接受答案了。
 
后退
顶部