各位大虾 :
我在用VC6.0创建 ACCESS的时候使用语句:
m_connection->Execute("CREATE TABLE list(ID INTEGER,Name TEXT,PDTag TEXT,Value TEXT,Quality TEXT,TimeStamp TEXT,DeviceID TEXT,DeviceIP TEXT,DeviceType TEXT,Help TEXT)",&RecordsAffected,adCmdText); 的时候异常中断 ;
而改成:
m_connection->Execute("CREATE TABLE list(ID INTEGER,Name TEXT,PDTag TEXT)",&RecordsAffected,adCmdText); 就会 成功 ,不知为啥 啊 ?只不过是前一个比后面的多几个字段而已.ACCESS 最多不可以创建255个字段吗 ?
哪位 高手请 指教啊!谢谢 !!!!!!!!
我的代码是这样的 :
CoInitialize(NULL); //初始化COM库
_ConnectionPtr m_connection;
HRESULT hr;
_bstr_t strcnn("Provider=Microsoft.JET.OLEDB.4.0;"
"Data source=C:\\ddd.mdb");
try
{
ADOX::_CatalogPtr m_pCatalog=NULL;
hr=m_pCatalog.CreateInstance(_uuidof(ADOX::Catalog));
if(FAILED(hr))
{
_com_issue_error(hr);
}
else
{
try
{
m_pCatalog->Create(_bstr_t(strcnn));
}
catch (...)
{
}
}
}
catch (...)
{
AfxMessageBox("生成数据库失败");
return true;
}
try
{
LoadDBSource("ddd","C:\\ddd.mdb","access database");//这个是 动态加载数据源的函数,在注册表中能看到调用 这个函数后成功
}
catch(...)
{
TRACE("加载数据源失败");
return true;
}
hr=m_connection.CreateInstance(_uuidof(Connection));//创建与数据源的连接
if(FAILED(hr))
{
TRACE("与数据源连接失败");
return true;
}
hr=m_connection->Open("DSN=ddd","","",adConnectUnspecified);//打开数据源
if(FAILED(hr))
{
TRACE("打开数据源失败");
return true;
}
//m_connection->Execute("CREATE TABLE list(ID INTEGER,Name TEXT,PDTag TEXT)",&RecordsAffected,adCmdText);
m_connection->Execute("CREATE TABLE list(ID INTEGER,Name TEXT,PDTag TEXT,Value TEXT,Quality TEXT,TimeStamp TEXT,DeviceID TEXT,DeviceIP TEXT,DeviceType TEXT,Help TEXT)",&RecordsAffected,adCmdText);
......