QXORM 使用记录 ( 二 )

 QxOrm 默认使用的create table 语句 使用的是 mysql的 ,所以他会 使用像

CREATE TABLE drug (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT, desc TEXT)

这样的语句。

但是 使用到 MSSQL上会出现问题,因为 MSSQL不支持 AUTOINCREMENT ,所已修改 源码.

在IxDataMember.cpp 中修改

QString IxDataMember::getSqlTypeAndParams(int iIndexName /* = -1 */) const

{

   QString sResult = getSqlType(iIndexName);

   sResult += (m_bNotNull ? " NOT NULL" : "");

   sResult += ((m_bIsPrimaryKey && (getNameCount() <= 1)) ? " PRIMARY KEY" : "");

 

   if (QxSqlDatabase::getSingleton()->getDriverName() == "QMYSQL") { sResult += (m_bAutoIncrement ? " AUTO_INCREMENT" : ""); }

   else if(QxSqlDatabase::getSingleton()->getDriverName() == "QODBC"){ sResult += (m_bAutoIncrement ? " IDENTITY" : ""); }

   else { sResult += (m_bAutoIncrement ? " AUTOINCREMENT" : ""); }

   return sResult;

}

 

加上了    else if(QxSqlDatabase::getSingleton()->getDriverName() == "QODBC"){ sResult += (m_bAutoIncrement ? " IDENTITY" : ""); }

   这段代码,生成代码成功。

你可能感兴趣的:(orm,职场,qt,休闲,QxOrm)