Re: Support for bulk reads/writes ?
От | David Stanaway |
---|---|
Тема | Re: Support for bulk reads/writes ? |
Дата | |
Msg-id | D3091A3D-1F42-11D6-8FB4-0003930FDAB2@netventures.com.au обсуждение исходный текст |
Ответ на | Support for bulk reads/writes ? (charlie <ctoohey@pacbell.net>) |
Список | pgsql-sql |
You may find these code snippets handy CREATE FUNCTION editpresentationparam(int,text[][]) RETURNS int AS 'DECLARE prid ALIAS FOR $1; pairs ALIAS FOR $2; result int; rc int; i int; BEGIN result := 0; i := 1; DELETE FROM tblPresentationParam WHERE ppprID = prid; WHILE pairs[i][1]!= '''' LOOP INSERT INTO tblPresentationParam (ppprID,pppnID,ppValue) SELECT prid, pnID,pairs[i][2] FROM tblPresentationParamName WHERE pnName = pairs[i][1]; GET DIAGNOSTICS rc = ROW_COUNT; result := result+ rc; i := i + 1; END LOOP; RETURN result; END;' LANGUAGE 'plpgsql'; <?php //Turns a pair of values into a postgres array literal //EG: "name","Bloggs, Bill 'owdy" -> // '{"name","Bloggs, Bill ''owdy"}' function makepair($p1,$p2) { $pat = array ("/\\\\/","/\"/","/'/"); $rep = array ( '\\\\' , '\"' ,"''"); return '{"'.preg_replace($pat,$rep,$p1). '","'. preg_replace($pat,$rep,$p2).'"}'; } function updatepresentationparam($formvars) { if(isset($formvars['ref'])&&preg_match('/^\d+$/',($formvars['ref']))) { $q="SELECT editpresentationparam(".$formvars['ref'].",'{"; reset($formvars); while (list($pnname,$ppvalue) = each($formvars)){ if($pnname != "ref" && $pnname != "func" && $ppvalue != "") { $q.=makepair($pnname,$ppvalue).","; } } $q.="{,}}')"; if(! ($res=psql_query_wrap($q))) { return -1; } else { $row = pg_fetch_array($res,0); return $row[0]; } } else return -1; } ?> ============================== David Stanaway Personal: david@stanaway.net Work: david@netventures.com.au
В списке pgsql-sql по дате отправления: