Forum .LRN Q&A: Can't add new events to Calendar

whenever I try to add a new event to the calendar, I'm served with the following error. I can't seem to be able to figure out what's going wrong. Anyone an idea as to what went wrong?

Request Error

Database operation "0or1row" failed 
(exception NSDB, "Query was not a statement returning rows.")
    while executing
"ns_pg_bind 0or1row nsdb0 {
	select cal_item__new (
					null,
					:on_which_calendar,
					null,
					null,
                                        n..."
    ("uplevel" body line 1)
    invoked from within
"uplevel $ulevel [list ns_pg_bind $type $db $sql"
    invoked from within
"db_exec 0or1row $db $full_statement_name $sql"
    invoked from within
"if {[regexp -nocase -- {^s*select} $test_sql match]} {
            db_qd_log QDDebug "PLPGSQL: bypassed anon 
function"
            set selection [db_..."
    ("uplevel" body line 6)
    invoked from within
"uplevel 1 $code_block "
    invoked from within
"db_with_handle db {
        # plsql calls that are simple selects bypass the plpgsql 
        # mechanism for creating anonymous functions (OpenACS -
 ..."
    (procedure "db_exec_plsql" line 13)
    invoked from within
"db_exec_plsql cal_item_add {
	begin
	:1 := cal_item.new(
	  on_which_calendar  => :on_which_calendar,
	  activity_id        => :activity_id,
         ..."
    (procedure "cal_item_create" line 39)
    invoked from within
"cal_item_create $start_date $end_date $name $description 
$calendar_id [ad_conn peeraddr] [ad_conn user_id] $item_type_id"
    (procedure "calendar::item::new" line 6)
    invoked from within
"calendar::item::new -start_date $start_date  -end_date 
$end_date  -name $title  -description $description  -calendar_id 
$calendar_id  -item_type_id $i..."
    invoked from within
"if {[form is_valid cal_item]} {
    template::form get_values cal_item calendar_id title date time_p 
start_time end_time description item_type_id repe..."
    ("uplevel" body line 57)
    invoked from within
"uplevel {
    	  
ad_page_contract {
    
    Creating a new Calendar Item
    
    @author Ben Adida (ben@openforce)
    @creation-date May 29, 2002
..."
    (procedure "code::tcl::/web/openacs-
4/packages/calendar/www/cal-item-new" line 2)
    invoked from within
"code::tcl::$__adp_stub"
    invoked from within
"if { [file exists $__adp_stub.tcl] } {

      # ensure that data source preparation procedure exists and is 
up-to-date
      adp_init tcl $__adp_stub
..."
    ("uplevel" body line 3)
    invoked from within
"uplevel {

    if { [file exists $__adp_stub.tcl] } {

      # ensure that data source preparation procedure exists and is 
up-to-date
      adp_init t..."
    (procedure "adp_prepare" line 2)
    invoked from within
"adp_prepare "
    (procedure "template::adp_parse" line 30)
    invoked from within
"template::adp_parse [file root [ad_conn file]] {}"
    (procedure "adp_parse_ad_conn_file" line 7)
    invoked from within
"$handler"
    ("uplevel" body line 2)
    invoked from within
"uplevel $code"
    invoked from within
"ad_try {
	$handler
      } ad_script_abort val {
	# do nothing
      }"
    invoked from within
"rp_serve_concrete_file [ad_conn file]"
    (procedure "rp_serve_abstract_file" line 60)
    invoked from within
"rp_serve_abstract_file "$root/$path""
    ("uplevel" body line 2)
    invoked from within
"uplevel $code"
    invoked from within
"ad_try {
	rp_serve_abstract_file "$root/$path"
	set tcl_url2file([ad_conn url]) [ad_conn file]
	set tcl_url2path_info([ad_conn url]) [ad_conn 
path_inf..."

risa8@law.leidenuniv.nl

AOLserver/3.4.2 on http://openacs.wzzrd.com

Collapse
Posted by Rafael Calvo on
yes I just had the same problem. I know it works on Oracle...

Could you report it in http://dotlrn.openforce.net/bugs

Collapse
Posted by Tom Jackson on

I believe this is fixed in cvs. The problem was in the translation from Oracle, the context_id was in the incorrect position in the function call.

Update both acs-datetime and calendar from cvs to make sure you get all the bug fixes.

Collapse
Posted by Rafael Calvo on
Tom,

I updated all the files from CVS, restarted the server... but got the same error message. There are no changes in the DM so no need to drop the DB I assume ?

Collapse
Posted by Marcin Kuczkowski on
The order of arguments passed to cal_item_new when creating new event is wrong.
here is my attempt to solve this:

i have changed the function call
in /packages/calendar/tcl/cal-items.xql

< fullquery name="cal_item_create.cal_item_add">      
      < querytext>
	select cal_item__new (
					null,
					:on_which_calendar,
					null,
					null,
                                        null,
                                        null,
					:timespan_id,
					:activity_id,
					null,
					'cal_item',
					:on_which_calendar,
					now(),
					:creation_user,
					:creation_ip
	)

      </querytext>
</fullquery>
NOTE: the xml query tags should not have space between < and fullquery, here it is added so the signs are displayed correctly.
Collapse
Posted by Marcin Kuczkowski on
sorry for the mistakes in my post:
<p>
1 - the changed query "cal_item__new" is in the file /packages/calendar/tcl/cal-item-procs-postgresql.xql<br>
2 - this fix is for the postgres version of .LRN ( as You can see from the name of file )
Collapse
Posted by Rafael Calvo on
Marcin
Tom's comment above helped me find the bug as well.
Hopefully it will make into CVS.