Trolltech Home | Qt-interest Home | Recent Threads | All Threads | Author | Date
All threads index page 4

Qt-interest Archive, December 2006
Picker problem with mysql autoincrement


Message 1 in thread

Hi!

I'm using mysql's AUTO_INCREMENT.
The problem is that my Picker
returns 0 for the first item.
AUTO_INCREMENT begins from 1, not from 0.

When my Picker returns 0, the foreign key
constraint fails.

How can i get my Picker to return 1, not 0
for the first item?

code:

#ifndef ARUPICKER_H
#define ARUPICKER_H

#include <qcombobox.h>
#include <qstring.h>
#include <qsqlquery.h>

/**
@author tamas
*/
class AruPicker : public QComboBox
{
	Q_OBJECT
	Q_PROPERTY(QString arunev READ Arunev WRITE
setArunev)
public:
    AruPicker(QWidget * parent = 0, const char * name
= 0);
    QString Arunev() const;
    void setArunev(int arunev);
private:
    QMap<int, QString> index2id;    
};

#endif

Implementation:

#include "arupicker.h"

AruPicker::AruPicker(QWidget * parent, const char *
name)
 : QComboBox(parent, name)
{
	QSqlQuery r("SELECT termek_id, termeknev FROM
raktar");
	int i=0;
	while(r.next())
	{
		insertItem(r.value(1).toString(), i );
		index2id[i] = (r.value(0)).toInt() ;
		i++;
	}
}

QString AruPicker::Arunev( ) const
{
	return index2id[currentItem()];
}

void AruPicker::setArunev( int arunev )
{
	QMap<int, QString>::iterator it;
	for(it = index2id.begin(); it != index2id.end();
++it)
	{
		if(it.data() == arunev)
		{
			setCurrentItem(it.key());
			break;
		}
	}
}



Tamas

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

--
 [ signature omitted ]