Post 1 of 2 due to length... Question in part 2 of 2...
Hello,
I am using Qt Creator 1.2.1, with Qt 4.5.2 on Windows Vista x32. I have a MySQL database created with MySQL Workbench v5.2.16.
I have been trying to get a cpp class completed to access 1 of the tables in the db and have run into an issue with the add record algorithm. Basically, I can successfully navigate the records in the table, but on adding a record, if I navigate away the model submits a copy of the record I nav'd to. For example:
tEmployees:
simple table with 2 related fields for department and status
CREATE TABLE IF NOT EXISTS `timeDB`.`tEmployees` (
`idtEmployees` INT NOT NULL AUTO_INCREMENT ,
`empNameCode` VARCHAR(45) NOT NULL ,
`empFirstName` VARCHAR(50) NULL ,
`empLastName` VARCHAR(80) NULL ,
`tDepartment_idtDepartment` INT NOT NULL ,
`tStatus_idtStatus` INT NOT NULL ,
`empStartDate` DATETIME NOT NULL ,
PRIMARY KEY (`idtEmployees`) ,
INDEX `fk_tEmployees_tDepartment` (`tDepartment_idtDepartment` ASC) ,
INDEX `fk_tEmployees_tStatus` (`tStatus_idtStatus` ASC) ,
CONSTRAINT `fk_tEmployees_tDepartment`
FOREIGN KEY (`tDepartment_idtDepartment` )
REFERENCES `timeDB`.`tDepartment` (`idtDepartment` )
ON DELETE NO ACTION
ON UPDATE CASCADE,
CONSTRAINT `fk_tEmployees_tStatus`
FOREIGN KEY (`tStatus_idtStatus` )
REFERENCES `timeDB`.`tStatus` (`idtStatus` )
ON DELETE NO ACTION
ON UPDATE CASCADE)
ENGINE = InnoDB
CREATE TABLE IF NOT EXISTS `timeDB`.`tEmployees` (
`idtEmployees` INT NOT NULL AUTO_INCREMENT ,
`empNameCode` VARCHAR(45) NOT NULL ,
`empFirstName` VARCHAR(50) NULL ,
`empLastName` VARCHAR(80) NULL ,
`tDepartment_idtDepartment` INT NOT NULL ,
`tStatus_idtStatus` INT NOT NULL ,
`empStartDate` DATETIME NOT NULL ,
PRIMARY KEY (`idtEmployees`) ,
INDEX `fk_tEmployees_tDepartment` (`tDepartment_idtDepartment` ASC) ,
INDEX `fk_tEmployees_tStatus` (`tStatus_idtStatus` ASC) ,
CONSTRAINT `fk_tEmployees_tDepartment`
FOREIGN KEY (`tDepartment_idtDepartment` )
REFERENCES `timeDB`.`tDepartment` (`idtDepartment` )
ON DELETE NO ACTION
ON UPDATE CASCADE,
CONSTRAINT `fk_tEmployees_tStatus`
FOREIGN KEY (`tStatus_idtStatus` )
REFERENCES `timeDB`.`tStatus` (`idtStatus` )
ON DELETE NO ACTION
ON UPDATE CASCADE)
ENGINE = InnoDB
To copy to clipboard, switch view to plain text mode
tDepartment:
(contains fk links for dept id in employee table)
CREATE TABLE IF NOT EXISTS `timeDB`.`tDepartment` (
`idtDepartment` INT NOT NULL AUTO_INCREMENT ,
`DepartmentCode` VARCHAR(10) NULL ,
`DepartmentName` VARCHAR(45) NULL ,
`DepartmentSupervisor` VARCHAR(45) NULL ,
`tStatus_idtStatus` INT NOT NULL ,
PRIMARY KEY (`idtDepartment`) ,
INDEX `fk_tDepartment_tStatus` (`tStatus_idtStatus` ASC) ,
CONSTRAINT `fk_tDepartment_tStatus`
FOREIGN KEY (`tStatus_idtStatus` )
REFERENCES `timeDB`.`tStatus` (`idtStatus` )
ON DELETE NO ACTION
ON UPDATE CASCADE)
ENGINE = InnoDB
CREATE TABLE IF NOT EXISTS `timeDB`.`tDepartment` (
`idtDepartment` INT NOT NULL AUTO_INCREMENT ,
`DepartmentCode` VARCHAR(10) NULL ,
`DepartmentName` VARCHAR(45) NULL ,
`DepartmentSupervisor` VARCHAR(45) NULL ,
`tStatus_idtStatus` INT NOT NULL ,
PRIMARY KEY (`idtDepartment`) ,
INDEX `fk_tDepartment_tStatus` (`tStatus_idtStatus` ASC) ,
CONSTRAINT `fk_tDepartment_tStatus`
FOREIGN KEY (`tStatus_idtStatus` )
REFERENCES `timeDB`.`tStatus` (`idtStatus` )
ON DELETE NO ACTION
ON UPDATE CASCADE)
ENGINE = InnoDB
To copy to clipboard, switch view to plain text mode
tStatus:
(contains fk for statusid (i.e. active/inactive))
CREATE TABLE IF NOT EXISTS `timeDB`.`tStatus` (
`idtStatus` INT NOT NULL AUTO_INCREMENT ,
`StatusDescription` VARCHAR(45) NOT NULL ,
PRIMARY KEY (`idtStatus`) )
ENGINE = InnoDB
CREATE TABLE IF NOT EXISTS `timeDB`.`tStatus` (
`idtStatus` INT NOT NULL AUTO_INCREMENT ,
`StatusDescription` VARCHAR(45) NOT NULL ,
PRIMARY KEY (`idtStatus`) )
ENGINE = InnoDB
To copy to clipboard, switch view to plain text mode
tEmployee - Data:
1 QQ QQ QQ 1 1 2010-05-05 00:00:00
2 qq qw ww 1 1 2010-05-05 00:00:00
17 test 2 1 2010-08-03 00:00:00
18 asdgd asd asd 1 1 2010-07-30 00:00:00
19 QQ QQ QQ 1 1 2010-05-05 00:00:00
20 QQ QQ QQ 1 1 2010-05-05 00:00:00
1 QQ QQ QQ 1 1 2010-05-05 00:00:00
2 qq qw ww 1 1 2010-05-05 00:00:00
17 test 2 1 2010-08-03 00:00:00
18 asdgd asd asd 1 1 2010-07-30 00:00:00
19 QQ QQ QQ 1 1 2010-05-05 00:00:00
20 QQ QQ QQ 1 1 2010-05-05 00:00:00
To copy to clipboard, switch view to plain text mode
tDepartment - Data:
1 t t1 T 1
2 R R2 R 1
1 t t1 T 1
2 R R2 R 1
To copy to clipboard, switch view to plain text mode
tStatus - Data:
1 Active
2 InActive
1 Active
2 InActive
To copy to clipboard, switch view to plain text mode
ok, so now when I add an employee to the table, I basically implement the following:
Bookmarks