i suppose to find Index field auto_increment from a mysql or other .... fld.isAutoValue() must return true....

fld.requiredStatus give true ....

wy is evry QSqlRecord false?

how i can find it....?


Qt Code:
  1. QString Browser::StructureTable( QSqlRecord now )
  2. {
  3. QSqlRecord rec = now;
  4. QString createtable;
  5. QString sqltipename;
  6. QStringList CreateTable;
  7. int totalcools = rec.count();
  8. if (totalcools > 0) {
  9. /* sqlite3 table construct from odbc converter */
  10. for (int i = 0; i < totalcools; ++i) {
  11. QSqlField fld = rec.field(i);
  12. QString name = Strtrimmed(fld.name());
  13. QString typeoffield = QString(QVariant::typeToName(fld.type()));
  14. /* fld.isAutoValue() never true from auto_increment mysql ??? */
  15. if (fld.requiredStatus() and i < 2 and typeoffield == "int") {
  16. sqltipename = QString("%1 INTEGER PRIMARY KEY").arg(name);
  17. } else if ( typeoffield == "double" or typeoffield == "int" ) {
  18. sqltipename = QString("%1 NUMERIC").arg(name);
  19. } else if ( typeoffield == "QByteArray") {
  20. sqltipename = QString("%1 BLOB").arg(name);
  21. } else {
  22. sqltipename = QString("%1 TEXT").arg(name);
  23. }
  24. CreateTable.append(sqltipename);
  25. ////////qDebug() << "### fieldname " << name;
  26. ///////////qDebug() << "### typeoffield " << typeoffield;
  27. }
  28. QString midlecreate = CreateTable.join(",");
  29. midlecreate.prepend(QString("CREATE TABLE %1 (").arg(runningtable));
  30. midlecreate.append(");");
  31. createtable = midlecreate;
  32. }
  33. return createtable;
  34. }
To copy to clipboard, switch view to plain text mode