variables.elementName = getEventDateTimeCEName();
variables.elementIDfield = "uniqueID";
variables.parentIDfield = "calEventID";
variables.CCAPIName = getCCAPIName(variables.elementName);
variables.elementViewName = getCEViewName(variables.elementName);
if ( LEN(TRIM(arguments.uniqueID)) )
return getEventDateTimeByIDfieldName(IDfieldName=variables.ElementIDfield,IDfieldValue=TRIM(arguments.uniqueID));
else
return application.ptCalendar.ceData.getCEData(variables.ElementName);
var retArray = ArrayNew(1);
if ( LEN(TRIM(arguments.IDfieldName)) )
retArray = application.ptCalendar.ceData.getCEData(variables.ElementName,arguments.IDfieldName,arguments.IDfieldValue);
return retArray;
var dataQry = QueryNew("temp");
var filterDataQry = QueryNew("temp");
SELECT *
FROM #variables.elementViewName#
ORDER BY eventDate, AllDay DESC, StartTime
SELECT *
FROM dataQry
WHERE 1 = 1
AND calEventID =
AND #variables.ElementIDfield# =
AND CAST( eventDate AS DATE )
BETWEEN CAST( AS DATE )
AND CAST( AS DATE )
AND CAST( eventDate AS DATE ) >= CAST( AS DATE )
ORDER BY eventDate, AllDay DESC, StartTime
return getDateTimeQuery(eventID=TRIM(arguments.eventID));
var retStruct = StructNew();
var dateTimeFieldStruct = application.ptCalendar.getViewColumnStruct(ceName=variables.elementName,useQueryDataTypes=arguments.useQueryDatatypes);
var colNameStruct = StructNew();
var key = "";
var keyVal = "";
var x = 1;
var xFld = "";
var xVal = "";
var extraFields = "recurrenceID";
var extraDataTypes = "nvarchar"; // ntext, nvarchar, varchar
var fieldExceptionList = "pageID,controlID,formID";
// Make sure we have at least one valid column from the dateTime VIEW
if ( StructKeyExists(dateTimeFieldStruct,"uniqueID") )
{
// Add the dateTimeFieldStruct fields to the colNameStruct
for (key in dateTimeFieldStruct) {
if ( !ListFindNoCase(fieldExceptionList,key) )
{
// if needed convert the values to CF Query DataTypes
if ( arguments.useQueryDatatypes )
keyVal = application.ptCalendar.convertSQLDataTypeToQueryDataType(dateTimeFieldStruct[key]);
else
keyVal = dateTimeFieldStruct[key];
// Convert the uniqueID field to a dateTimeID field
if ( key EQ "uniqueID" )
retStruct["dateTimeID"] = keyVal;
else
retStruct[key] = keyVal;
}
}
// Loop over the extra fields and dataTypes to be used for the Query Columns
if ( ListLen(extraFields) EQ ListLEN(extraDataTypes) )
{
for ( x=1;x LTE ListLen(extraFields);x=x+1 ) {
xFld = ListGetAt(extraFields,x);
// if needed convert the values to CF Query DataTypes
if ( arguments.useQueryDatatypes )
xVal = application.ptCalendar.convertSQLDataTypeToQueryDataType(ListGetAt(extraDataTypes,x));
else
xVal = ListGetAt(extraDataTypes,x);
retStruct[xFld] = xVal;
}
}
}
return retStruct;
var retStruct = StructNew();
var dateTimeFieldStruct = getDateTimeColumnStruct(useQueryDataTypes=true);
var colNameList = "";
var dataTypeList = "";
var key = "";
// Make sure we have populated structure from dateTime VIEW table
if ( NOT StructIsEmpty(dateTimeFieldStruct) )
{
// Create the list of Column Name to be used for query columns
colNameList = StructKeyList(dateTimeFieldStruct);
// Create the list of DataTypes to be used for query columns
for ( key in dateTimeFieldStruct ) {
dataTypeList = ListAppend(dataTypeList,dateTimeFieldStruct[key]);
}
// Build the query column/datatype struct
retStruct.columnNames = colNameList;
retStruct.dataTypes = dataTypeList;
}
return retStruct;
return getDateTimeColumnStruct(useQueryDataTypes=false);
var retStruct = StructNew();
var fieldStruct = csFieldsDataTypeStructByCEName(ceName=variables.ElementName);
var dbType = getCSDBType();
var validOverrideDBTypes = "Oracle,MySQL,SQLServer";
var key = "";
var keyVal = "";
var x = "";
var xFld = "";
var xType = "";
var xVal = "";
var fieldExceptionList = "";
var intType = "";
var vcharType = "";
var textType = "";
var bitType = "";
var csTextTypeFieldList = "large_textarea,formatted_text_block";
var extraFields = "recurrenceID";
var extraDataTypes = "text"; // text, large_textarea, formatted_text_block
// Check if an override DBtype was passed in
if ( LEN(TRIM(arguments.overRideDBtype)) AND ListFindNoCase(validOverrideDBTypes,arguments.overRideDBtype) )
dbType = arguments.overRideDBtype;
// Convert the Fields DataTypes for the dbType
switch (dbtype) {
case 'Oracle':
intType = 'number(12)';
vcharType = "varchar2(255)";
textType = "varchar2(2000)";
bitType = "bit";
break;
case 'MySQL':
intType = 'UNSIGNED';
vcharType = "varchar(255)";
textType = "longtext";
bitType = "bit";
break;
case 'SQLServer':
intType = 'int';
vcharType = "varchar(255)";
textType = "varchar(4000)";
bitType = "bit";
break;
}
if (dbtype neq "MySQL" and siteDBIsUnicode())
{
vcharType = replaceNoCase(vcharType, "varchar", "nvarchar");
textType = replaceNoCase(textType, "varchar", "nvarchar");
}
// Make sure we have at least one valid field from the element
if ( StructKeyExists(fieldStruct,"uniqueID") )
{
// Add the dateTimeFieldStruct fields to the colNameStruct
for (key in fieldStruct) {
if ( !ListFindNoCase(fieldExceptionList,key) )
{
// convert the field type to a DB Datatype to CF Query DataTypes
if ( ListFindNoCase(csTextTypeFieldList,fieldStruct[key]["type"]) )
keyVal = lcase(textType);
else
keyVal = lcase(vcharType);
// Convert the uniqueID field to a dateTimeID field
if ( key EQ "uniqueID" )
retStruct["datetimeid"] = keyVal;
else
retStruct[key] = keyVal;
}
}
}
// Loop over the extra fields and dataTypes to be used for the Query Columns
if ( ListLen(extraFields) EQ ListLEN(extraDataTypes) )
{
for ( x=1;x LTE ListLen(extraFields);x=x+1 ) {
xFld = ListGetAt(extraFields,x);
xType = ListGetAt(extraDataTypes,x);
// convert the extra values to SQL DataTypes
if ( ListFindNoCase(csTextTypeFieldList,xType) )
xVal = lcase(textType);
else
xVal = lcase(vcharType);
// add to the retStruct
retStruct[xFld] = xVal;
}
}
return retStruct;