ob (select distinct feld from tablename) , oder (select * from tablename)ecc...
ohne nur auch die 2 QtSqld* dll zu gebrauchen fast 2 MB zusammen...
der enorme vorteil ist auch die -static compilation ... somit braucht die exe keine dll... sondern hat bereits alles...
Code: Alles auswählen
/* definizion qt4 */
typedef QMap<int, QStringList> resultMap;
/* classe mit open & close ecc... */
resultMap Sqlitedb::Query_Qmap_Report(const QString & fullquery)
{
resultMap res;
if (!isOpen()) {
return res; /* not connect! */
}
SqlLog(QString( "%1 from Query_Qmap_Report 1" ).arg( fullquery )); /* internal log */
sqlite3_stmt *vm;
const char *tail;
int ncol;
/*int rownum = 0;*/
int recnum = 0;
QString r;
int err=0;
QStringList linelister;
err=sqlite3_prepare(_db,fullquery.toUtf8().constData(),-1,&vm, &tail);
if (err == SQLITE_OK) {
while ( sqlite3_step(vm) == SQLITE_ROW ){
ncol = sqlite3_data_count(vm);
recnum++;
linelister.clear();
/*file_put_contents_append_debug("resloop.dat","--------------------");*/
for (int e=0; e<ncol; e++){
r = QString::fromUtf8((const char *) sqlite3_column_text(vm, e));
linelister.append(r);
/*file_put_contents_append_debug("resloop.dat",QString("%1 dat = %2" ).arg( QString::number(e) , r ));*/
}
res.insert(recnum,linelister);
}
sqlite3_finalize(vm);
} else {
lastErrorMessage = QString::fromUtf8(sqlite3_errmsg(_db));
}
return res;
}
/* die daten holen ... darstellen individuell */
resultMap res = Query_Qmap_Report("SELECT id, anrede, name, ort FROM tablename order by ort");
int summitem = res.size();
file_put_contents_append("looper.doc",QString("gefunden %1 " ).arg( QString::number(summitem) ));
resultMap::Iterator it;
for ( it = res.begin(); it != res.end(); ++it ) {
QStringList fullrow = it.value();
QString firstline = fullrow.join ("|");
QString dat =QString("nr. %1 data = [%2]" ).arg( QString::number(it.key()) , firstline);
file_put_contents_append("looper.doc",dat);
}