Seite 1 von 1

<reinterpret_cast<objekt> auf QT4 mac/linux

Verfasst: 11. April 2006 13:54
von patrik08
Hat jemand erfahrung gemacht beim kompilieren von einen objekt
exportiert aus der classe a zur classe b friend und wieder zur classe a
retour...
Mit einem <reinterpret_cast<objekt> .... rein und wieder raus
so wie di callback von sqlite3...

der ganze code... http://www.adp-gmbh.ch/sqlite/wrapper.html
auf mac mit QT nicht kompilierbar ... eben <reinterpret_cast<objekt>...
auf window habe ich nicht probiert...


Code: Alles auswählen


// TODO parameter p_col_names
int SQLiteWrapper::SelectCallback(void *p_data, int num_fields, char **p_fields, char** p_col_names) {
  ResultTable* res = reinterpret_cast<ResultTable*>(p_data);

  ResultRecord record;

#ifdef SQLITE_WRAPPER_REPORT_COLUMN_NAMES
  // Hubert Castelain: column names in the first row of res if res is empty

  if(res->records_.size()==0) {
    ResultRecord col_names;

    for(int i=0; i < num_fields; i++) {
      if(p_fields[i]) col_names.fields_.push_back (p_col_names[i]);
      else
        col_names.fields_.push_back("(null)"); // or what else ?
    }
    res->records_.push_back(col_names);
  }
#endif

  for(int i=0; i < num_fields; i++) {
    // Hubert Castelain: special treatment if null
    if (p_fields[i]) record.fields_.push_back(p_fields[i]);
    else             record.fields_.push_back("<null>");
  }

  res->records_.push_back(record);

  return 0;
}


Verfasst: 11. April 2006 18:52
von FlorianBecker
Was genau hat Qt damit zu tun?

Bei Qt gibt es übrigens bereits einen Treiber für SQLite?

Verfasst: 11. April 2006 19:38
von patrik08
ResultTable* res = reinterpret_cast<ResultTable*>(p_data);
auf mac QT4.1 nicht kompilierbar.

>Was genau hat Qt damit zu tun?
> Bei Qt gibt es übrigens bereits einen Treiber für SQLite?

mit export dump? export SQL format , import sql? export xml oder export pdf mit xml + fop..
Ich wuerde sofort diesen Treiber nehmen wen nur ein minimal von export und import auch nur im einfachen CSV text format..

Verfasst: 11. April 2006 21:57
von FlorianBecker
Also ich muss nochmal blöd fragen, was genau hat bei deinem ersten Problem Qt damit zu tun? Du brauchst doch für diese Klasse überhaupt kein Qt??? Es gibt nicht einen Header, den du verwendest in der Klasse???

Mh, der Treiber führt SQL Kommandos aus. Du kannst dir doch wohl in einigen Sekunden Dumps oder Export und Imports erstellen, oder?

Verfasst: 12. April 2006 14:46
von patrik08
mit qDebug ein dump export?

Code: Alles auswählen

QSqlQuery q("select * from employees");
    QSqlRecord rec = q.record();

    qDebug() << "Number of columns: " << rec.count();

    int nameCol = rec.indexOf("name"); // index of the field "name"
    while (q.next())
        qDebug() << q.value(nameCol).toString(); // output all names

an QSqlQuery solte man so wie einen text streem implementieren..