From: Patrick Spence Date: 2006-09-12T04:32:12+09:00 Subject: Default values for arguments For some odd reason, the default values for some of the optional arguments are not getting assigned, namely the _dateTime argument. As a result, I have to add the "if blahblah.nil?" hacks below. Anyone know what's going on here? def saveResults(_scriptPoint, \ _scriptName, \ _testResult=self.RESULTVALUE_SUCCESS, \ _seqNo=nil, \ _dateTime=Time.now(), \ _comments=nil, \ _imagePath=nil, \ _imageBinary=nil) #-- open connection with SQL Server database @sqlConnection = SqlClient::SqlConnection.new(@dataSource, @initialCatalog) #-- determine next sequence number for the current logID if seqNo parameter not passed _seqNo = self.getMaxSeqNo() + 1 if _seqNo.nil? #-- !!hacking starts here!! _dateTime = Time.now() if _dateTime.nil? _comments = "".to_s() if _comments.nil? _testResult = SqlErrorLogger::RESULTVALUE_INFO if _testResult.nil? sqlInsert = \ "INSERT INTO " \ "qa_loggerresults " \ "(" \ "logid, " \ "seqno, " \ "logdate, " \ "scriptpoint, " \ "scriptname, " \ "comments, " \ "testresult" #-- append the additional column names if their values were passed sqlInsert.concat(", screenimagepath") unless _imagePath.nil? sqlInsert.concat(", screenimage") unless _imageBinary.nil? #-- append a closing parenthesis sqlInsert.concat(") ") sqlInsert.concat( \ "VALUES " \ "(" \ "#{self.newLogID}, " \ "#{_seqNo}, " \ "'#{self.formatDateTime(_dateTime)}', " \ "'#{_scriptPoint}', " \ "'#{_scriptName}', " \ "'#{_comments}', " \ "#{_testResult}") #-- append the additional column values if they're not nil sqlInsert.concat(", '#{_imagePath}'") unless _imagePath.nil? sqlInsert.concat(", #{_imageBinary}") unless _imageBinary.nil? #-- append a closing parenthesis sqlInsert.concat(")") puts(sqlInsert) @sqlConnection.execute(sqlInsert) end #-- SqlErrorLogger.saveResults() -- Posted via http://www.ruby-forum.com/.