Elxis CMS Forum
Support => Database => Topic started by: muharihar on October 24, 2008, 21:01:07
-
i found these error message when i'm try to copy menu to a nother one:
URI: index2.php
Message: ORA-00904: "UTQQACCESS": invalid identifier
INSERT INTO web2_menu ( menutype,name,link,type,published,componentid,parent,sublevel,ordering,checked_out,checked_out_time,pollid,qqaccess,utqqaccess,params,language ) VALUES ( 'topmenu','Links','index.php?option=com_weblinks','components','1','4','0','0','3','0','1979-12-19 00:00:00','0','29','0','menu_image=-1 menu_image_only=0 pageclass_sfx= back_button= lastmodified=1 hits= item_description=1 other_cat_section=1 other_cat=1 description=1 description_text= image=-1 image_align=right weblink_icons= sshots=1','english,indonesian' )
these error happen because field UTQQACCESS does not exis on table __MENU.
table __MENU description:
-----------------------------------------------------------
describe web2_menu;
Describing web2_menu....
NAME Null? Type
------------------------------- --------- -----
ID NOT NULL NUMBER(10,0)
MENUTYPE VARCHAR2(25)
NAME VARCHAR2(100)
LINK VARCHAR2(4000)
TYPE VARCHAR2(50)
PUBLISHED NOT NULL NUMBER(3,0)
PARENT NOT NULL NUMBER(10,0)
COMPONENTID NOT NULL NUMBER(10,0)
SUBLEVEL NUMBER(10,0)
ORDERING NUMBER(10,0)
CHECKED_OUT NOT NULL NUMBER(10,0)
CHECKED_OUT_TIME NOT NULL DATE
POLLID NOT NULL NUMBER(10,0)
BROWSERNAV NUMBER(10,0)
QQACCESS NOT NULL NUMBER(10,0)
UTACCESS NOT NULL NUMBER(10,0)
PARAMS VARCHAR2(4000)
LANGUAGE VARCHAR2(255)
SEOTITLE VARCHAR2(255)
---------------------------------------------------------
and i'm try to fix it by adding this script to _replaceCompat (core file: database.php):
protected function _replaceCompat($sql) {
......
$sql = preg_replace($pat, $rep, $sql);
//added script
$pat2 = array('/utqqaccess/');
$rep2 = array('utaccess');
$sql = preg_replace($pat2, $rep2, $sql);
}
am i wrong?
thanks...
sorry for my english
-
open includes/Core/database.php
Go to line 269
Change this:
$pat = array('/access/', '/\_qqaccess/', '/date/', '/\_qqdate/', '/qqdate\_/', '/qqdateadded/', '/lastvisitqqdate/', '/option/', '/\?qqoption/', '/qqoptions/', '/birthqqdate/', '/registerqqdate/');
$rep = array('qqaccess', '_access', 'qqdate', '_date', 'date_', 'dateadded', 'lastvisitdate', 'qqoption', '?option', 'options', 'birthdate', 'registerdate');
to this:
$pat = array('/access/', '/\_qqaccess/', '/date/', '/\_qqdate/', '/qqdate\_/', '/qqdateadded/', '/lastvisitqqdate/', '/option/', '/\?qqoption/', '/qqoptions/', '/birthqqdate/', '/registerqqdate/','/utqqaccess/');
$rep = array('qqaccess', '_access', 'qqdate', '_date', 'date_', 'dateadded', 'lastvisitdate', 'qqoption', '?option', 'options', 'birthdate', 'registerdate', 'utaccess');
As you see I added a replacement from utqqaccess back to utaccess in order to reverse the replacement made by the "access" pattern.
"qq" is a compatibility prefix we added for Oracle.
-
thanks....
it's work for me.....
-------------------------------
sorry for my english....