Office中国论坛/Access中国论坛

标题: alter table不能成功执行的问题 [打印本页]

作者: ishallwin    时间: 2004-12-8 20:57
标题: alter table不能成功执行的问题
alter table AAA add P1 char

在VC中调用ADO执行上述语句出现异常,但在此前已成功执行过几条类似语句(这个语句在一个循环中,并且会改变上述语句中的列名和列类型)。如果将最后的char改成TEXT,则此条语句可成功执行,但其它类似语句又出现问题。ACCESS对 alter table 是否有什么特殊要求?请高手指教!
作者: yangzn    时间: 2004-12-8 21:55
看来是ACCESS对表的字段规定不一样(不过好像应该为char(10)这样吧)
作者: ishallwin    时间: 2004-12-9 00:33
我的代码如下: _ConnectionPtr m_pConnection;

_variant_t rows;

char buff[5];

CString sql = "alter table AAA add P1 char";

try

{

  m_pConnection.CreateInstance(__uuidof(Connection));

  m_pConnection->Open("rovider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\db1.mdb","","",adModeUnknown);

  for(int loop=0; loop<10;loop++)

  {

   _itoa(loop, buff, 10);

   sql = "alter table AAA add ";

   sql += "";

   sql += buff;

   sql += " char";

   m_pConnection->Execute((_bstr_t)sql, &rows, adCmdText);

  }

}

catch(_com_error *e)

{

  AfxMessageBox(e->ErrorMessage());

  return;

}

在完成P6这个字段的添加后就产生异常了,不能继续P7-P9的添加。试了好几次,全这样。


作者: yangzn    时间: 2004-12-9 04:37
我的意思是这句 CString sql = "alter table AAA add P1 char"; 总应该指定字符的个数吧 是不是应该为CString sql = "alter table AAA add P1 char(你要的长度数字)" ; 你改改试试,C语言,我可不会用,虽然学过


作者: ishallwin    时间: 2004-12-9 05:52
不是长度的问题,我发现如果连续七个类型一样,就不正常,如果类型有改变则没有问题,还发现我建立表时也是,只能建立七个。继续请教如何解决这个问题。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3