Mailinglisten-Archive |
On Tue, Jun 20, 2000 at 03:44:24PM +0200, Thomas Fromm wrote:
> 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.
noch einfacher (und in "einem gang") geht es mit
"select ... for update"
tc
>
> 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/
>
> --
> ** Durchgehend ge?ffnet: http://www.php-center.de **
> Die PHP-Liste: mailto:php_(at)_php-center.de
> http://infosoc.uni-koeln.de/mailman/listinfo/php
--
Thies C. Arntzen "One Big-Mac, Small Fries and a Coke!"
Digital Collections Phone +49 40 235350 Fax +49 40 23535180
Hammerbrookstr. 93 20097 Hamburg / Germany
php::bar PHP Wiki - Listenarchive