Mailinglisten-Archive |
Hallo, also nachdem ich nochmal ein wenig gegruebelt hab, hab ich eine loesung fuer das update problem von LOB's gefunden. zuerst waehlt man den datensatz fuer ein update aus, dieser besitzt dann eine exclusive sperre. $req=sprintf("SELECT data_%s FROM %s WHEREid_%s='%s'", $this->type,$this->type,$this->type,$jobid); $this->parse($req); $this->execute($this->stmt,OCI_DEFAULT); nun macht man ein update und fuegt die daten wieder ein. $req=sprintf("UPDATE %s SET data_%s=:data WHERE id_%s='%s'", $this->type,$this->type,$this->type,$jobid); $this->parse($req); _(at)_OCIBindByName($this->stmt,":data",$data,-1); $this->execute($this->stmt,OCI_DEFAULT); $this->commit(); durch das commit wird die sperre aufgehoben und die aenderung festgeschrieben. verwendet man BFILE ist keine explizite sperre notwendig, diese ist nur fuer intern gespeicherte LOB's notwendig. Ausserdem sollte man aufpassen, sofern eine LobSpalte ein NULL wert hat kann man erst, nachdem man diese auf ein EMPTY_BLOB() oder CLOB gesetzt hat geupdatet werden. Auch dies ist bei BFILE nich notwendig. gruss thomas -- --------------------------------------------------------- Mail: tfromm_(at)_cs.uni-potsdam.de Web: http://codewizards.org/thomas.fromm Job: http://www.inubit.com PHP-Stand auf Europas größter Linux-Messe: 'Linux-Tag' ! weitere Infos _(at)_ http://www.dynamic-webpages.de/
php::bar PHP Wiki - Listenarchive