usver Posted September 24, 2010 Report 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
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.