Mailinglisten-Archive |
Hallo! ich habe eine bestehende access97 datenbank und möchte das backend auf mysql portieren. mysql-standard-4.0.12 - linux myodbc 3.51.06 in meiner db existiert eine 'm:n' relation zwischen T_task und T_sample (der primarykey ist jeweils ein int 'not null auto_increment'). im frontend sollen die zu einem task gehörenden samples in einem unterformular eines T_task formulars angezeigt werden (was mit access als DB-Server auch funktioniert). nun das problem: das unterform. basiert auf der abfrage (aber nur die samXXX felder und tsmTaskID sind wichtig) SELECT T_tasksample.*, T_sample.* FROM T_sample inner JOIN T_tasksample ON T_sample.samID = T_tasksample.tsmSampleID; Leider bekomme ich beim eingeben der daten immer die fehlermeldung "Das Microsoft Jet-Datenbankmodul kann in der Tabelle <Name> keinen Datensatz mit passenden Schlüsselfeldern <Name> finden. (Fehler 3101)" das problem tritt auch auf, wenn ich wenn ich direkt in das query schreiben will der grund (so nehme ich an) ist, daß access die daten nicht über EIN INSERT sql schreiben will, sonden einzeln in die tabellen einträgt und so das auto_increment der schluesselfelder nicht ueberknausert. die empfohlenen updates (MS-JET, MDAC) habe ich installiert ich danke für jede hilfe mfg Martin Elshuber p.s.: hier ein auszug meines mysql dumps CREATE TABLE T_sample ( samID int(11) NOT NULL auto_increment, samTimeStamp timestamp(14) NOT NULL, samName varchar(50) default NULL, samTypeID int(11) default NULL, samOfficerID int(11) default NULL, samDate datetime default NULL, samDescription varchar(255) default NULL, samAnalysisblock int(11) default NULL, PRIMARY KEY (samID), -- für das problem irrelevant KEY samAnalysisblock (samAnalysisblock), FOREIGN KEY (`samAnalysisblock`) REFERENCES `T_analysisblock` (`ablID`) ) TYPE=InnoDB; CREATE TABLE T_task ( tasID int(11) NOT NULL auto_increment, tasTimeStamp timestamp(14) NOT NULL, tasNr varchar(20) default NULL, tasName varchar(50) default NULL, tasTypeID int(11) default NULL, tasDate datetime default NULL, tasCostCenter varchar(50) default NULL, tasRequestorID int(11) default NULL, tasProcessorID int(11) default NULL, tasOfficerID int(11) default NULL, tasCompletion datetime default NULL, PRIMARY KEY (tasID) ) TYPE=InnoDB; CREATE TABLE T_tasksample ( tsmTaskID int(11) NOT NULL default '0', tsmSampleID int(11) NOT NULL default '0', tsmTimeStamp timestamp(14) NOT NULL, tsmInitial tinyint(1) default NULL, PRIMARY KEY (tsmTaskID,tsmSampleID), KEY ind_tsmSampleID (tsmSampleID), KEY ind_tsmTaskID (tsmTaskID), FOREIGN KEY (`tsmSampleID`) REFERENCES `T_sample` (`samID`) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (`tsmTaskID`) REFERENCES `T_task` (`tasID`) ON DELETE CASCADE ON UPDATE CASCADE ) TYPE=InnoDB; -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive