blob: 45876fe715c547e2df8e5e18966fe91dab79222b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
void EditBookForm::init()
{
TQSqlQuery query( "SELECT surname, id FROM author ORDER BY surname;" );
while ( query.next() ) {
ComboBoxAuthor->insertItem( query.value( 0 ).toString() );
int id = query.value( 1 ).toInt();
mapAuthor( query.value( 0 ).toString(), id, TRUE );
}
}
void EditBookForm::beforeUpdateBook( TQSqlRecord * buffer )
{
int id;
mapAuthor( ComboBoxAuthor->currentText(), id, FALSE );
buffer->setValue( "authorid", id );
}
void EditBookForm::mapAuthor( const TQString & name, int & id, bool populate )
{
if ( populate )
authorMap[ name ] = id;
else
id = authorMap[ name ];
}
void EditBookForm::primeInsertBook( TQSqlRecord * buffer )
{
TQSqlQuery q;
q.exec( "UPDATE sequence SET sequence = sequence + 1 WHERE tablename='book';" );
q.exec( "SELECT sequence FROM sequence WHERE tablename='book';" );
if ( q.next() ) {
buffer->setValue( "id", q.value( 0 ) );
}
}
void EditBookForm::primeUpdateBook( TQSqlRecord * buffer )
{
int id = buffer->value( "authorid" ).toInt();
for ( int i = 0; i < ComboBoxAuthor->count(); i++ ) {
TQString author = ComboBoxAuthor->text( i );
if ( authorMap.contains( author ) && authorMap[author] == id ) {
ComboBoxAuthor->setCurrentItem( i ) ;
break;
}
}
}
|