Hallo
>Diese Fehlermeldung ist eine Fehlermeldung, dass du auf einen Index 0 >zugreifst, den es nicht gibt.
>Hast du evtl. einmal das ganze Programm, dass du posten kannst. Es sieht >nicht so aus, als ob in diesem Code Fragment zu dem Fehler kommt. Und >das Programm macht wirklich genau das was du willst!?
>Ich sage mehr dazu, wenn ich den ganzen Code gesehen habe.
Also gut, hier ist der gesamte Code.

st aber viel Holz)
Die Fehlermeldung kommt beim Start des Dialoges.
Es muss eigentlich die init()-Funktion sein.
Ich möchte noch darauf hinweisen das ich Anfänger bin
und im Moment nur heilfroh das der Code funktioniert.
Für Verbesserungsvorschläge bin ich jederzeit offen.
Insbesondere wie man "Dinge" wieder löscht.
Ich muss mit vielen Abfragen arbeiten die wahrscheinlich
irgendwo viel Speicherplatz fressen.
Wie kann man die nach Gebrauch wieder löschen?
Noch eine kleine Info: Es gibt eine zweite Combobox:abkcombo
Die bringt keinen Fehler, wird aber genauso befüllt wie ortcombo.
Die Abfrage bei ortcombo liefert viele gültige Werte (keine leerstrings)
und "Testort" ist richtig geschrieben und in der Abfrage enthalten.
/****************************************************************************
** ui.h extension file, included from the uic-generated form implementation.
**
** If you want to add, delete, or rename functions or slots, use
** Qt Designer to update this file, preserving your code.
**
** You should not define a constructor or destructor in this file.
** Instead, write your code in functions called init() and destroy().
** These will automatically be called by the form's constructor and
** destructor.
*****************************************************************************/
void wfeingabe::init()
{
// Datenbankverbindungen setzen
if ( ! createConnections() )
QMessageBox::information( this, "Datenbank","wfeingabe-fehler" );
// Settings laden
loadSettings();
// Voreinstellungen von Datum/Uhrzeit
QDate heute = QDate::currentDate();
dateEdit1 -> setDate(heute);
QTime n( 15, 0, 0 );
timeEdit1 -> setTime(n);
// Orte in die ComboBox laden
QSqlQuery query( "SELECT ort FROM `Orte` WHERE zeigen=1" );
while ( query.next() )
{ortcombo->insertItem( query.value( 0 ).toString());}
ortcombo->setCurrentText ( "Testort" );
ortcombo->setEditable(FALSE);
// Ortsabkürzungen in ComboBox laden
QSqlQuery query2( "SELECT * FROM `Ortsabkürzungen`" );
while ( query2.next() )
{abkcombo->insertItem( query2.value( 0 ).toString());}
abkcombo->insertItem("");
abkcombo->setCurrentText ( "" );
abkcombo->setEditable(FALSE);
// Nummer der Exportdatei ermitteln
QString sql3="SELECT mldg FROM `funde` GROUP BY Mldg ORDER BY Mldg DESC";
QSqlQuery query3(sql3);
query3.first() ;
exportnummer -> setText(query3.value( 0 ).toString());
}
void wfeingabe::destroy()
{
saveSettings() ;
}
bool wfeingabe::createConnections()
{
// create the default database connection
QSqlDatabase *defaultDB = QSqlDatabase::addDatabase( "QMYSQL3" );
if ( ! defaultDB ) {
qWarning( "Failed to connect to driver" );
return FALSE;
}
defaultDB->setDatabaseName( "XXXXXX" );
defaultDB->setUserName( "XXXXXXX" );
defaultDB->setPassword( "XXXXXXX" );
defaultDB->setHostName( "XXXXXXX" );
if ( ! defaultDB->open() ) {
qWarning( "Failed to open database: " +
defaultDB->lastError().driverText() );
qWarning( defaultDB->lastError().databaseText() );
return FALSE;
}
return TRUE;
}
void wfeingabe::loadSettings()
{
QSettings settings;
settings.insertSearchPath( QSettings::Unix, "/home/user/Documents/db3" );
settings.beginGroup("/AAA/wfeingabe");
int WindowWidth = settings.readNumEntry( "/WindowWidth", 550 );
int WindowHeight = settings.readNumEntry( "/WindowHeight", 500 );
int WindowX = settings.readNumEntry( "/WindowX", 0 );
int WindowY = settings.readNumEntry( "/WindowY", 0 );
move( WindowX, WindowY);
resize( WindowWidth,WindowHeight );
settings.endGroup();
}
void wfeingabe::saveSettings()
{
QSettings settings;
settings.insertSearchPath( QSettings::Unix, "/home/user/Documents/db3" );
settings.beginGroup("/AAA/wfeingabe");
settings.writeEntry( "/WindowWidth", width() );
settings.writeEntry( "/WindowHeight", height() );
settings.writeEntry( "/WindowX", x() );
settings.writeEntry( "/WindowY", y() );
//settings.writeEntry("/test",5);
settings.endGroup();
}
// alle Orte anzeigen
void wfeingabe::alleanzeigen()
{
ortcombo->clear();
QSqlQuery query( "SELECT ort FROM `Orte`" );
while ( query.next() )
ortcombo->insertItem( query.value( 0 ).toString());
}
// Eine Ortsabkürzung wurde gewählt
void wfeingabe::neu(const QString &te)
{
QString sql= "SELECT * FROM `Ortsabkürzungen` where Bezeichnung = '";
sql = sql+te+"'";
QSqlQuery abfrage;
abfrage.exec(sql);
while (abfrage.next())
{
bemerkungg-> setText(abfrage.value(2).toString());
bemerkungwf->setText(abfrage.value(2).toString());
ortcombo -> setCurrentText(abfrage.value(1).toString());
}
abkcombo->hide();
textLabel29->hide();
}
// beide bemerkungen sind gleich
void wfeingabe::beidegleich()
{
if (bemerkungg->text() == "")
{bemerkungg->setText( bemerkungwf->text());}
else
{bemerkungwf->setText( bemerkungg->text());}
}
// Ort ist gewählt
// Ortsabkürzungen wird ausgeblendet
void wfeingabe::newSlot( int t )
{
abkcombo->hide();
textLabel29->hide();
t++; //Compiler-Warnungen ausblenden
}
// Beginn der Eingabe
void wfeingabe::startSlot()
{
// Setzen der Variablen
QString xort = ortcombo->currentText();
QString xname = nameX->text();
QString xdatei = exportnummer->text();
QString xbz = bemerkungg->text();
QString xbw = bemerkungwf->text();
// Sonderbehandlung datum
QString xxjahr( dateEdit1->date().toString( "yyyy" ) );
QString xxmonat( dateEdit1->date().toString( "MM" ) );
QString xxtag( dateEdit1->date().toString( "dd" ) );
// default '2004-12-12',
QString xdatum = "default '" + xxjahr + "-" + xxmonat + "-" + xxtag + "',";
// Sonderbehandlung Zeit
QString xxstunde = timeEdit1->time().toString("hh");
QString xxminute = timeEdit1->time().toString("mm");
// default '07:00:07',
QString xtime = "default '" + xxstunde + ":" + xxminute + ":00',";
// alte Tabellen löschen
QSqlQuery query4( "DROP TABLE IF EXISTS `funde_tmp`,`ringe_tmp`,`art_tmp`,`zählung_tmp`" );
// neue Tabellen erstellen
QSqlQuery ab2;
QString sql ="CREATE TABLE `funde_tmp` (";
sql=sql+"`ID` int(11) NOT NULL auto_increment,";
sql=sql+"PRIMARY KEY (`ID`),";
sql=sql+"`farbe` char(10) default '',";
sql=sql+"`Vogelnr` char(25) default NULL,";
sql=sql+"`Beoort` char(50) default '" + xort + "',";
sql=sql+"`Datum` date " + xdatum ;
sql=sql+"`Uhrzeit` time " + xtime ;
sql=sql+"`Beobachter` char(25) default '" + xname + "',";
sql=sql+"`Beobachtung` char(30) default 'aus Entfernung abgelesen',";
sql=sql+"`Gruppengröße` char(30) default NULL,";
sql=sql+"`Bemerkungen` char(255) default '" + xbw + "',";
sql=sql+"`sicher` enum('ja','nein') default 'ja',";
sql=sql+"`Meldung` char(2) default 'P',";
sql=sql+"`gesendet` enum('ja','nein') default 'nein',";
sql=sql+"`Mldg` smallint(3) unsigned default '" + xdatei + "')";
//sql=sql+") ENGINE=MyISAM DEFAULT CHARSET=latin1";
ab2.exec(sql);
sql="CREATE TABLE `ringe_tmp` (";
sql=sql+"`ID` int(11) default NULL,";
sql=sql+"PRIMARY KEY (`ID`),";
sql=sql+"`Sorte` int(11) default NULL,";
sql=sql+"`Art` char(19) default NULL,";
sql=sql+"`Ring` char(10) default NULL,";
sql=sql+"`Bemerkung` char(250) default NULL,";
sql=sql+"`lokal` char(250) default NULL,";
sql=sql+"`Funktion` char(250) default NULL,";
sql=sql+"`FR` char(10) default NULL,";
sql=sql+"`MR` char(10) default NULL,";
sql=sql+"`Auto` tinyint(4) default NULL,";
sql=sql+"`lastOrt` char(250) default NULL,";
sql=sql+"`lastTag` char(250) default NULL,";
sql=sql+"`Aufzählung` char(250) default NULL,";
sql=sql+"`Level` char(50) default NULL,";
sql=sql+"`anzahl` char(5) default NULL,";
sql=sql+"`Geburt` char(100) default NULL )";
//sql=sql+") ENGINE=MyISAM DEFAULT CHARSET=latin1";
ab2.exec(sql);
sql="CREATE TABLE `art_tmp` (";
sql=sql+"`ID` int(11) NOT NULL auto_increment,";
sql=sql+"PRIMARY KEY (`ID`),";
sql=sql+"`Sorte` int(11) default NULL,";
sql=sql+"`Art` varchar(19) default NULL,";
sql=sql+"`Anzahl` varchar(10) default NULL,";
sql=sql+"`juv` varchar(50) default NULL,";
sql=sql+"`Ez` varchar(30) default NULL,";
sql=sql+"`Mz` varchar(30) default NULL,";
sql=sql+"`ringe` varchar(10) default NULL,";
sql=sql+"`string` longblob,";
sql=sql+"`auto` longblob,";
sql=sql+"`level` varchar(10) default NULL,";
sql=sql+"`Zählungsnummer` smallint(6) default NULL )";
//sql=sql+") ENGINE=MyISAM DEFAULT CHARSET=latin1";
ab2.exec(sql);
sql="CREATE TABLE `zählung_tmp` (";
sql=sql+"`ID` int(11) NOT NULL auto_increment,";
sql=sql+"PRIMARY KEY (`ID`),";
sql=sql+"`Kennummer` int(11) default NULL,";
sql=sql+"`Ort` char(50) default '" + xort + "',";
sql=sql+"`Datum` date " + xdatum ;
sql=sql+"`Uhrzeit` time " + xtime ;
sql=sql+"`Bemerkungen` char(100) default '" + xbz + "',";
sql=sql+"`Beobachter` char(30) default '" + xname + "',";
sql=sql+"`KG` smallint(6) default NULL,";
sql=sql+"`X` smallint(6) default NULL,";
sql=sql+"`GG` smallint(6) default NULL,";
sql=sql+"`NG` smallint(6) default NULL,";
sql=sql+"`SG` smallint(6) default NULL,";
sql=sql+"`HöG` smallint(6) default NULL,";
sql=sql+"`HS` smallint(6) default NULL,";
sql=sql+"`TS` smallint(6) default NULL,";
sql=sql+"`HausG` smallint(6) default NULL,";
sql=sql+"`BG` smallint(6) default NULL,";
sql=sql+"`NilG` smallint(6) default NULL,";
sql=sql+"`Art1` char(30) default NULL,";
sql=sql+"`nArt1` smallint(6) default NULL,";
sql=sql+"`Art2` char(30) default NULL,";
sql=sql+"`nArt2` smallint(6) default NULL,";
sql=sql+"`Art3` char(30) default NULL,";
sql=sql+"`nArt3` smallint(6) default NULL )";
//sql=sql+") ENGINE=MyISAM DEFAULT CHARSET=latin1";
ab2.exec(sql);
accept();
}