usver Posted September 24, 2010 Report Share Posted September 24, 2010 Mēģinu updeitot/pievienot ierakstus Paradox datubāzē. Jaunā datubāzē raktīt izdodas perfekti - uztaisam DB no nulles, ievietojam visu, ko vien vēlamies. Esošai neizdodas ierakstīt neko ne sitamai. Lasīt var perfekti jebko. Pievienojot ierakstus, šī rindiņa var_dump(px_put_record($this->doc, $rec)); atgriež "true", kas nozīmē veiksmīgu ierakstu. Arī DB izmērs pie mēģinājumiem pieaug, tātad kaut kas tomēr rakstās. Bet nolasot datus, nekas nav mainījies. BET - mēģinot norādīt esošas rakstīšanai //px_set_parameter($this->doc, "tablename", "resttemp.DB");, tā paziņo: "Setting tablenams has no effect - DB is not writable". Faila atvēršanai ir izmēģināti dažādi sviči: r+/rb+, a+/ab+. Rezultāts identisks. Vide: XAMPP 1.7.1 iekļautais Paradox php ekstensija, pxlib versija: 0.6.3 (pēdējā). Paradox 7 DB, tas pats ar Paradox 5 failiem. Borland DBA ir instalēts (5.01). XP SP3 (ar pēdējiem dzīvajiem MDAC), taču ODBC datubāzi neizdodas nolasīt. izvilkums no phpinfo(): Paradox support enabled pxlib Version 0.6.3 support for recoding record data iconv pxlib was build on no value Revision $Revision: 1.37 $ Vai kādam ir idejas/risinājumi/ieteikumi šādām lietām? Datubāze ir Paradox 7, pēc 10 gadu Paradox+Delphi izstrādes migrēt uz ko citu programmētājs atsakās. Avārijas gadījumā laikam nāksies veidot Delphi utilītu, kas batch modē updeitos savu Paradox datubāzi. Izmantotais kods: if(!file_exists($filename)){ $newfile = true; $this->fp = fopen($filename,'w'); } else { $this->fp = fopen($filename,'a+'); } if(!$this->fp){echo 'could not connect to database '.$filename.'!<br>'; return;} ###### Datu ierakstīšana jaunā failā- strādā OK :) if($newfile) { $fields = array(array("col1", "S")); if(!px_create_fp($this->doc, $this->fp, $fields)) { echo 'neizdevās piesaistīt failam .. ';} px_set_parameter($this->doc, "tablename", "testtable"); px_set_parameter($this->doc, "codepage", "1257"); for($i=0; $i<5; $i++){ $rec = array($i); px_put_record($this->doc, $rec); } } else { if(!px_open_fp($this->doc, $this->fp)){echo 'could not initialize database '.$filename.'!<br>';return;} } ##### Datu pievienošana esošam failam if(!$newfile) { //var_dump($this->doc->px_stream); //px_set_parameter($this->doc, "tablename", "resttemp.DB"); //for($i=1; $i<=5; $i++) //{ $rec = array("993","8349",0,0,1,0,"Ilze","Lampina","Ilze Lampina"); $inf = px_get_info($this->doc); //px_put_record($this->doc, $rec, -1); var_dump(px_put_record($this->doc, $rec)); //} } Destruktorā ir šādas rindas: function __desctruct(){ px_close($this->doc); px_delete($this->doc); fclose($this->fp); } Izmēģināt ar un bez px_delete(), rezultāts nemainās. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.