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