Copy link to clipboard
Copied
I am in the process of rebuilding our server that is running ColdFusion. I am having trouble getting the ODBC services to install and run properly which I need to be able to connect to some MS Access databases.
Configuration:
The installation of ColdFusion and deployment to WebSphere seemed to be ok. CF seemed to be working until I tried configuring an MS Access database. What I found was:
I tried following the documented processes to manually remove and install the ODBC services, however when I run the install, I get HTTP 500 errors. Digging deeper I found that the configuration files that I was supposed to copy in referenced locations that were not where CF was installed. I made changes to those files to hopefully fix the problems. Now when I run the install process, I note the following:
By the way, I originally installed the documentation with CF.
Does anyone have any ideas on what my problem might be?
Copy link to clipboard
Copied
This blog post may be helpful.
http://www.coldfusionmuse.com/index.cfm/2010/12/31/Access.on.64bit.ColdFusion
Copy link to clipboard
Copied
Thanks Bob. That site was indeed helpful. It explained a lot of things very nicely. However, I am still stuck. I followed the instructions there and when I try to access the database in a test app, I get "SQLException while attempting to connect: java.sql.SQLException: [Macromedia][SequeLink JDBC Driver][SequeLink Server]The specified data source is not defined.."
Note that I am still in a situation where I do not have a service with the name "ColdFusion 8 ODBC Agent". Somehow I feel this is related to my impediment.
Thanks,
Dick Horner
Copy link to clipboard
Copied
You may need to reinstall SequeLink. There are a couple of more or less relevant technotes on the Adobe site, like this one:
http://kb2.adobe.com/cps/191/tn_19135.html
All that said, I would recommend you spend the time to migrate your databases from Access to ... something else. Almost anything else.
Dave Watts, CTO, Fig Leaf Software
Copy link to clipboard
Copied
I have solved the problem 10 years later since my last failed attempt to install ColdFusion 8 ODBC Server and Agent services.
The installation of ColdFusion 8 ODBC Server and Agent services is broken for CF8 J2EE EAR deployment in any container (JRun 4, JBoss or WebLogic etc).
The culprit is in my instance C:\JRun4\servers\default\cfusion-ear\cfusion-war\CFIDE\adminapi\datasource.cfc which has to be modified to ensure a post-deployment manual installation of ColdFusion 8 ODBC Server and Agent services.
And an installODBC.cfm should be created to invoke the installODBCservice() function, the function i modified, within the aforementioned datasource.cfc.
installODBC.cfm which is manually requested to install the services:
<cfscript>
//login
adminObj = createObject("component","cfide.adminapi.administrator");
adminObj.login("password");
//instantiate caching object
myObj = createObject("component","cfide.adminapi.datasource");/*
//remove odbc services - if services are installed but not running properly an uninstall and re-install may help
writeOutput("Removing ODBC Services...<br>");
returnValue = myObj.removeODBCservice();
writeOutput("ODBC Services removed<br>");
*/// install ODBC services
writeOutput("Installing ODBC Services...<br>");
returnValue = myObj.installODBCservice();
writeOutput("ODBC Services installed<br>");
</cfscript>
BTW, you should better modify C:\JRun4\servers\default\cfusion-ear\cfusion-war\WEB-INF\cfusion\db\SequeLink Setup\RemoveSequeLink.bat into the following and run it beforehand (before you request installODBC.cfm).
rem Older versions of CFMX (pre-6.1) had this service name
CFServiceController /R "ColdFusion MX ODBC Agent"
CFServiceController /R "ColdFusion MX ODBC Server"
CFServiceController /R "ColdFusion 8 ODBC Agent"
CFServiceController /R "ColdFusion 8 ODBC Server"
datasource.cfc should be:
<!--- ::
* Copyright (c) 1995-2005 Macromedia, Inc. All rights reserved.
:: --->
<cfcomponent displayname="datasource" extends="base" hint="Add, modify, and delete ColdFusion data sources.">
<cfimport prefix="admin" taglib="./customtags">
<cfparam name="request.locale" default="#createObject("java", "java.util.Locale").getDefault().getLanguage()#">
<cfscript>
factory = createObject("java", "coldfusion.server.ServiceFactory");
dsnService = factory.getDataSourceService();
security = factory.getSecurityService();
license = factory.getLicenseService();
variables.localeFile = "/CFIDE/adminapi/customtags/resources/adminapi_#request.locale#.xml";
</cfscript>
<cffunction name="getODBCDatasources" output="false" access="public" returntype="any" hint="Returns a query object that contains one row for each ODBC data source.">
<cfset var Branch_ODBCINI = "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI">
<cfset var Branch_ODBCDS = "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources">
<cfset var Branch_ODBCINST = "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI">
<cfset var accessmanager = createObject("component", "CFIDE.adminapi.accessmanager")>
<cfset accessmanager.checkAdminRoles("windows, coldfusion.datasources")>
<cftry>
<cfregistry action="GETALL" name="qODBC" type="string" sort="entry" branch="#Branch_ODBCDS#">
<cfif isDefined("qODBC")>
<cfreturn qODBC>
</cfif>
<cfcatch type="Any">
<!--- :: swallow, return default :: --->
</cfcatch>
</cftry>
<cfreturn queryNew("entry,type,value")>
</cffunction>
<cffunction name="getDatasources" output="false" access="public" returntype="any" hint="Returns a structure containing all data sources or a specified data source.">
<cfargument name="dsnname" required="false" hint="The name of the data source for which a structure is returned.">
<cfset var db = structNew()>
<cfset var origdb = structNew()>
<cfset var key = "">
<!---
We have to allow access via the coldfusion.saandboxsecurity role since this
function is invoked from getDisabledDatasources() and setDisabledDatasources()
--->
<cfset var accessmanager = createObject("component", "CFIDE.adminapi.accessmanager")>
<cfset accessmanager.checkAdminRoles("coldfusion.datasources,coldfusion.sandboxsecurity,coldfusion.serversettings,coldfusion.serversettingssummary", false)>
<cfscript>
if( isDefined("arguments.dsnname"))
{
origdb = dsnService.datasources[arguments.dsnname];
for( key in origdb )
{
if( isSimpleValue(origdb[key]))
{
db[lcase(key)] = trim(origdb[key]);
}else{
db[lcase(key)] = origdb[key];
}
}
for(key in origdb.urlmap)
{
db[lcase(key)] = origdb.urlmap[key];
}
structDelete(db, "URLMap");
return db;
}else{
return dsnService.datasources;
}
</cfscript>
</cffunction>
<cffunction name="getDriverDetails" output="false" access="public" returntype="struct" hint="Returns a structure containing all drivers">
<cfargument name="driverName" type="String" required="false" default="" hint="Name of the driver, if this is passed details of only that driver is returned">
<cfset var driverDetails=StructNew()>
<cfset var accessmanager = createObject("component", "CFIDE.adminapi.accessmanager")>
<cfset accessmanager.checkAdminRoles("coldfusion.datasources")>
<cfset driverDetailsCopy = duplicate(dsnService.drivers)>
<!--- Note: Any change made to this function to include or exclude drivers, has to be updated at
CFIDE/datasources/index.cfm--->
<!--- ::
add new MSAccessJet driver. We have to do this because we won't be able to lay down
a new neo-drivers.xml file for CFMX to Redsky upgrades.
:: --->
<cftry>
<cffile action="READ" file="#server.coldfusion.rootdir#/lib/neo-drivers.xml" variable="queryxml">
<cfwddx action="WDDX2CFML" input="#queryxml#" output="querycfml">
<cfif ( not structKeyExists(querycfml[1], "MSAccessJet") )>
<cfscript>
st = structNew();
st.class = "com.inzoom.jdbcado.Driver";
st.handler = "msaccessjet.cfm";
st.name = "Microsoft Access with Unicode Support";
st.port = "";
st.url = "jdbc:izmado:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[databasefile];IzmJdbcEsc=yes;IzmReleaseOnClose=no";
st.vendor = "Macromedia";
querycfml[1]["MSAccessJet"] = st;
</cfscript>
<cfwddx action="cfml2wddx" input="#querycfml#" output="queryxml">
<cffile action="WRITE" file="#server.coldfusion.rootdir#/lib/neo-drivers.xml" output="#queryxml#" addnewline="No">
</cfif>
<cfcatch type="Any">
<!--- :: if there is an error reading the file we will swallow this error, and leave it to the datasource service to handle it :: --->
</cfcatch>
</cftry>
<cfif not isDefined("request.license")>
<cfset request.license = factory.getLicenseService()>
</cfif>
<!--- /// remove the /// --->
<cfscript>
//remove for all
//structDelete(stDrivers, "PostgreSQL", false);
structDelete(driverDetailsCopy, "OracleThin", false);
structDelete(driverDetailsCopy, "SybaseJConnect5", false);
structDelete(driverDetailsCopy, "DB2_OS390", false);
//structDelete(stDrivers, "MySQL", false);
if( FindNoCase("unix", server.os.name) or FindNoCase("Mac", server.os.name) or FindNoCase("windows 98", server.os.name) or FindNoCase("windows me", server.os.name))
{
structDelete(driverDetailsCopy, "MSAccess", false);
structDelete(driverDetailsCopy, "ODBCSocket", false);
}
if (not FindNoCase("windows 98", server.os.name) AND not FindNoCase("windows me", server.os.name))
{
structDelete(driverDetailsCopy, "JDBC_ODBC_Bridge", false);
}
//remove the msAccessJet (w/unicode) driver if we're on unix or there was an error registering the driver
if( not dsnService.isJadoZoomLoaded() )
{
structDelete(driverDetailsCopy, "MSAccessJet", false);
}
//remove for the proffessional version.
if(getEdition() is "Standard")
{
structDelete(driverDetailsCopy, "Oracle", false);
structDelete(driverDetailsCopy, "DB2", false);
structDelete(driverDetailsCopy, "Sybase", false);
structDelete(driverDetailsCopy, "Informix", false);
}
if (getEdition().indexOf("Enterprise") NEQ -1)
{
st = structNew();
st.handler = "j2ee.cfm";
st.name = "J2EE Datasource (JNDI)";
st.port = "";
structInsert(driverDetailsCopy,"J2EE",st);
}
</cfscript>
<cfif driverName eq "">
<cfset keyList = StructKeyList(driverDetailsCopy)>
<cfloop index = "keyIndex" list = "#keyList#">
<cfset driverValue = StructFind(driverDetailsCopy,"#keyIndex#")>
<cfset driverName = driverValue.name>
<cfset StructDelete(driverValue,"handler",false)>
<cfset StructDelete(driverValue,"name",false)>
<cfset StructInsert(driverDetails,driverName,driverValue,true)>
</cfloop>
<cfreturn driverDetails>
<cfelse>
<cfif StructKeyExists(driverDetailsCopy,driverName)>
<cfset specificDriverValue = StructFind(driverDetailsCopy,driverName)>
<cfset StructDelete(specificDriverValue,"name",false)>
<cfset StructDelete(specificDriverValue,"handler",false)>
<cfreturn specificDriverValue>
<cfelse>
<cfreturn driverDetails>
</cfif>
</cfif>
</cffunction><cffunction name="deleteDatasource" output="false" access="public" returntype="void" hint="Deletes the specified data source.">
<cfargument name="dsnname" required="true" hint="The name of the data source to be deleted.">
<cfset var thisdsn = getDatasources(dsnname)>
<cfset var accessmanager = createObject("component", "CFIDE.adminapi.accessmanager")>
<cfset accessmanager.checkAdminRoles("coldfusion.datasources")>
<!--- Delete the DS record from the list of data sources ---->
<cfif thisdsn.driver eq "MSAccess">
<cftry>
<cfset Branch_ODBCINI = "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI">
<cfset Branch_ODBCDS = "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources">
<cfset Branch_ODBCINST = "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI">
<cfregistry action="DELETE" branch="#Branch_ODBCDS#" entry="#dsnname#">
<!--- Also delete the old DS info branch ---->
<cfregistry action="DELETE" branch="#Branch_ODBCINI#\#dsnname#">
<cfcatch type="Any">
<!--- /// swallow /// --->
</cfcatch>
</cftry>
</cfif>
<!--- /// delete from the odbc server /// --->
<cfif thisdsn.driver eq "MSAccess" or thisdsn.driver eq "ODBCSocket">
<cfset sl54Del(arguments.dsnname)>
</cfif>
<!--- :: delete from the jdbc pool :: --->
<cfscript>
dsn = getDatasources(arguments.dsnname);
if( dsn.driver eq "ODBCSocket" )
{
sl54Del(arguments.dsnname);
}
structDelete(dsnService.datasources, arguments.dsnname, true);
dsnService.removeDatasource(arguments.dsnname);
</cfscript></cffunction>
<!--- ::
individual datasources
:: --->
<cffunction name="setDB2" access="public" output="false" returntype="void" hint="Creates or modifies a DB2 data source. Refer to the ColdFusion documentation or ColdFusion MX Administrator online Help for a list of supported DB2 versions.">
<cfargument name="name" required="true" type="string" hint="ColdFusion data source name.">
<cfargument name="host" required="true" type="string" hint="Database server host name or IP address.">
<cfargument name="database" required="true" type="string" hint="Name of database on the server.">
<!--- :: optional :: --->
<cfargument name="originaldsn" default="" required="false" type="string" hint="Original ColdFusion data source name (use if you are renaming this data source).">
<cfargument name="port" default="50000" required="false" type="string" hint="Port used to access the database server. The default is 50000.">
<cfargument name="driver" default="DB2" required="false" type="string" hint="JDBC driver.">
<cfargument name="class" default="macromedia.jdbc.MacromediaDriver" required="false" type="string" hint="Fully qualified JDBC driver class name.">
<cfargument name="username" default="" required="false" type="string" hint="Database username.">
<cfargument name="password" default="" required="false" type="string" hint="Database password.">
<cfargument name="encryptpassword" default="true" required="false" type="boolean" hint="Indicates whether to encrypt the password when storing it in the neo-query.xml file:<ul><li>True ?Encrypt the password before storing it. </li><li>False - Store the password in clear text.</li><br><b>Note:</b> If you are updating a data source that already has an encrypted password, you must set this argument to false to avoid re-encrypting an encrypted password.</ul>">
<cfargument name="description" default="" required="false" type="string" hint="Data source description.">
<cfargument name="initargs" default="" required="false" type="string" hint="Initialization connection string arguments, formatted (arg1=arg1value;arg2=arg2value).">
<cfargument name="args" default="" required="false" type="string" hint="Connection string arguments, formatted (arg1=arg1value;arg2=arg2value).">
<cfargument name="MaxPooledStatements" required="false" type="numeric" hint="The maximum number of pooled statements.">
<!--- :: advanced options :: --->
<cfargument name="timeout" required="false" type="numeric" hint="The number of seconds that ColdFusion maintains an unused connection before destroying it.">
<cfargument name="interval" required="false" type="numeric" hint="The time (in seconds) that the server waits between cycles to check for expired data source connections to close.">
<cfargument name="login_timeout" required="false" type="numeric" hint="The number of seconds before ColdFusion times out the data source connection login attempt.">
<cfargument name="buffer" required="false" type="numeric" hint="The default buffer size, used if disable_clob is not specified or True. Default is 64000 bytes.">
<cfargument name="blob_buffer" required="false" type="numeric" hint="The default buffer size, used if disable_blob is not specified or True. Default is 64000 bytes.">
<cfargument name="enablemaxconnections" required="false" type="boolean" hint="Limit the number of data source connections to the value specified in the maxconnections argument.">
<cfargument name="maxconnections" required="false" type="numeric" hint="The maximum number of data source connections; used if you specify True for the enablemaxconnections argument.">
<cfargument name="pooling" required="false" type="boolean" hint="Enable server connection pooling for the data source.">
<cfargument name="disable" required="false" type="boolean" hint="Disable connections to data sources.">
<cfargument name="disable_clob" required="false" type="boolean" hint="Specify False to return the entire contents of any CLOB/Text columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the buffer argument.">
<cfargument name="disable_blob" required="false" type="boolean" hint="Specify False to return the entire contents of any BLOB/Image columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the blob_buffer setting.">
<cfargument name="select" required="false" type="boolean" hint="Allow SQL SELECT statements.">
<cfargument name="create" required="false" type="boolean" hint="Allow SQL CREATE statements.">
<cfargument name="grant" required="false" type="boolean" hint="Allow SQL GRANT statements.">
<cfargument name="insert" required="false" type="boolean" hint="Allow SQL INSERT statements.">
<cfargument name="drop" required="false" type="boolean" hint="Allow SQL DROP statements.">
<cfargument name="revoke" required="false" type="boolean" hint="Allow SQL REVOKE statements.">
<cfargument name="update" required="false" type="boolean" hint="Allow SQL UPDATE statements">
<cfargument name="alter" required="false" type="boolean" hint="Allow SQL ALTER statements.">
<cfargument name="storedproc" required="false" type="boolean" hint="Allow SQL stored procedure calls.">
<cfargument name="vendor" required="false" type="string" default="db2" hint="Always DB2.">
<cfargument name="type" required="false" type="string" default="ddtek" hint="Always ddtek.">
<cfargument name="validationQuery" default="" required="false" type="string" hint="Validation Query used by Coldfusion for validating the connection state when removing connections from the connection pool.">
<cfset var connectionArgs = arguments.args><!--- :: set this to a 2nd var as a temp storage location :: --->
<cfset var accessmanager = createObject("component", "CFIDE.adminapi.accessmanager")>
<cfset accessmanager.checkAdminRoles("coldfusion.datasources")>
<!--- :: init dsn with initargs :: --->
<cfset arguments.args = arguments.initArgs>
<cfinclude template="_datasource\setdsn.cfm">
<cftry>
<cfset verifyDsn(arguments.dsn)>
<cfcatch type="Any"></cfcatch>
</cftry>
<!--- :: reset dsn with the correct args :: --->
<cfset arguments.args = connectionArgs>
<cfinclude template="_datasource\setdsn.cfm">
<cftry>
<cfset verifyDsn(arguments.dsn)>
<cfcatch type="Any"></cfcatch>
</cftry></cffunction>
<cffunction name="setInformix" access="public" output="false" returntype="void" hint="Creates or modifies an Informix data source.">
<cfargument name="vendor" required="false" type="string" default="informix" hint="Always Informix.">
<cfargument name="type" required="false" type="string" default="ddtek" hint="Always ddtek.">
<cfargument name="name" required="true" type="string" hint="ColdFusion data source name.">
<cfargument name="host" required="true" type="string" hint="Database server host name or IP address.">
<cfargument name="database" required="true" type="string" hint="Name of database on the server.">
<cfargument name="InformixServer" required="true" type="string" hint="Name of the Informix server that corresponds to the data source.">
<!--- :: optional :: --->
<cfargument name="originaldsn" default="" required="false" type="string" hint="Original ColdFusion data source name (use if you are renaming this data source).">
<cfargument name="port" default="1526" required="false" type="string" hint="Port used to access the database server. The default is 1526.">
<cfargument name="driver" default="Informix" required="false" type="string" hint="JDBC driver.">
<cfargument name="class" default="macromedia.jdbc.MacromediaDriver" required="false" type="string" hint="JDBC driver class file.">
<cfargument name="username" default="" required="false" type="string" hint="Database username.">
<cfargument name="password" default="" required="false" type="string" hint="Database password.">
<cfargument name="encryptpassword" default="true" required="false" type="boolean" hint="Indicates whether to encrypt the password when storing it in the neo-query.xml file:<ul><li>True ?Encrypt the password before storing it. </li><li>False - Store the password in clear text.</li><br><b>Note:</b> If you are updating a data source that already has an encrypted password, you must set this argument to false to avoid re-encrypting an encrypted password.</ul>">
<cfargument name="description" default="" required="false" type="string" hint="Data source description.">
<cfargument name="args" required="false" type="string" hint="Connection string arguments, formatted (arg1=argvalue;arg2=argvalue).">
<cfargument name="MaxPooledStatements" required="false" type="numeric" hint="The maximum number of pooled statements.">
<!--- :: advanced options :: --->
<cfargument name="timeout" required="false" type="numeric" hint="The number of seconds that ColdFusion maintains an unused connection before destroying it.">
<cfargument name="interval" required="false" type="numeric" hint="The time (in seconds) that the server waits between cycles to check for expired data source connections to close.">
<cfargument name="login_timeout" required="false" type="numeric" hint="The number of seconds before ColdFusion times out the data source connection login attempt.">
<cfargument name="buffer" required="false" type="numeric" hint="The default buffer size, used if disable_clob is not specified or True. Default is 64000 bytes.">
<cfargument name="blob_buffer" required="false" type="numeric" hint="The default buffer size, used if disable_blob is not specified or True. Default is 64000 bytes.">
<cfargument name="enablemaxconnections" required="false" type="boolean" hint="Limit the number of data source connections to the value specified in the maxconnections argument.">
<cfargument name="maxconnections" required="false" type="numeric" hint="The maximum number of data source connections; used if you specify True for the enablemaxconnections argument.">
<cfargument name="pooling" required="false" type="boolean" hint="Enable server connection pooling for the data source.">
<cfargument name="disable" required="false" type="boolean" hint="Disable connections to data sources.">
<cfargument name="disable_clob" required="false" type="boolean" hint="Specify False to return the entire contents of any CLOB/Text columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the buffer argument.">
<cfargument name="disable_blob" required="false" type="boolean" hint="Specify False to return the entire contents of any BLOB/Image columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the blob_buffer setting.">
<cfargument name="select" required="false" type="boolean" hint="Allow SQL SELECT statements.">
<cfargument name="create" required="false" type="boolean" hint="Allow SQL CREATE statements.">
<cfargument name="grant" required="false" type="boolean" hint="Allow SQL GRANT statements.">
<cfargument name="insert" required="false" type="boolean" hint="Allow SQL INSERT statements.">
<cfargument name="drop" required="false" type="boolean" hint="Allow SQL DROP statements.">
<cfargument name="revoke" required="false" type="boolean" hint="Allow SQL REVOKE statements.">
<cfargument name="update" required="false" type="boolean" hint="Allow SQL UPDATE statements.">
<cfargument name="alter" required="false" type="boolean" hint="Allow SQL ALTER statements.">
<cfargument name="storedproc" required="false" type="boolean" hint="Allow SQL stored procedure calls.">
<cfargument name="delete" required="false" type="boolean" hint="Allow SQL DELETE statements.">
<cfargument name="validationQuery" default="" required="false" type="string" hint="Validation Query used by Coldfusion for validating the connection state when removing connections from the connection pool.">
<cfset var accessmanager = createObject("component", "CFIDE.adminapi.accessmanager")>
<cfset accessmanager.checkAdminRoles("coldfusion.datasources")>
<cfinclude template="_datasource\setdsn.cfm">
</cffunction>
<cffunction name="setMSAccess" access="public" output="false" returntype="void" hint="Creates or modifies a Microsoft Access data source.">
<cfargument name="name" required="true" type="string" hint="ColdFusion data source name.">
<cfargument name="databasefile" required="true" type="string" hint="Fully qualified path to the file containing the Access MDB file.">
<!--- :: optional :: --->
<cfargument name="originaldsn" default="" required="false" type="string" hint="Original ColdFusion data source name (use if you are renaming this data source).">
<cfargument name="driver" default="MSAccess" required="false" type="string" hint="JDBC driver.">
<cfargument name="class" default="macromedia.jdbc.MacromediaDriver" required="false" type="string" hint="Fully qualified JDBC driver class name.">
<cfargument name="port" default="19998" required="false" type="string" hint="Port used to access the database server. The default is 19998.">
<cfargument name="username" default="System" required="false" type="string" hint="Database username.">
<cfargument name="password" default="" required="false" type="string" hint="Database password.">
<cfargument name="encryptpassword" default="true" required="false" type="boolean" hint="Indicates whether to encrypt the password when storing it in the neo-query.xml file:<ul><li>True ?Encrypt the password before storing it. </li><li>False - Store the password in clear text.</li><br><b>Note:</b> If you are updating a data source that already has an encrypted password, you must set this argument to false to avoid re-encrypting an encrypted password.</ul>">
<cfargument name="description" default="" required="false" type="string" hint="Data source description.">
<cfargument name="args" required="false" type="string" hint="Connection string arguments, formatted (arg1=arg1value;arg2=arg2value).">
<cfargument name="systemDatabaseFile" required="false" type="string" hint="For secure access to the database file, specify the fully qualified path name of the database that contains database security information. The system database is usually located in winnt\system32\system.mdw.">
<cfargument name="UseTrustedConnection" default="true" required="false" type="boolean" hint="If selected, causes ODBC driver to use the credentials specified in the ODBC connection or the network login id.">
<cfargument name="defaultusername" default="" required="false" type="string" hint="The user name that the driver uses to connect to the data source if an application requests a connection without supplying a user name.">
<cfargument name="maxBufferSize" required="false" type="numeric" hint="The total number of bytes that ColdFusion MX uses to cache application pages. Enter a value to optimize ColdFusion performance.">
<cfargument name="pageTimeout" default="600" required="false" type="numeric" hint="The number of milliseconds before a request for a ColdFusion page times out. The default is 600. If you observe excessive network activity when using this driver, increase the page timeout value.">
<cfargument name="TimeStampAsString" default="no" required="false" type="boolean" hint="Enable this setting if your application retrieves Date/Time data and then re-uses it in SQL statements without applying formatting (using functions such as DateFormat, TimeFormat, and CreateODBCDateTime). Specify True or False.">
<!--- :: advanced options :: --->
<cfargument name="timeout" required="false" type="numeric" hint="The number of seconds that ColdFusion maintains an unused connection before destroying it.">
<cfargument name="interval" required="false" type="numeric" hint="The time (in seconds) that the server waits between cycles to check for expired data source connections to close.">
<cfargument name="login_timeout" required="false" type="numeric" hint="The number of seconds before ColdFusion times out the data source connection login attempt.">
<cfargument name="buffer" required="false" type="numeric" hint="The default buffer size, used if disable_clob is not specified or True. Default is 64000 bytes.">
<cfargument name="blob_buffer" required="false" type="numeric" hint="The default buffer size, used if disable_blob is not specified or True. Default is 64000 bytes."> <cfargument name="enablemaxconnections" required="false" type="boolean" hint="Limit the number of data source connections to the value specified in the maxconnections argument.">
<cfargument name="maxconnections" required="false" type="numeric" hint="The maximum number of data source connections; used if you specify True for the enablemaxconnections argument.">
<cfargument name="pooling" required="false" type="boolean" hint="Enable server connection pooling for the data source.">
<cfargument name="disable" required="false" type="boolean" hint="Disable connections to data sources.">
<cfargument name="disable_clob" required="false" type="boolean" hint="Specify False to return the entire contents of any CLOB/Text columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the buffer argument.">
<cfargument name="disable_blob" required="false" type="boolean" hint="Specify False to return the entire contents of any BLOB/Image columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the blob_buffer setting.">
<cfargument name="select" required="false" type="boolean" hint="Allow SQL SELECT statements.">
<cfargument name="create" required="false" type="boolean" hint="Allow SQL CREATE statements.">
<cfargument name="grant" required="false" type="boolean" hint="Allow SQL GRANT statements.">
<cfargument name="insert" required="false" type="boolean" hint="Allow SQL INSERT statements.">
<cfargument name="drop" required="false" type="boolean" hint="Allow SQL DROP statements.">
<cfargument name="revoke" required="false" type="boolean" hint="Allow SQL REVOKE statements.">
<cfargument name="update" required="false" type="boolean" hint="Allow SQL UPDATE statements.">
<cfargument name="alter" required="false" type="boolean" hint="Allow SQL ALTER statements.">
<cfargument name="storedproc" required="false" type="boolean" hint="Allow SQL stored procedure calls.">
<cfargument name="delete" required="false" type="boolean" hint="Allow SQL DELETE statements.">
<cfargument name="validationQuery" default="" required="false" type="string" hint="Validation Query used by Coldfusion for validating the connection state when removing connections from the connection pool.">
<cfset var accessmanager = createObject("component", "CFIDE.adminapi.accessmanager")>
<cfset accessmanager.checkAdminRoles("coldfusion.datasources")>
<cfinclude template="_datasource\setdsn.cfm">
<cfinclude template="_datasource\setmsaccessregistry.cfm">
<cfscript>
sleep(1000);
</cfscript>
<cfinclude template="_datasource\setsldatasource.cfm">
</cffunction>
<cffunction name="setMSAccessUnicode" access="public" output="false" returntype="void" hint="Creates or modifies a Microsoft Access Unicode data source.">
<cfargument name="name" required="true" type="string" hint="ColdFusion datasource name.">
<cfargument name="databasefile" required="true" type="string" hint="database name that corresponds to the data source."><!--- :: optional :: --->
<cfargument name="originaldsn" default="" required="false" type="string" hint="original ColdFusion datasource name, if you are renaming this dsn.">
<cfargument name="driver" default="MSAccessJet" required="false" type="string" hint="JDBC driver.">
<cfargument name="class" default="com.inzoom.jdbcado.Driver" required="false" type="string" hint="JDBC class file.">
<cfargument name="username" default="" required="false" type="string" hint="Database username.">
<cfargument name="password" default="" required="false" type="string" hint="Database password.">
<cfargument name="encryptpassword" default="true" required="false" type="boolean" hint="Indicates whether to encrypt the password when storing it in the neo-query.xml file:<ul><li>True ?Encrypt the password before storing it. </li><li>False - Store the password in clear text.</li><br><b>Note:</b> If you are updating a data source that already has an encrypted password, you must set this argument to false to avoid re-encrypting an encrypted password.</ul>">
<cfargument name="description" default="" required="false" type="string" hint="Data source description.">
<cfargument name="args" required="false" type="string" hint="Connection string arguments, formatted (arg1=argvalue;arg2=argvalue).">
<!--- :: advanced options :: --->
<cfargument name="pageTimeout" default="600" required="false" type="numeric" hint="The number of milliseconds before a request for a ColdFusion page times out. The default is 600. If you observe excessive network activity when using this driver, increase the page timeout value.">
<cfargument name="maxBufferSize" required="false" type="numeric" hint="The total number of bytes that ColdFusion MX uses to cache application pages. Enter a value to optimize ColdFusion performance.">
<cfargument name="timeout" required="false" type="numeric" hint="The number of seconds that ColdFusion maintains an unused connection before destroying it.">
<cfargument name="interval" required="false" type="numeric" hint="The time (in seconds) that the server waits between cycles to check for expired data source connections to close.">
<cfargument name="login_timeout" required="false" type="numeric" hint="The number of seconds before ColdFusion times out the data source connection login attempt.">
<cfargument name="buffer" required="false" type="numeric" hint="The default buffer size, used if disable_clob is not specified or True. Default is 64000 bytes.">
<cfargument name="blob_buffer" required="false" type="numeric" hint="The default buffer size, used if disable_blob is not specified or True. Default is 64000 bytes.">
<cfargument name="enablemaxconnections" required="false" type="boolean" hint="Enables the maxconnections setting.">
<cfargument name="maxconnections" required="false" type="numeric" hint="Limit connections to this maximum amount.">
<cfargument name="pooling" required="false" type="boolean" hint="Enable server connection pooling for your data source.">
<cfargument name="disable" required="false" type="boolean" hint="Suspends all client connections to the data source.">
<cfargument name="disable_clob" required="false" type="boolean" hint="Specify False to return the entire contents of any CLOB/Text columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the buffer argument.">
<cfargument name="disable_blob" required="false" type="boolean" hint="Specify False to return the entire contents of any BLOB/Image columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the blob_buffer setting.">
<cfargument name="select" required="false" type="boolean" hint="Allow SQL SELECT statements.">
<cfargument name="create" required="false" type="boolean" hint="Allow SQL CREATE statements.">
<cfargument name="grant" required="false" type="boolean" hint="Allow SQL GRANT statements.">
<cfargument name="insert" required="false" type="boolean" hint="Allow SQL INSERT statements.">
<cfargument name="drop" required="false" type="boolean" hint="Allow SQL DROP statements.">
<cfargument name="revoke" required="false" type="boolean" hint="Allow SQL REVOKE statements.">
<cfargument name="update" required="false" type="boolean" hint="Allow SQL UPDATE statements.">
<cfargument name="alter" required="false" type="boolean" hint="Allow SQL ALTER statements.">
<cfargument name="storedproc" required="false" type="boolean" hint="Allow SQL stored procedure calls.">
<cfargument name="delete" required="false" type="boolean" hint="Allow SQL DELETE statements.">
<cfargument name="validationQuery" default="" required="false" type="string" hint="Validation Query used by Coldfusion for validating the connection state when removing connections from the connection pool.">
<cfset var accessmanager = createObject("component", "CFIDE.adminapi.accessmanager")>
<cfset accessmanager.checkAdminRoles("coldfusion.datasources")>
<cfinclude template="_datasource\setdsn.cfm">
</cffunction>
<cffunction name="setMSSQL" access="public" output="false" returntype="void" hint="Creates or modifies a Microsoft SQL Server data source.">
<cfargument name="vendor" required="false" type="string" default="sqlserver" hint="Always Microsoft.">
<cfargument name="type" required="false" type="string" default="ddtek" hint="Always ddtek.">
<cfargument name="name" required="true" type="string" hint="ColdFusion datasource name.">
<cfargument name="host" required="true" type="string" hint="Database server host name or IP address.">
<cfargument name="database" required="true" type="string" hint="Database name that corresponds to the data source."><!--- :: optional :: --->
<cfargument name="originaldsn" default="" required="false" type="string" hint="original ColdFusion datasource name, if you are renaming this dsn.">
<cfargument name="port" default="1433" required="false" type="string" hint="Port that is used to access the database server. (default 1433)">
<cfargument name="driver" default="MSSQLServer" required="false" type="string" hint="JDBC driver.">
<cfargument name="class" default="macromedia.jdbc.MacromediaDriver" required="false" type="string" hint="JDBC class file.">
<cfargument name="username" default="" required="false" type="string" hint="Database username">
<cfargument name="password" default="" required="false" type="string" hint="Database password.">
<cfargument name="encryptpassword" default="true" required="false" type="boolean" hint="Indicates whether to encrypt the password when storing it in the neo-query.xml file:<ul><li>True ?Encrypt the password before storing it. </li><li>False - Store the password in clear text.</li><br><b>Note:</b> If you are updating a data source that already has an encrypted password, you must set this argument to false to avoid re-encrypting an encrypted password.</ul>">
<cfargument name="description" default="" required="false" type="string" hint="A description for this data source connection.">
<cfargument name="args" required="false" type="string" hint="Connection string arguments, formatted (arg1=argvalue;arg2=argvalue).">
<cfargument name="sendStringParametersAsUnicode" required="false" type="boolean" hint="Enable Unicode for data sources configured for non-Latin characters ">
<cfargument name="selectmethod" default="cursor" required="true" type="string" hint="Select Method (direct or cursor)">
<cfargument name="MaxPooledStatements" required="false" type="numeric" hint="The maximum number of pooled statements.">
<!--- :: advanced options :: --->
<cfargument name="timeout" required="false" type="numeric" hint="The number of seconds that ColdFusion maintains an unused connection before destroying it.">
<cfargument name="interval" required="false" type="numeric" hint="The time (in seconds) that the server waits between cycles to check for expired data source connections to close.">
<cfargument name="login_timeout" required="false" type="numeric" hint="The number of seconds before ColdFusion times out the data source connection login attempt.">
<cfargument name="buffer" required="false" type="numeric" hint="The default buffer size, used if disable_clob is not specified or True. Default is 64000 bytes.">
<cfargument name="blob_buffer" required="false" type="numeric" hint="The default buffer size, used if disable_blob is not specified or True. Default is 64000 bytes.">
<cfargument name="enablemaxconnections" required="false" type="boolean" hint="Enables the maxconnections setting.">
<cfargument name="maxconnections" required="false" type="numeric" hint="Limit connections to this maximum amount.">
<cfargument name="pooling" required="false" type="boolean" hint="Enable server connection pooling for your data source.">
<cfargument name="disable" required="false" type="boolean" hint="Suspends all client connections to the data source.">
<cfargument name="disable_clob" required="false" type="boolean" hint="Specify False to return the entire contents of any CLOB/Text columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the buffer argument.">
<cfargument name="disable_blob" required="false" type="boolean" hint="Specify False to return the entire contents of any BLOB/Image columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the blob_buffer setting.">
<cfargument name="select" required="false" type="boolean" hint="Allow SQL SELECT statements.">
<cfargument name="create" required="false" type="boolean" hint="Allow SQL CREATE statements.">
<cfargument name="grant" required="false" type="boolean" hint="Allow SQL GRANT statements.">
<cfargument name="insert" required="false" type="boolean" hint="Allow SQL INSERT statements.">
<cfargument name="drop" required="false" type="boolean" hint="Allow SQL DROP statements.">
<cfargument name="revoke" required="false" type="boolean" hint="Allow SQL REVOKE statements.">
<cfargument name="update" required="false" type="boolean" hint="Allow SQL UPDATE statements.">
<cfargument name="alter" required="false" type="boolean" hint="Allow SQL ALTER statements.">
<cfargument name="storedproc" required="false" type="boolean" hint="Allow SQL stored procedure calls.">
<cfargument name="delete" required="false" type="boolean" hint="Allow SQL DELETE statements.">
<cfargument name="validationQuery" default="" required="false" type="string" hint="Validation Query used by Coldfusion for validating the connection state when removing connections from the connection pool.">
<cfset var accessmanager = createObject("component", "CFIDE.adminapi.accessmanager")>
<cfset accessmanager.checkAdminRoles("coldfusion.datasources")>
<cfinclude template="_datasource\setdsn.cfm">
</cffunction>
<cffunction name="setPostGreSQL" access="public" output="false" returntype="void" hint="Creates or modifies a PostGreSQL data source.">
<cfargument name="name" required="true" type="string" hint="ColdFusion datasource name.">
<cfargument name="host" required="true" type="string" hint="Database server host name or IP address.">
<cfargument name="database" required="true" type="string" hint="Database name that corresponds to the data source."><!--- :: optional :: --->
<cfargument name="originaldsn" default="" required="false" type="string" hint="original ColdFusion datasource name, if you are renaming this dsn.">
<cfargument name="port" default="5432" required="false" type="string" hint="Port that is used to access the database server. (default 5432)">
<cfargument name="driver" default="PostgreSQL" required="false" type="string" hint="JDBC driver.">
<cfargument name="class" default="org.postgresql.Driver" required="false" type="string" hint="JDBC class file.">
<cfargument name="username" default="" required="false" type="string" hint="Database username">
<cfargument name="password" default="" required="false" type="string" hint="Database password.">
<cfargument name="encryptpassword" default="true" required="false" type="boolean" hint="Indicates whether to encrypt the password when storing it in the neo-datasource.xml file:<ul><li>True ?Encrypt the password before storing it. </li><li>False - Store the password in clear text.</li><br><b>Note:</b> If you are updating a data source that already has an encrypted password, you must set this argument to false to avoid re-encrypting an encrypted password.</ul>">
<cfargument name="description" default="" required="false" type="string" hint="A description for this data source connection.">
<cfargument name="args" required="false" type="string" hint="Connection string arguments, formatted (arg1=argvalue;arg2=argvalue).">
<!--- :: advanced options :: --->
<cfargument name="timeout" required="false" type="numeric" hint="The number of seconds that ColdFusion maintains an unused connection before destroying it.">
<cfargument name="interval" required="false" type="numeric" hint="The time (in seconds) that the server waits between cycles to check for expired data source connections to close.">
<cfargument name="login_timeout" required="false" type="numeric" hint="The number of seconds before ColdFusion times out the data source connection login attempt.">
<cfargument name="buffer" required="false" type="numeric" hint="The default buffer size, used if disable_clob is not specified or True. Default is 64000 bytes.">
<cfargument name="blob_buffer" required="false" type="numeric" hint="The default buffer size, used if disable_blob is not specified or True. Default is 64000 bytes.">
<cfargument name="enablemaxconnections" required="false" type="boolean" hint="Enables the maxconnections setting.">
<cfargument name="maxconnections" required="false" type="numeric" hint="Limit connections to this maximum amount.">
<cfargument name="pooling" required="false" type="boolean" hint="Enable server connection pooling for your data source.">
<cfargument name="disable" required="false" type="boolean" hint="Suspends all client connections to the data source.">
<cfargument name="disable_clob" required="false" type="boolean" hint="Specify False to return the entire contents of any CLOB/Text columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the buffer argument.">
<cfargument name="disable_blob" required="false" type="boolean" hint="Specify False to return the entire contents of any BLOB/Image columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the blob_buffer setting.">
<cfargument name="select" required="false" type="boolean" hint="Allow SQL SELECT statements.">
<cfargument name="create" required="false" type="boolean" hint="Allow SQL CREATE statements.">
<cfargument name="grant" required="false" type="boolean" hint="Allow SQL GRANT statements.">
<cfargument name="insert" required="false" type="boolean" hint="Allow SQL INSERT statements.">
<cfargument name="drop" required="false" type="boolean" hint="Allow SQL DROP statements.">
<cfargument name="revoke" required="false" type="boolean" hint="Allow SQL REVOKE statements.">
<cfargument name="update" required="false" type="boolean" hint="Allow SQL UPDATE statements.">
<cfargument name="alter" required="false" type="boolean" hint="Allow SQL ALTER statements.">
<cfargument name="storedproc" required="false" type="boolean" hint="Allow SQL stored procedure calls.">
<cfargument name="delete" required="false" type="boolean" hint="Allow SQL DELETE statements.">
<cfargument name="validationQuery" default="" required="false" type="string" hint="Validation Query used by Coldfusion for validating the connection state when removing connections from the connection pool.">
<cfset var accessmanager = createObject("component", "CFIDE.adminapi.accessmanager")>
<cfset accessmanager.checkAdminRoles("coldfusion.datasources")>
<cfinclude template="_datasource\setdsn.cfm">
</cffunction>
<cffunction name="setMySQL5" access="public" output="false" returntype="void" hint="Creates or modifies a MySQL 4 or MySQL 5 data source.">
<cfargument name="name" required="true" type="string" hint="ColdFusion datasource name.">
<cfargument name="host" required="true" type="string" hint="Database server host name or IP address.">
<cfargument name="database" required="true" type="string" hint="Database name that corresponds to the data source.">
<!--- :: optional :: --->
<cfargument name="originaldsn" default="" required="false" type="string" hint="Original ColdFusion datasource name, if you are renaming this dsn.">
<cfargument name="port" default="3306" required="false" type="string" hint="Port that is used to access the database server. (default 3306)">
<cfargument name="driver" default="MySQL5" required="false" type="string" hint="JDBC driver.">
<cfargument name="class" default="com.mysql.jdbc.Driver" required="false" type="string" hint="JDBC class file.">
<cfargument name="username" default="" required="false" type="string" hint="Database username.">
<cfargument name="password" default="" required="false" type="string" hint="Database password.">
<cfargument name="encryptpassword" default="true" required="false" type="boolean" hint="Indicates whether to encrypt the password when storing it in the neo-query.xml file:<ul><li>True ?Encrypt the password before storing it. </li><li>False - Store the password in clear text.</li><br><b>Note:</b> If you are updating a data source that already has an encrypted password, you must set this argument to false to avoid re-encrypting an encrypted password.</ul>">
<cfargument name="description" default="" required="false" type="string" hint="A description of this data source connection.">
<cfargument name="args" required="false" type="string" hint="Connection string arguments, formatted (arg1=argvalue;arg2=argvalue).">
<!--- :: advanced options :: --->
<cfargument name="timeout" required="false" type="numeric" hint="The number of seconds that ColdFusion maintains an unused connection before destroying it.">
<cfargument name="interval" required="false" type="numeric" hint="The time (in seconds) that the server waits between cycles to check for expired data source connections to close.">
<cfargument name="login_timeout" required="false" type="numeric" hint="The number of seconds before ColdFusion times out the data source connection login attempt.">
<cfargument name="buffer" required="false" type="numeric" hint="The default buffer size, used if disable_clob is not specified or True. Default is 64000 bytes.">
<cfargument name="blob_buffer" required="false" type="numeric" hint="The default buffer size, used if disable_blob is not specified or True. Default is 64000 bytes.">
<cfargument name="enablemaxconnections" required="false" type="boolean" hint="Enables the maxconnections setting.">
<cfargument name="maxconnections" required="false" type="numeric" hint="Limit connections to this maximum amount.">
<cfargument name="pooling" required="false" type="boolean" hint="Enable server connection pooling for your data source.">
<cfargument name="disable" required="false" type="boolean" hint="Suspends all client connections to the data source.">
<cfargument name="disable_clob" required="false" type="boolean" hint="Specify False to return the entire contents of any CLOB/Text columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the buffer argument.">
<cfargument name="disable_blob" required="false" type="boolean" hint="Specify False to return the entire contents of any BLOB/Image columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the blob_buffer setting.">
<cfargument name="select" required="false" type="boolean" hint="Allow SQL SELECT statements.">
<cfargument name="create" required="false" type="boolean" hint="Allow SQL CREATE statements.">
<cfargument name="grant" required="false" type="boolean" hint="Allow SQL GRANT statements.">
<cfargument name="insert" required="false" type="boolean" hint="Allow SQL INSERT statements.">
<cfargument name="drop" required="false" type="boolean" hint="Allow SQL DROP statements.">
<cfargument name="revoke" required="false" type="boolean" hint="Allow SQL REVOKE statements.">
<cfargument name="update" required="false" type="boolean" hint="Allow SQL UPDATE statements.">
<cfargument name="alter" required="false" type="boolean" hint="Allow SQL ALTER statements.">
<cfargument name="storedproc" required="false" type="boolean" hint="Allow SQL stored procedure calls.">
<cfargument name="delete" required="false" type="boolean" hint="Allow SQL DELETE statements.">
<cfargument name="validationQuery" default="" required="false" type="string" hint="Validation Query used by Coldfusion for validating the connection state when removing connections from the connection pool.">
<cfset var accessmanager = createObject("component", "CFIDE.adminapi.accessmanager")>
<cfset accessmanager.checkAdminRoles("coldfusion.datasources")>
<cfinclude template="_datasource\setdsn.cfm">
</cffunction>
<cffunction name="setMySQL" access="public" output="false" returntype="void" hint="Creates or modifies a MySQL 3 data source.">
<cfargument name="name" required="true" type="string" hint="ColdFusion datasource name.">
<cfargument name="host" required="true" type="string" hint="Database server host name or IP address.">
<cfargument name="database" required="true" type="string" hint="Database name that corresponds to the data source.">
<!--- :: optional :: --->
<cfargument name="originaldsn" default="" required="false" type="string" hint="Original ColdFusion datasource name, if you are renaming this dsn.">
<cfargument name="port" default="3306" required="false" type="string" hint="Port that is used to access the database server. (default 3306)">
<cfargument name="driver" default="MySQL" required="false" type="string" hint="JDBC driver.">
<cfargument name="class" default="org.gjt.mm.mysql.Driver" required="false" type="string" hint="JDBC class file.">
<cfargument name="username" default="" required="false" type="string" hint="Database username.">
<cfargument name="password" default="" required="false" type="string" hint="Database password.">
<cfargument name="encryptpassword" default="true" required="false" type="boolean" hint="Indicates whether to encrypt the password when storing it in the neo-query.xml file:<ul><li>True ?Encrypt the password before storing it. </li><li>False - Store the password in clear text.</li><br><b>Note:</b> If you are updating a data source that already has an encrypted password, you must set this argument to false to avoid re-encrypting an encrypted password.</ul>">
<cfargument name="description" default="" required="false" type="string" hint="A description of this data source connection.">
<cfargument name="args" required="false" type="string" hint="Connection string arguments, formatted (arg1=argvalue;arg2=argvalue).">
<!--- :: advanced options :: --->
<cfargument name="timeout" required="false" type="numeric" hint="The number of seconds that ColdFusion maintains an unused connection before destroying it.">
<cfargument name="interval" required="false" type="numeric" hint="The time (in seconds) that the server waits between cycles to check for expired data source connections to close.">
<cfargument name="login_timeout" required="false" type="numeric" hint="The number of seconds before ColdFusion times out the data source connection login attempt.">
<cfargument name="buffer" required="false" type="numeric" hint="The default buffer size, used if disable_clob is not specified or True. Default is 64000 bytes.">
<cfargument name="blob_buffer" required="false" type="numeric" hint="The default buffer size, used if disable_blob is not specified or True. Default is 64000 bytes.">
<cfargument name="enablemaxconnections" required="false" type="boolean" hint="Enables the maxconnections setting.">
<cfargument name="maxconnections" required="false" type="numeric" hint="Limit connections to this maximum amount.">
<cfargument name="pooling" required="false" type="boolean" hint="Enable server connection pooling for your data source.">
<cfargument name="disable" required="false" type="boolean" hint="Suspends all client connections to the data source.">
<cfargument name="disable_clob" required="false" type="boolean" hint="Specify False to return the entire contents of any CLOB/Text columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the buffer argument.">
<cfargument name="disable_blob" required="false" type="boolean" hint="Specify False to return the entire contents of any BLOB/Image columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the blob_buffer setting.">
<cfargument name="select" required="false" type="boolean" hint="Allow SQL SELECT statements.">
<cfargument name="create" required="false" type="boolean" hint="Allow SQL CREATE statements.">
<cfargument name="grant" required="false" type="boolean" hint="Allow SQL GRANT statements.">
<cfargument name="insert" required="false" type="boolean" hint="Allow SQL INSERT statements.">
<cfargument name="drop" required="false" type="boolean" hint="Allow SQL DROP statements.">
<cfargument name="revoke" required="false" type="boolean" hint="Allow SQL REVOKE statements.">
<cfargument name="update" required="false" type="boolean" hint="Allow SQL UPDATE statements.">
<cfargument name="alter" required="false" type="boolean" hint="Allow SQL ALTER statements.">
<cfargument name="storedproc" required="false" type="boolean" hint="Allow SQL stored procedure calls.">
<cfargument name="delete" required="false" type="boolean" hint="Allow SQL DELETE statements.">
<cfargument name="validationQuery" default="" required="false" type="string" hint="Validation Query used by Coldfusion for validating the connection state when removing connections from the connection pool.">
<cfset var accessmanager = createObject("component", "CFIDE.adminapi.accessmanager")>
<cfset accessmanager.checkAdminRoles("coldfusion.datasources")>
<cfinclude template="_datasource\setdsn.cfm">
</cffunction>
<cffunction name="setDerbyEmbedded" access="public" output="false" returntype="void" hint="Creates or modifies an Apache Derby Embedded data source.">
<cfargument name="name" required="true" type="string" hint="ColdFusion datasource name.">
<cfargument name="database" required="true" type="string" hint="Fully qualified path to the folder containing the Derby database.">
<!--- :: optional :: --->
<cfargument name="originaldsn" default="" required="false" type="string" hint="Original ColdFusion datasource name, if you are renaming this dsn.">
<cfargument name="driver" default="Apache Derby Embedded" required="false" type="string" hint="JDBC driver.">
<cfargument name="class" default="org.apache.derby.jdbc.EmbeddedDriver" required="false" type="string" hint="JDBC class file.">
<cfargument name="username" default="" required="false" type="string" hint="Database username.">
<cfargument name="password" default="" required="false" type="string" hint="Database password.">
<cfargument name="encryptpassword" default="true" required="false" type="boolean" hint="Indicates whether to encrypt the password when storing it in the neo-query.xml file:<ul><li>True ?Encrypt the password before storing it. </li><li>False - Store the password in clear text.</li><br><b>Note:</b> If you are updating a data source that already has an encrypted password, you must set this argument to false to avoid re-encrypting an encrypted password.</ul>">
<cfargument name="description" default="" required="false" type="string" hint="A description of this data source connection.">
<cfargument name="args" required="false" type="string" hint="Connection string arguments, formatted (arg1=argvalue;arg2=argvalue).">
<cfargument name="isnewdb" required="false" type="boolean" default="false" hint="Indicates whether the database needs to be created">
<!--- :: advanced options :: --->
<cfargument name="timeout" required="false" type="numeric" hint="The number of seconds that ColdFusion maintains an unused connection before destroying it.">
<cfargument name="interval" required="false" type="numeric" hint="The time (in seconds) that the server waits between cycles to check for expired data source connections to close.">
<cfargument name="login_timeout" required="false" type="numeric" hint="The number of seconds before ColdFusion times out the data source connection login attempt.">
<cfargument name="buffer" required="false" type="numeric" hint="The default buffer size, used if disable_clob is not specified or True. Default is 64000 bytes.">
<cfargument name="blob_buffer" required="false" type="numeric" hint="The default buffer size, used if disable_blob is not specified or True. Default is 64000 bytes.">
<cfargument name="enablemaxconnections" required="false" type="boolean" hint="Enables the maxconnections setting.">
<cfargument name="maxconnections" required="false" type="numeric" hint="Limit connections to this maximum amount.">
<cfargument name="pooling" required="false" type="boolean" hint="Enable server connection pooling for your data source.">
<cfargument name="disable" required="false" type="boolean" hint="Suspends all client connections to the data source.">
<cfargument name="disable_clob" required="false" type="boolean" hint="Specify False to return the entire contents of any CLOB/Text columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the buffer argument.">
<cfargument name="disable_blob" required="false" type="boolean" hint="Specify False to return the entire contents of any BLOB/Image columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the blob_buffer setting.">
<cfargument name="select" required="false" type="boolean" hint="Allow SQL SELECT statements.">
<cfargument name="create" required="false" type="boolean" hint="Allow SQL CREATE statements.">
<cfargument name="grant" required="false" type="boolean" hint="Allow SQL GRANT statements.">
<cfargument name="insert" required="false" type="boolean" hint="Allow SQL INSERT statements.">
<cfargument name="drop" required="false" type="boolean" hint="Allow SQL DROP statements.">
<cfargument name="revoke" required="false" type="boolean" hint="Allow SQL REVOKE statements.">
<cfargument name="update" required="false" type="boolean" hint="Allow SQL UPDATE statements.">
<cfargument name="alter" required="false" type="boolean" hint="Allow SQL ALTER statements.">
<cfargument name="storedproc" required="false" type="boolean" hint="Allow SQL stored procedure calls.">
<cfargument name="delete" required="false" type="boolean" hint="Allow SQL DELETE statements.">
<cfargument name="validationQuery" default="" required="false" type="string" hint="Validation Query used by Coldfusion for validating the connection state when removing connections from the connection pool.">
<cfset var accessmanager = createObject("component", "CFIDE.adminapi.accessmanager")>
<cfset accessmanager.checkAdminRoles("coldfusion.datasources")>
<cfinclude template="_datasource\setdsn.cfm">
</cffunction><cffunction name="setDerbyClient" access="public" output="false" returntype="void" hint="Creates or modifies an Apache Derby Client data source.">
<cfargument name="name" required="true" type="string" hint="ColdFusion datasource name.">
<cfargument name="host" required="true" type="string" hint="Database server host name or IP address.">
<cfargument name="database" required="true" type="string" hint="Database name that corresponds to the data source.">
<!--- :: optional :: --->
<cfargument name="originaldsn" default="" required="false" type="string" hint="Original ColdFusion datasource name, if you are renaming this dsn.">
<cfargument name="driver" default="Apache Derby Client" required="false" type="string" hint="JDBC driver.">
<cfargument name="class" default="org.apache.derby.jdbc.ClientDriver" required="false" type="string" hint="JDBC class file.">
<cfargument name="username" default="" required="false" type="string" hint="Database username.">
<cfargument name="password" default="" required="false" type="string" hint="Database password.">
<cfargument name="encryptpassword" default="true" required="false" type="boolean" hint="Indicates whether to encrypt the password when storing it in the neo-query.xml file:<ul><li>True ?Encrypt the password before storing it. </li><li>False - Store the password in clear text.</li><br><b>Note:</b> If you are updating a data source that already has an encrypted password, you must set this argument to false to avoid re-encrypting an encrypted password.</ul>">
<cfargument name="description" default="" required="false" type="string" hint="A description of this data source connection.">
<cfargument name="args" required="false" type="string" hint="Connection string arguments, formatted (arg1=argvalue;arg2=argvalue).">
<!--- :: advanced options :: --->
<cfargument name="timeout" required="false" type="numeric" hint="The number of seconds that ColdFusion maintains an unused connection before destroying it.">
<cfargument name="interval" required="false" type="numeric" hint="The time (in seconds) that the server waits between cycles to check for expired data source connections to close.">
<cfargument name="login_timeout" required="false" type="numeric" hint="The number of seconds before ColdFusion times out the data source connection login attempt.">
<cfargument name="buffer" required="false" type="numeric" hint="The default buffer size, used if disable_clob is not specified or True. Default is 64000 bytes.">
<cfargument name="blob_buffer" required="false" type="numeric" hint="The default buffer size, used if disable_blob is not specified or True. Default is 64000 bytes.">
<cfargument name="enablemaxconnections" required="false" type="boolean" hint="Enables the maxconnections setting.">
<cfargument name="maxconnections" required="false" type="numeric" hint="Limit connections to this maximum amount.">
<cfargument name="pooling" required="false" type="boolean" hint="Enable server connection pooling for your data source.">
<cfargument name="disable" required="false" type="boolean" hint="Suspends all client connections to the data source.">
<cfargument name="disable_clob" required="false" type="boolean" hint="Specify False to return the entire contents of any CLOB/Text columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the buffer argument.">
<cfargument name="disable_blob" required="false" type="boolean" hint="Specify False to return the entire contents of any BLOB/Image columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the blob_buffer setting.">
<cfargument name="select" required="false" type="boolean" hint="Allow SQL SELECT statements.">
<cfargument name="create" required="false" type="boolean" hint="Allow SQL CREATE statements.">
<cfargument name="grant" required="false" type="boolean" hint="Allow SQL GRANT statements.">
<cfargument name="insert" required="false" type="boolean" hint="Allow SQL INSERT statements.">
<cfargument name="drop" required="false" type="boolean" hint="Allow SQL DROP statements.">
<cfargument name="revoke" required="false" type="boolean" hint="Allow SQL REVOKE statements.">
<cfargument name="update" required="false" type="boolean" hint="Allow SQL UPDATE statements.">
<cfargument name="alter" required="false" type="boolean" hint="Allow SQL ALTER statements.">
<cfargument name="storedproc" required="false" type="boolean" hint="Allow SQL stored procedure calls.">
<cfargument name="delete" required="false" type="boolean" hint="Allow SQL DELETE statements.">
<cfargument name="validationQuery" default="" required="false" type="string" hint="Validation Query used by Coldfusion for validating the connection state when removing connections from the connection pool.">
<cfset var accessmanager = createObject("component", "CFIDE.adminapi.accessmanager")>
<cfset accessmanager.checkAdminRoles("coldfusion.datasources")>
<cfinclude template="_datasource\setdsn.cfm">
</cffunction>
<cffunction name="setODBCSocket" access="public" output="true" returntype="void" hint="Creates or modifies an ODBC socket data source.">
<cfargument name="name" required="true" type="string" hint="ColdFusion datasource name.">
<cfargument name="datasource" required="true" type="string" hint="name of ODBC datasource, defined in the server control panel.">
<cfargument name="useTrustedConnection" required="false" type="string" hint="If selected, causes ODBC driver to use the credentials specified in the ODBC connection or the network login id.">
<cfargument name="username" default="" required="false" type="string" hint="Database username.">
<cfargument name="password" default="" required="false" type="string" hint="Database password.">
<!--- :: optional :: --->
<cfargument name="encryptpassword" default="true" required="false" type="boolean" hint="Indicates whether to encrypt the password when storing it in the neo-query.xml file:<ul><li>True ?Encrypt the password before storing it. </li><li>False - Store the password in clear text.</li><br><b>Note:</b> If you are updating a data source that already has an encrypted password, you must set this argument to false to avoid re-encrypting an encrypted password.</ul>">
<cfargument name="host" default="localhost" required="false" type="string" hint="Database server host name or IP address.">
<cfargument name="originaldsn" default="" required="false" type="string" hint="Original ColdFusion datasource name, if you are renaming this dsn.">
<cfargument name="port" default="19998" required="false" type="string" hint="Port that is used to access the database server. (default 19998)">
<cfargument name="driver" default="ODBCSocket" required="false" type="string" hint="JDBC driver.">
<cfargument name="class" default="macromedia.jdbc.MacromediaDriver" required="false" type="string" hint="JDBC class file.">
<cfargument name="description" default="" required="false" type="string" hint="A description of this data source connection.">
<cfargument name="args" required="false" type="string" hint="Connection string arguments, formatted (arg1=argvalue;arg2=argvalue).">
<cfargument name="TimeStampAsString" default="no" required="false" type="boolean" hint="Enable this setting if your application retrieves Date/Time data and then re-uses it in SQL statements without applying formatting (using functions such as DateFormat, TimeFormat, and CreateODBCDateTime). Specify True or False.">
<!--- :: advanced options :: --->
<cfargument name="timeout" required="false" type="numeric" hint="The number of seconds that ColdFusion maintains an unused connection before destroying it.">
<cfargument name="interval" required="false" type="numeric" hint="The time (in seconds) that the server waits between cycles to check for expired data source connections to close.">
<cfargument name="login_timeout" required="false" type="numeric" hint="The number of seconds before ColdFusion times out the data source connection login attempt.">
<cfargument name="buffer" required="false" type="numeric" hint="The default buffer size, used if disable_clob is not specified or True. Default is 64000 bytes.">
<cfargument name="blob_buffer" required="false" type="numeric" hint="The default buffer size, used if disable_blob is not specified or True. Default is 64000 bytes.">
<cfargument name="enablemaxconnections" required="false" type="boolean" hint="Enables the maxconnections setting.">
<cfargument name="maxconnections" required="false" type="numeric" hint="Limit connections to this maximum amount.">
<cfargument name="pooling" required="false" type="boolean" hint="Enable server connection pooling for your data source.">
<cfargument name="disable" required="false" type="boolean" hint="Suspends all client connections to the data source.">
<cfargument name="disable_clob" required="false" type="boolean" hint="Specify False to return the entire contents of any CLOB/Text columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the buffer argument.">
<cfargument name="disable_blob" required="false" type="boolean" hint="Specify False to return the entire contents of any BLOB/Image columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the blob_buffer setting.">
<cfargument name="select" required="false" type="boolean" hint="Allow SQL SELECT statements.">
<cfargument name="create" required="false" type="boolean" hint="Allow SQL CREATE statements.">
<cfargument name="grant" required="false" type="boolean" hint="Allow SQL GRANT statements.">
<cfargument name="insert" required="false" type="boolean" hint="Allow SQL INSERT statements.">
<cfargument name="drop" required="false" type="boolean" hint="Allow SQL DROP statements.">
<cfargument name="revoke" required="false" type="boolean" hint="Allow SQL REVOKE statements.">
<cfargument name="update" required="false" type="boolean" hint="Allow SQL UPDATE statements.">
<cfargument name="alter" required="false" type="boolean" hint="Allow SQL ALTER statements.">
<cfargument name="storedproc" required="false" type="boolean" hint="Allow SQL stored procedure calls.">
<cfargument name="delete" required="false" type="boolean" hint="Allow SQL DELETE statements.">
<cfargument name="validationQuery" default="" required="false" type="string" hint="Validation Query used by Coldfusion for validating the connection state when removing connections from the connection pool.">
<cfset var accessmanager = createObject("component", "CFIDE.adminapi.accessmanager")>
<cfset accessmanager.checkAdminRoles("coldfusion.datasources,windows")>
<cfinclude template="_datasource\setdsn.cfm">
<cfinclude template="_datasource\setsldatasource.cfm">
</cffunction>
<cffunction name="setOracle" access="public" output="false" returntype="void" hint="Creates or modifies an Oracle data source.">
<cfargument name="vendor" required="false" type="string" default="oracle" hint="Always Oracle.">
<cfargument name="type" required="false" type="string" default="ddtek" hint="Always ddtek.">
<cfargument name="name" required="true" type="string" hint="ColdFusion datasource name.">
<cfargument name="host" required="true" type="string" hint="Database server host name or IP address.">
<cfargument name="sid" required="true" type="string" hint="The Oracle System Identifier that refers to the instance of the Oracle database software running on the server. ORCL is the default.">
>
<!--- :: optional :: --->
<cfargument name="originaldsn" default="" required="false" type="string" hint="Original ColdFusion datasource name, if you are renaming this dsn.">
<cfargument name="port" default="1521" required="false" type="string" hint="Port that is used to access the database server. (default 1521)">
<cfargument name="driver" default="Oracle" required="false" type="string" hint="JDBC driver.">
<cfargument name="class" default="macromedia.jdbc.MacromediaDriver" required="false" type="string" hint="JDBC class file.">
<cfargument name="username" default="" required="false" type="string" hint="Database username.">
<cfargument name="password" default="" required="false" type="string" hint="Database password.">
<cfargument name="encryptpassword" default="true" required="false" type="boolean" hint="Indicates whether to encrypt the password when storing it in the neo-query.xml file:<ul><li>True ?Encrypt the password before storing it. </li><li>False - Store the password in clear text.</li><br><b>Note:</b> If you are updating a data source that already has an encrypted password, you must set this argument to false to avoid re-encrypting an encrypted password.</ul>">
<cfargument name="description" default="" required="false" type="string" hint="A description of this data source connection.">
<cfargument name="args" required="false" type="string" hint="Connection string arguments, formatted (arg1=argvalue;arg2=argvalue).">
<cfargument name="MaxPooledStatements" required="false" type="numeric" hint="The maximum number of pooled statements.">
<!--- :: advanced options :: --->
<cfargument name="timeout" required="false" type="numeric" hint="The number of seconds that ColdFusion maintains an unused connection before destroying it.">
<cfargument name="interval" required="false" type="numeric" hint="The time (in seconds) that the server waits between cycles to check for expired data source connections to close.">
<cfargument name="login_timeout" required="false" type="numeric" hint="The number of seconds before ColdFusion times out the data source connection login attempt.">
<cfargument name="buffer" required="false" type="numeric" hint="The default buffer size, used if disable_clob is not specified or True. Default is 64000 bytes.">
<cfargument name="blob_buffer" required="false" type="numeric" hint="The default buffer size, used if disable_blob is not specified or True. Default is 64000 bytes.">
<cfargument name="enablemaxconnections" required="false" type="boolean" hint="Enables the maxconnections setting.">
<cfargument name="maxconnections" required="false" type="numeric" hint="Limit connections to this maximum amount.">
<cfargument name="pooling" required="false" type="boolean" hint="Enable server connection pooling for your data source.">
<cfargument name="disable" required="false" type="boolean" hint="Suspends all client connections to the data source.">
<cfargument name="disable_clob" required="false" type="boolean" hint="Specify False to return the entire contents of any CLOB/Text columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the buffer argument.">
<cfargument name="disable_blob" required="false" type="boolean" hint="Specify False to return the entire contents of any BLOB/Image columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the blob_buffer setting.">
<cfargument name="select" required="false" type="boolean" hint="Allow SQL SELECT statements.">
<cfargument name="create" required="false" type="boolean" hint="Allow SQL CREATE statements.">
<cfargument name="grant" required="false" type="boolean" hint="Allow SQL GRANT statements.">
<cfargument name="insert" required="false" type="boolean" hint="Allow SQL INSERT statements.">
<cfargument name="drop" required="false" type="boolean" hint="Allow SQL DROP statements.">
<cfargument name="revoke" required="false" type="boolean" hint="Allow SQL REVOKE statements.">
<cfargument name="update" required="false" type="boolean" hint="Allow SQL UPDATE statements.">
<cfargument name="alter" required="false" type="boolean" hint="Allow SQL ALTER statements.">
<cfargument name="storedproc" required="false" type="boolean" hint="Allow SQL stored procedure calls.">
<cfargument name="delete" required="false" type="boolean" hint="Allow SQL DELETE statements.">
<cfargument name="validationQuery" default="" required="false" type="string" hint="Validation Query used by Coldfusion for validating the connection state when removing connections from the connection pool.">
<cfset var accessmanager = createObject("component", "CFIDE.adminapi.accessmanager")>
<cfset accessmanager.checkAdminRoles("coldfusion.datasources")>
<cfinclude template="_datasource\setdsn.cfm">
</cffunction>
<cffunction name="setSybase" access="public" output="false" returntype="void" hint="Creates or modifies a Sybase data source.">
<cfargument name="vendor" required="false" type="string" default="sybase" hint="Always Sybase.">
<cfargument name="type" required="false" type="string" default="ddtek" hint="Always ddtek.">
<cfargument name="name" required="true" type="string" hint="ColdFusion datasource name.">
<cfargument name="host" required="true" type="string" hint="Database server host name or IP address.">
<cfargument name="database" required="true" type="string" hint="Database name that corresponds to the data source.">
<!--- :: optional :: --->
<cfargument name="originaldsn" default="" required="false" type="string" hint="Original ColdFusion datasource name, if you are renaming this dsn.">
<cfargument name="port" default="5000" required="false" type="string" hint="Port that is used to access the database server. (default 5000)">
<cfargument name="driver" default="Sybase" required="false" type="string" hint="JDBC driver.">
<cfargument name="class" default="macromedia.jdbc.MacromediaDriver" required="false" type="string" hint="JDBC class file.">
<cfargument name="username" default="" required="false" type="string" hint="Database username.">
<cfargument name="password" default="" required="false" type="string" hint="Database password.">
<cfargument name="encryptpassword" default="true" required="false" type="boolean" hint="Indicates whether to encrypt the password when storing it in the neo-query.xml file:<ul><li>True ?Encrypt the password before storing it. </li><li>False - Store the password in clear text.</li><br><b>Note:</b> If you are updating a data source that already has an encrypted password, you must set this argument to false to avoid re-encrypting an encrypted password.</ul>">
<cfargument name="description" default="" required="false" type="string" hint="Description of this data source connection.">
<cfargument name="args" required="false" type="string" hint="Connection string arguments, formatted (arg1=argvalue;arg2=argvalue).">
<cfargument name="selectmethod" default="direct" required="false" type="string" hint="Select Method (direct or cursor).">
<cfargument name="MaxPooledStatements" required="false" type="numeric" hint="The maximum number of pooled statements.">
<!--- :: advanced options :: --->
<cfargument name="timeout" required="false" type="numeric" hint="The number of seconds that ColdFusion maintains an unused connection before destroying it.">
<cfargument name="interval" required="false" type="numeric" hint="The time (in seconds) that the server waits between cycles to check for expired data source connections to close.">
<cfargument name="login_timeout" required="false" type="numeric" hint="The number of seconds before ColdFusion times out the data source connection login attempt.">
<cfargument name="buffer" required="false" type="numeric" hint="The default buffer size, used if disable_clob is not specified or True. Default is 64000 bytes.">
<cfargument name="blob_buffer" required="false" type="numeric" hint="The default buffer size, used if disable_blob is not specified or True. Default is 64000 bytes.">
<cfargument name="enablemaxconnections" required="false" type="boolean" hint="Enables the maxconnections setting.">
<cfargument name="maxconnections" required="false" type="numeric" hint="Limit connections to this maximum amount.">
<cfargument name="pooling" required="false" type="boolean" hint="Enable server connection pooling for your data source.">
<cfargument name="disable" required="false" type="boolean" hint="Suspends all client connections to the data source.">
<cfargument name="disable_clob" required="false" type="boolean" hint="Specify False to return the entire contents of any CLOB/Text columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the buffer argument.">
<cfargument name="disable_blob" required="false" type="boolean" hint="Specify False to return the entire contents of any BLOB/Image columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the blob_buffer setting.">
<cfargument name="select" required="false" type="boolean" hint="Allow SQL SELECT statements.">
<cfargument name="create" required="false" type="boolean" hint="Allow SQL CREATE statements.">
<cfargument name="grant" required="false" type="boolean" hint="Allow SQL GRANT statements.">
<cfargument name="insert" required="false" type="boolean" hint="Allow SQL INSERT statements.">
<cfargument name="drop" required="false" type="boolean" hint="Allow SQL DROP statements.">
<cfargument name="revoke" required="false" type="boolean" hint="Allow SQL REVOKE statements.">
<cfargument name="update" required="false" type="boolean" hint="Allow SQL UPDATE statements.">
<cfargument name="alter" required="false" type="boolean" hint="Allow SQL ALTER statements.">
<cfargument name="storedproc" required="false" type="boolean" hint="Allow SQL stored procedure calls.">
<cfargument name="delete" required="false" type="boolean" hint="Allow SQL DELETE statements.">
<cfargument name="validationQuery" default="" required="false" type="string" hint="Validation Query used by Coldfusion for validating the connection state when removing connections from the connection pool.">
<cfset var accessmanager = createObject("component", "CFIDE.adminapi.accessmanager")>
<cfset accessmanager.checkAdminRoles("coldfusion.datasources")>
<cfinclude template="_datasource\setdsn.cfm">
</cffunction>
<cffunction name="setOther" access="public" output="true" returntype="void" hint="Creates or modifies a user-defined data source">
<cfargument name="name" required="true" type="string" hint="ColdFusion datasource name.">
<cfargument name="url" required="true" type="string" hint="The JDBC Connection URL for this data source.">
<cfargument name="class" required="true" type="string" hint="JDBC class file.">
<cfargument name="driver" required="false" type="string" hint="JDBC driver.">
<!--- :: optional :: --->
<cfargument name="originaldsn" default="" required="false" type="string" hint="Original ColdFusion datasource name, if you are renaming this dsn.">
<cfargument name="port" default="1433" required="false" type="string" hint="port that is used to access the database server. (default 1433)">
<cfargument name="username" default="" required="false" type="string" hint="Database username.">
<cfargument name="password" default="" required="false" type="string" hint="Database password.">
<cfargument name="encryptpassword" default="true" required="false" type="boolean" hint="Indicates whether to encrypt the password when storing it in the neo-query.xml file:<ul><li>True ?Encrypt the password before storing it. </li><li>False - Store the password in clear text.</li><br><b>Note:</b> If you are updating a data source that already has an encrypted password, you must set this argument to false to avoid re-encrypting an encrypted password.</ul>">
<cfargument name="description" default="" required="false" type="string" hint="A description of this data source connection.">
<cfargument name="args" required="false" type="string" hint="Connection string arguments, formatted (arg1=argvalue;arg2=argvalue).">
<cfargument name="selectmethod" default="cursor" required="true" type="string" hint="Select Method (direct or cursor).">
<cfargument name="MaxPooledStatements" required="false" type="numeric" hint="The maximum number of pooled statements.">
<!--- :: advanced options :: --->
<cfargument name="timeout" required="false" type="numeric" hint="The number of seconds that ColdFusion maintains an unused connection before destroying it.">
<cfargument name="interval" required="false" type="numeric" hint="The time (in seconds) that the server waits between cycles to check for expired data source connections to close.">
<cfargument name="login_timeout" required="false" type="numeric" hint="The number of seconds before ColdFusion times out the data source connection login attempt.">
<cfargument name="buffer" required="false" type="numeric" hint="The default buffer size, used if disable_clob is not specified or True. Default is 64000 bytes.">
<cfargument name="blob_buffer" required="false" type="numeric" hint="The default buffer size, used if disable_blob is not specified or True. Default is 64000 bytes.">
<cfargument name="enablemaxconnections" required="false" type="boolean" hint="Enables the maxconnections setting.">
<cfargument name="maxconnections" required="false" type="numeric" hint="Limit connections to this maximum amount.">
<cfargument name="pooling" default="false" required="false" type="boolean" hint="Enable server connection pooling for your data source.">
<cfargument name="disable" required="false" type="boolean" hint="Suspends all client connections to the data source.">
<cfargument name="disable_clob" required="false" type="boolean" hint="Specify False to return the entire contents of any CLOB/Text columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the buffer argument.">
<cfargument name="disable_blob" required="false" type="boolean" hint="Specify False to return the entire contents of any BLOB/Image columns in the database. If you specify False, ColdFusion MX retrieves up to the amount specified in the blob_buffer setting.">
<cfargument name="select" required="false" type="boolean" hint="Allow SQL SELECT statements.">
<cfargument name="create" required="false" type="boolean" hint="Allow SQL CREATE statements.">
<cfargument name="grant" required="false" type="boolean" hint="Allow SQL GRANT statements.">
<cfargument name="insert" required="false" type="boolean" hint="Allow SQL INSERT statements.">
<cfargument name="drop" required="false" type="boolean" hint="Allow SQL DROP statements.">
<cfargument name="revoke" required="false" type="boolean" hint="Allow SQL REVOKE statements.">
<cfargument name="update" required="false" type="boolean" hint="Allow SQL UPDATE statements.">
<cfargument name="alter" required="false" type="boolean" hint="Allow SQL ALTER statements.">
<cfargument name="storedproc" required="false" type="boolean" hint="Allow SQL stored procedure calls.">
<cfargument name="delete" required="false" type="boolean" hint="Allow SQL DELETE statements.">
<cfargument name="validationQuery" default="" required="false" type="string" hint="Validation Query used by Coldfusion for validating the connection state when removing connections from the connection pool.">
<cfset var createURL = false>
<cfset var accessmanager = createObject("component", "CFIDE.adminapi.accessmanager")>
<cfset accessmanager.checkAdminRoles("coldfusion.datasources")>
<cfinclude template="_datasource\setdsn.cfm">
</cffunction>
<!--- ::
Sequel link
:: --->
<cffunction name="stopOdbcService" access="public" output="false" returntype="void" hint="Stops ODBC service.">
<cfset var odbcserver = getSlsServerServiceName()>
<cfset var odbcagent = getSlsAgentServiceName()>
<cfset var accessmanager = createObject("component", "CFIDE.adminapi.accessmanager")>
<cfset accessmanager.checkAdminRoles("coldfusion.datasources,windows")>
<cfexecute timeout="30" name="net.exe" arguments='stop "#odbcserver#"'></cfexecute>
<cfexecute timeout="30" name="net.exe" arguments='stop "#odbcagent#"'></cfexecute>
</cffunction>
<cffunction name="startOdbcService" access="public" output="false" hint="Starts ODBC service.">
<cfset var odbcserver = getSlsServerServiceName()>
<cfset var odbcagent = getSlsAgentServiceName()>
<cfset var accessmanager = createObject("component", "CFIDE.adminapi.accessmanager")>
<cfset accessmanager.checkAdminRoles("coldfusion.datasources,windows")>
<cfexecute timeout="30" name="net.exe" arguments='start "#odbcserver#"'></cfexecute>
<cfexecute timeout="30" name="net.exe" arguments='start "#odbcagent#"'></cfexecute>
</cffunction><cffunction name="removeOdbcService" access="public" output="false" returntype="void" hint="Removes ODBC service.">
<cfset var odbcserver = getSlsServerServiceName()>
<cfset var odbcagent = getSlsAgentServiceName()>
<cfset var success = true>
<cfset var accessmanager = createObject("component", "CFIDE.adminapi.accessmanager")>
<cfset accessmanager.checkAdminRoles("coldfusion.datasources,windows")>
<cftry>
<cfexecute timeout="30" name="#server.coldfusion.rootdir#\db\SequeLink Setup\CFServiceController.exe" arguments='/R "#odbcserver#"'></cfexecute>
<cfexecute timeout="30" name="#server.coldfusion.rootdir#\db\SequeLink Setup\CFServiceController.exe" arguments='/R "#odbcagent#"'></cfexecute>
<cfcatch type="Any">
<cfset success = false>
<cfoutput>#cfcatch.message#<br>#cfcatch.detail#<p></cfoutput>
<cfset bErrorsExist = true>
<cfrethrow>
</cfcatch>
</cftry>
</cffunction>
<cffunction name="installOdbcService" access="public" output="false" returntype="void" hint="Installs ODBC service.">
<cfset var odbcserver = getSlsServerServiceName()>
<cfset var odbcagent = getSlsAgentServiceName()>
<cfset var branch="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\">
<cfset var odbcserverdesc = "The middle-tier service for ODBC connections that use the DataDirect drivers for Microsoft Access and ODBC Socket.">
<cfset var odbcagentdesc = "Configures data sources for the ColdFusion 8 ODBC Server."><cfset var success = true>
<cfset var accessmanager = createObject("component", "CFIDE.adminapi.accessmanager")>
<cfset accessmanager.checkAdminRoles("coldfusion.datasources,windows")>
<cftry>
<!-- ODBC Server stuff -->
<cfexecute timeout="30" name="#server.coldfusion.rootdir#\db\SequeLink Setup\CFServiceController.exe" arguments='/A "#odbcserver#" "#server.coldfusion.rootdir#\db\slserver54\bin\swstrtr.exe" -quoteparams "#odbcserver#"'></cfexecute>
<cfexecute timeout="30" name="#server.coldfusion.rootdir#\db\SequeLink Setup\CFServiceController.exe" arguments='/P "#odbcserver#" ServiceName "#odbcserver#"'></cfexecute>
<cfexecute timeout="30" name="#server.coldfusion.rootdir#\db\SequeLink Setup\CFServiceController.exe" arguments='/P "#odbcserver#" ServiceDescription "#odbcserver#"'></cfexecute>
<cfexecute timeout="30" name="#server.coldfusion.rootdir#\db\SequeLink Setup\CFServiceController.exe" arguments='/P "#odbcserver#" DataModel "#server.coldfusion.rootdir#\db\slserver54\cfg\swandm.ini"'></cfexecute>
<cfexecute timeout="30" name="#server.coldfusion.rootdir#\db\SequeLink Setup\CFServiceController.exe" arguments='/P "#odbcserver#" LoggingPath "#server.coldfusion.rootdir#\db\slserver54\logging"'></cfexecute>
<cfexecute timeout="30"
name="#server.coldfusion.rootdir#\db\SequeLink Setup\CFServiceController.exe"
arguments='/X "SYSTEM\CurrentControlSet\Services\#odbcserver#" FailureActions "80,51,01,00,00,00,00,00,00,00,00,00,03,00,00,00,53,00,65,00,01,00,00,00,60,ea,00,00,01,00,00,00,60,ea,00,00,01,00,00,00,60,ea,00,00" BINARY cheese'></cfexecute><!--- :: ODBC agent :: --->
<cfexecute timeout="30" name="#server.coldfusion.rootdir#\db\SequeLink Setup\CFServiceController.exe" arguments='/A "#odbcagent#" "#server.coldfusion.rootdir#\db\slserver54\bin\swagent.exe" -quoteparams "#odbcagent#"'></cfexecute>
<cfexecute timeout="30" name="#server.coldfusion.rootdir#\db\SequeLink Setup\CFServiceController.exe" arguments='/P "#odbcagent#" ServiceName "#odbcagent#"'></cfexecute>
<cfexecute timeout="30" name="#server.coldfusion.rootdir#\db\SequeLink Setup\CFServiceController.exe" arguments='/P "#odbcagent#" ServiceDescription "#odbcagent#"'></cfexecute>
<cfexecute timeout="30" name="#server.coldfusion.rootdir#\db\SequeLink Setup\CFServiceController.exe" arguments='/P "#odbcagent#" DataModel "#server.coldfusion.rootdir#\db\slserver54\cfg\swandm.ini"'></cfexecute>
<cfexecute timeout="30" name="#server.coldfusion.rootdir#\db\SequeLink Setup\CFServiceController.exe" arguments='/P "#odbcagent#" LoggingPath "#server.coldfusion.rootdir#\db\slserver54\logging"'></cfexecute>
<cfexecute timeout="30" name="#server.coldfusion.rootdir#\db\SequeLink Setup\CFServiceController.exe" arguments='/P "#odbcagent#" Agent " "'></cfexecute><cfcatch type="Any">
<cfset success = false>
<cfoutput>#cfcatch.message#<br>#cfcatch.detail#<p></cfoutput>
<cfset bErrorsExist = true>
<cfrethrow>
</cfcatch>
</cftry>
<!--- :: create directories :: --->
<cftry>
<cfif not DirectoryExists("#server.coldfusion.rootdir#\db\slserver54\logging")>
<cfdirectory action="CREATE" directory="#server.coldfusion.rootdir#\db\slserver54\logging">
</cfif>
<cfif not DirectoryExists("#server.coldfusion.rootdir#\db\slserver54\tracing")>
<cfdirectory action="CREATE" directory="#server.coldfusion.rootdir#\db\slserver54\tracing">
</cfif>
<cfcatch type="Any">
<cfset success = false>
<cfoutput>#cfcatch.message#<br>#cfcatch.detail#<p></cfoutput>
<cfset bErrorsExist = true>
<cfrethrow>
</cfcatch>
</cftry>
<!--- :: <cfdump var="#server.coldfusion.rootdir#\db\slserver54\cfg\swandm.ini"> :: --->
<!--- Configure the SequeLink Inifiles --->
<cftry>
<!--- :: REPLACE strings in INI :: --->
<cffile action="READ" file="#server.coldfusion.rootdir#\db\slserver54\cfg\swandm.ini" variable="swandmini">
<cfscript>
setprofileString("#server.coldfusion.rootdir#\db\slserver54\cfg\swandm.ini", "SWANDM", "SWANDM", "");
swandmini = replaceNoCase(swandmini, "DataSourceProviderTypesFile=C:\Program Files\DataDirect\slserver54\bin\swsoc.ini", "DataSourceProviderTypesFile=#server.coldfusion.rootdir#\db\slserver54\bin\swsoc.ini", "ALL");
swandmini = replaceNoCase(swandmini, "C:\Program Files\DataDirect", "#server.coldfusion.rootdir#\db", "ALL");
swandmini = replaceNoCase(swandmini, odbcserver, "ColdFusion 8 ODBC Server", "ALL");
swandmini = replaceNoCase(swandmini, odbcagent, "ColdFusion 8 ODBC Agent", "ALL");
if( license.getServerType() neq license.SERVERTYPE_STANDALONE )
{
//replace the name of this dll for the j2ee version.
swandmini = replaceNoCase(swandmini, "cmgss_an.dll", "cmgss_sp.dll", "ALL");
}
</cfscript>
<cffile action="WRITE" file="#server.coldfusion.rootdir#\db\slserver54\cfg\swandm.ini" output="#swandmini#" addnewline="no">
<cffile action="READ" file="#server.coldfusion.rootdir#\db\slserver54\admin\swcla.ini" variable="swclaini">
<cfscript>
swclaini = replaceNoCase(swclaini, "C:\Program Files\DataDirect", "#server.coldfusion.rootdir#\db", "ALL");
</cfscript>
<cffile action="WRITE" file="#server.coldfusion.rootdir#\db\slserver54\admin\swcla.ini" output="#swclaini#" addnewline="no">
<cffile action="READ" file="#server.coldfusion.rootdir#\db\slserver54\bin\slxperf.ini" variable="slxperf">
<cfscript>
slxperf = replaceNoCase(slxperf, "C:\Program Files\DataDirect", "#server.coldfusion.rootdir#\db", "ALL");
</cfscript>
<cffile action="WRITE" file="#server.coldfusion.rootdir#\db\slserver54\bin\slxperf.ini" output="#slxperf#" addnewline="no">
<cfdirectory action="LIST" directory="#server.coldfusion.rootdir#\db\slserver54\admin" name="batfiles" filter="*.bat">
<cfloop query="batfiles">
<cffile action="READ" file="#server.coldfusion.rootdir#\db\slserver54\admin\#name#" variable="adminini">
<cfscript>
adminini = replaceNoCase(adminini, arguments.odbcserver, "ColdFusion 8 ODBC Server", "ALL");
adminini = replaceNoCase(adminini, arguments.odbcagent, "ColdFusion 8 ODBC Agent", "ALL");
</cfscript>
<cffile action="WRITE" file="#server.coldfusion.rootdir#\db\slserver54\admin\#name#" output="#adminini#" addnewline="no">
</cfloop>
<cfcatch type="Any">
<cfset success = false>
<cfoutput>#cfcatch.message#<br>#cfcatch.detail#<p></cfoutput>
<cfset bErrorsExist = true>
<cfrethrow>
</cfcatch>
</cftry>
<cfscript>
startOdbcService();
</cfscript>
</cffunction>
<!--- todo: remove --->
<cffunction name="upgradeOdbcService" access="private" output="false" hint="Upgrade ODBC service.">
<cfargument name="odbcserver" default="#getSlsServerServiceName()#" required="false" hint="Name of ODBC server service.">
<cfargument name="odbcagent" default="#getSlsAgentServiceName()#" required="false" hint="Name of ODBC agent service.">
<cfset var success = true><cftry>
<!-- ODBC Server stuff -->
<cfexecute timeout="30" name="#server.coldfusion.rootdir#\db\SequeLink Setup\CFServiceController.exe" arguments='/P "#arguments.odbcserver#" ServiceName "#arguments.odbcserver#"'></cfexecute>
<cfexecute timeout="30" name="#server.coldfusion.rootdir#\db\SequeLink Setup\CFServiceController.exe" arguments='/P "#arguments.odbcserver#" ServiceDescription "#arguments.odbcserver#"'></cfexecute>
<cfexecute timeout="30" name="#server.coldfusion.rootdir#\db\SequeLink Setup\CFServiceController.exe" arguments='/P "#arguments.odbcserver#" DataModel "#server.coldfusion.rootdir#\db\slserver54\cfg\swandm.ini"'></cfexecute>
<cfexecute timeout="30" name="#server.coldfusion.rootdir#\db\SequeLink Setup\CFServiceController.exe" arguments='/P "#arguments.odbcserver#" LoggingPath "#server.coldfusion.rootdir#\db\slserver54\logging"'></cfexecute><!--- :: ODBC agent :: --->
<cfexecute timeout="30" name="#server.coldfusion.rootdir#\db\SequeLink Setup\CFServiceController.exe" arguments='/P "#arguments.odbcagent#" ServiceName "#arguments.odbcagent#"'></cfexecute>
<cfexecute timeout="30" name="#server.coldfusion.rootdir#\db\SequeLink Setup\CFServiceController.exe" arguments='/P "#arguments.odbcagent#" ServiceDescription "#arguments.odbcagent#"'></cfexecute>
<cfexecute timeout="30" name="#server.coldfusion.rootdir#\db\SequeLink Setup\CFServiceController.exe" arguments='/P "#arguments.odbcagent#" DataModel "#server.coldfusion.rootdir#\db\slserver54\cfg\swandm.ini"'></cfexecute>
<cfexecute timeout="30" name="#server.coldfusion.rootdir#\db\SequeLink Setup\CFServiceController.exe" arguments='/P "#arguments.odbcagent#" LoggingPath "#server.coldfusion.rootdir#\db\slserver54\logging"'></cfexecute>
<cfexecute timeout="30" name="#server.coldfusion.rootdir#\db\SequeLink Setup\CFServiceController.exe" arguments='/P "#arguments.odbcagent#" Agent " "'></cfexecute>
<cfcatch type="Any">
<cfset success = false>
<cfoutput>#cfcatch.message#<br>#cfcatch.detail#<p></cfoutput>
<cfset bErrorsExist = true>
<cfrethrow>
</cfcatch>
</cftry>
<!--- :: create directories :: --->
<cftry>
<cfif not DirectoryExists("#server.coldfusion.rootdir#\db\slserver54\logging")>
<cfdirectory action="CREATE" directory="#server.coldfusion.rootdir#\db\slserver54\logging">
</cfif>
<cfif not DirectoryExists("#server.coldfusion.rootdir#\db\slserver54\tracing")>
<cfdirectory action="CREATE" directory="#server.coldfusion.rootdir#\db\slserver54\tracing">
</cfif>
<cfcatch type="Any">
<cfset success = false>
<cfoutput>#cfcatch.message#<br>#cfcatch.detail#<p></cfoutput>
<cfset bErrorsExist = true>
<cfrethrow>
</cfcatch>
</cftry><!--- Configure the SequeLink Inifiles --->
<cftry>
<!--- :: REPLACE strings in INI :: --->
<cffile action="READ" file="#server.coldfusion.rootdir#\db\slserver54\cfg\swandm.ini" variable="swandmini">
<cfscript>
setprofileString("#server.coldfusion.rootdir#\db\slserver54\cfg\swandm.ini", "SWANDM", "SWANDM", "");
swandmini = replaceNoCase(swandmini, "DataSourceProviderTypesFile=C:\Neo\db\slserver54\bin\swsoc.ini", "DataSourceProviderTypesFile=#server.coldfusion.rootdir#\db\slserver54\bin\swsoc.ini", "ALL");
swandmini = replaceNoCase(swandmini, "C:\Program Files\DataDirect", "#server.coldfusion.rootdir#\db", "ALL");
swandmini = replaceNoCase(swandmini, arguments.odbcserver, "ColdFusion 8 ODBC Server", "ALL");
swandmini = replaceNoCase(swandmini, arguments.odbcagent, "ColdFusion 8 ODBC Agent", "ALL");
if( license.getServerType() neq license.SERVERTYPE_STANDALONE )
{
//replace the name of this dll for the j2ee version.
swandmini = replaceNoCase(swandmini, "cmgss_an.dll", "cmgss_sp.dll", "ALL");
}
</cfscript>
<cffile action="WRITE" file="#server.coldfusion.rootdir#\db\slserver54\cfg\swandm.ini" output="#swandmini#" addnewline="no">
<cffile action="READ" file="#server.coldfusion.rootdir#\db\slserver54\admin\swcla.ini" variable="swclaini">
<cfscript>
swclaini = replaceNoCase(swclaini, "C:\Program Files\DataDirect", "#server.coldfusion.rootdir#\db", "ALL");
</cfscript>
<cffile action="WRITE" file="#server.coldfusion.rootdir#\db\slserver54\admin\swcla.ini" output="#swclaini#" addnewline="no">
<cffile action="READ" file="#server.coldfusion.rootdir#\db\slserver54\bin\slxperf.ini" variable="slxperf">
<cfscript>
slxperf = replaceNoCase(slxperf, "C:\Program Files\DataDirect", "#server.coldfusion.rootdir#\db", "ALL");
</cfscript>
<cffile action="WRITE" file="#server.coldfusion.rootdir#\db\slserver54\bin\slxperf.ini" output="#slxperf#" addnewline="no">
<cfdirectory action="LIST" directory="#server.coldfusion.rootdir#\db\slserver54\admin" name="batfiles" filter="*.bat">
<cfloop query="batfiles">
<cffile action="READ" file="#server.coldfusion.rootdir#\db\slserver54\admin\#name#" variable="adminini">
<cfscript>
adminini = replaceNoCase(adminini, arguments.odbcserver, "ColdFusion 8 ODBC Server", "ALL");
adminini = replaceNoCase(adminini, arguments.odbcagent, "ColdFusion 8 ODBC Agent", "ALL");
</cfscript>
<cffile action="WRITE" file="#server.coldfusion.rootdir#\db\slserver54\admin\#name#" output="#adminini#" addnewline="no">
</cfloop>
<!--- :: japanese specific mod :: --->
<cfif isDefined("request.locale") and (request.locale is "ja" or request.locale is "ko" or request.locale is "zh")>
<cfset startODBCService()>
<cfexecute timeout="30" name="#server.coldfusion.rootdir#\db\slserver54\admin\swcla.exe" arguments="-l saa '#arguments.odbcserver#' ServiceCodePage OS"></cfexecute>
<cfset stopODBCService()>
<cfset startODBCService()>
</cfif>
<cfcatch type="Any">
<cfset success = false>
<cfoutput>#cfcatch.message#<br>#cfcatch.detail#<p></cfoutput>
<cfset bErrorsExist = true>
<cfrethrow>
</cfcatch>
</cftry>
<cfreturn success>
</cffunction>
<!---
/**
* Creates a batch file and calls that to update the odbc server.
* This replaces the calls the sl54Add|sl54mod|sl54disp|sl54mlog
* @return Returns a string, the output from the batch command
* @author Mike Nimer (mnimer@macromedia.com)
* @version 1, 5/6/2003
*/
--->
<cffunction name="updateODBCServerDSN" access="private" output="false" hint="Updates an ODBC server data source name.">
<cfargument name="dsn" required="true" hint="Name that ColdFusion uses to connect to the data source.">
<cfargument name="odbcdsn" required="true" hint="The ODBC data source name to which ColdFusion is to connect.">
<cfargument name="connectstring" required="true" hint="Passes database-specific parameters, such as login credentials, to the data source.">
<cfargument name="TimeStampAsString" required="true" hint="Enable this setting if your application retrieves Date/Time data and then re-uses it in SQL statements without applying formatting (using functions such as DateFormat, TimeFormat, and CreateODBCDateTime). Specify True or False.">
<cfargument name="LOGONMETHOD" required="true" hint="Internal method called to the register the database.">
<cfset var servicename = getSlsServerServiceName()><cfoutput>
<cfsavecontent variable="inpfile">
alc
dsd '#ServiceName#' '#arguments.dsn#'
dsc '#servicename#' '#arguments.dsn#'
dsad '#servicename#' '#arguments.dsn#' DataSourceSOCODBCConnStr
dsaa '#servicename#' '#arguments.dsn#' DataSourceSOCODBCConnStr dsn='#arguments.odbcdsn##iif(len(trim(arguments.connectstring)), de(";#arguments.connectstring#"), de(""))#'
dsaa '#servicename#' '#arguments.dsn#' DataSourceFetchTimeStampAsString #yesNoFormat(arguments.TimeStampAsString)#
dsar '#servicename#' '#arguments.dsn#' DataSourceLogonMethod #arguments.logonmethod#
dsi '#servicename#' '#arguments.dsn#'
cc
</cfsavecontent>
</cfoutput>
<cflock name="inp" timeout="30">
<cffile action="WRITE" file="#server.coldfusion.rootdir#\db\slserver54\admin\#arguments.dsn#.inp" output="#inpfile#" addnewline="Yes">
</cflock>
<cflock name="inp" timeout="30">
<CFEXECUTE
NAME='#server.coldfusion.rootdir#\db\slserver54\admin\swcla.exe'
ARGUMENTS="-i #server.coldfusion.rootdir#\db\slserver54\admin\#arguments.dsn#.inp" timeout="60" variable="execoutput"></CFEXECUTE>
<!--- :: <cfoutput>#execoutput#</cfoutput> :: --->
</cflock>
<cfreturn execoutput>
</cffunction>
<!--- this template calls the sequelink agent to add
a datasource to the sequelink configuration and --->
<!--- to add a odbc connect string for the datasource to sequelink configuration. --->
<!--- Neo MSAccess and ODBC Socket data sources are registered in the sequelink configuration. --->
<!--- this template assumes the Neo install directory is C:\Neo, this should be written to determine --->
<!--- the install directory and consstruct the executable path accordingly --->
<cffunction name="sl54Add" access="private" output="false" roles="admin" hint="Adds a datasource to the SequeLink configuration.">
<cfargument name="dsn" required="Yes" hint="Name that ColdFusion uses to connect to the data source.">
<cfargument name="odbcdsn" required="Yes" hint="Name of the ODBC data source that ColdFusion is to connect to.">
<cfargument name="connectString" required="No" hint="Passes database-specific parameters, such as login credentials, to the data source.">
<cfargument name="TimeStampAsString" default="no" required="No" type="boolean" hint="Enable this setting if your application retrieves Date/Time data and then re-uses it in SQL statements without applying formatting (using functions such as DateFormat, TimeFormat, and CreateODBCDateTime). Specify True or False.">
<cfset var odbcserver = getSlsServerServiceName()>
<cfset var odbcagent = getSlsAgentServiceName()>
<cfset var path = getSlsServerPath()><cfsilent>
<cfif isDefined("arguments.connectstring") and len(arguments.connectstring)>
<cfset odbcconnectstring = arguments.odbcdsn & ";" & arguments.connectstring>
<cfelse>
<cfset odbcconnectstring = arguments.odbcdsn>
</cfif>
<!--- :: <cfdump var="#path#\admin\swcla.exe -l dsc '#odbcserver#' '#arguments.dsn#'"><br>
<cfdump var="#path#\admin\swcla.exe -l dsar '#odbcserver#' '#arguments.dsn#' DataSourceSOCODBCConnStr dsn='#odbcconnectstring#'"><br> :: --->
<cfexecute name="#path#\admin\swcla.exe" arguments="-l dsc '#odbcserver#' '#arguments.dsn#'" timeout="0"></cfexecute>
<!--- Need to sleep for a few seconds so that the first command can complete before the next one is kicked off --->
<cfscript>sleep(3000);</cfscript>
<CFEXECUTE NAME="#path#\admin\swcla.exe" ARGUMENTS="-l dsad '#odbcserver#' '#arguments.dsn#' DataSourceSOCODBCConnStr" timeout="0"></CFEXECUTE>
<CFEXECUTE NAME="#path#\admin\swcla.exe" ARGUMENTS="-l dsaa '#odbcserver#' '#arguments.dsn#' DataSourceSOCODBCConnStr dsn='#odbcconnectstring#'" timeout="0"></CFEXECUTE>
<cfscript>sleep(2000);</cfscript>
<CFEXECUTE NAME='#path#\admin\swcla.exe' ARGUMENTS="-l dsad '#odbcserver#' '#arguments.dsn#' DataSourceFetchTimeStampAsString" timeout="0"></CFEXECUTE>
<CFEXECUTE NAME='#path#\admin\swcla.exe' ARGUMENTS="-l dsaa '#odbcserver#' '#arguments.dsn#' DataSourceFetchTimeStampAsString #yesNoFormat(arguments.TimeStampAsString)#" timeout="0"></CFEXECUTE>
</cfsilent>
</cffunction><!--- this template calls the sequelink agent to remove a datasource from the sequelink configuration. --->
<!--- Neo MSAccess and ODBC Socket data sources are registered in the sequelink configuration. --->
<!--- this template assumes the Neo install directory is C:\Neo, this should be written to determine --->
<!--- the install directory and consstruct the executable path accordingly --->
<cffunction name="sl54Del" access="private" output="false" roles="admin" hint="Removes a data source from the SequeLink configuration.">
<cfargument name="dsn" required="Yes" hint="Name that ColdFusion uses to connect to the data source.">
<cfset var odbcserver = getSlsServerServiceName()>
<cfset var odbcagent = getSlsAgentServiceName()>
<cfset var path = getSlsServerPath()><cfsilent>
<!--- :: <cfdump var="#path#\admin\swcla.exe -l dsd '#odbcserver#' '#arguments.dsn#'"><br> :: --->
<CFEXECUTE NAME='#path#\admin\swcla.exe' ARGUMENTS="-l dsd '#odbcserver#' '#arguments.dsn#'" timeout="0"></CFEXECUTE>
<cfscript>sleep(2000);</cfscript>
</cfsilent>
</cffunction><!--- this template calls the sequelink agent to --->
<!--- to modify a odbc connect string for the datasource to sequelink configuration. --->
<!--- Neo MSAccess and ODBC Socket data sources are registered in the sequelink configuration. --->
<!--- this template assumes the Neo install directory is C:\Neo, this should be written to determine --->
<!--- the install directory and consstruct the executable path accordingly --->
<cffunction name="sl54mod" access="private" output="false" roles="admin" hint="Modifies an ODBC data source connection string in the SequeLink configuration.">
<cfargument name="dsn" required="Yes" hint="Name that ColdFusion uses to connect to the data source.">
<cfargument name="odbcdsn" required="Yes" hint="Name of the ODBC data source that ColdFusion is to connect to.">
<cfargument name="connectString" required="No" hint="Passes database-specific parameters, such as login credentials, to the data source.">
<cfargument name="TimeStampAsString" default="no" required="No" type="boolean" hint="Enable this setting if your application retrieves Date/Time data and then re-uses it in SQL statements without applying formatting (using functions such as DateFormat, TimeFormat, and CreateODBCDateTime). Specify True or False.">
<cfset var odbcserver = getSlsServerServiceName()>
<cfset var odbcagent = getSlsAgentServiceName()>
<cfset var path = getSlsServerPath()><cfsilent>
<cfif isDefined("arguments.connectstring") and len(arguments.connectstring)>
<cfset odbcconnectstring = arguments.odbcdsn & ";" & arguments.connectstring>
<cfelse>
<cfset odbcconnectstring = arguments.odbcdsn>
</cfif>
<!--- :: <cfdump var="#path#\admin\swcla.exe -l dsar '#odbcserver#' '#arguments.dsn#' DataSourceSOCODBCConnStr dsn='#odbcconnectstring#'"><br> :: --->
<CFEXECUTE NAME='#path#\admin\swcla.exe' ARGUMENTS="-l dsad '#odbcserver#' '#arguments.dsn#' DataSourceSOCODBCConnStr" timeout="0"></CFEXECUTE>
<CFEXECUTE NAME='#path#\admin\swcla.exe' ARGUMENTS="-l dsaa '#odbcserver#' '#arguments.dsn#' DataSourceSOCODBCConnStr dsn='#odbcconnectstring#'" timeout="0"></CFEXECUTE>
<!--- :: delete and readd attribute - we do this instead of update because it might not exist. :: --->
<CFEXECUTE NAME='#path#\admin\swcla.exe' ARGUMENTS="-l dsad '#odbcserver#' '#arguments.dsn#' DataSourceFetchTimeStampAsString" timeout="0"></CFEXECUTE>
<CFEXECUTE NAME='#path#\admin\swcla.exe' ARGUMENTS="-l dsaa '#odbcserver#' '#arguments.dsn#' DataSourceFetchTimeStampAsString #yesNoFormat(arguments.TimeStampAsString)#" timeout="0"></CFEXECUTE>
</cfsilent>
</cffunction><!--- this template calls the sequelink agent to add a datasource to the sequelink configuration and --->
<!--- to add a odbc connect string for the datasource to sequelink configuration. --->
<!--- Neo MSAccess and ODBC Socket data sources are registered in the sequelink configuration. --->
<!--- this template assumes the Neo install directory is C:\Neo, this should be written to determine --->
<!--- the install directory and consstruct the executable path accordingly --->
<cffunction name="sl54displ" access="private" output="false" roles="admin">
<cfargument name="dsn" required="Yes">
<cfset var odbcserver = getSlsServerServiceName()>
<cfset var odbcagent = getSlsAgentServiceName()>
<cfset var path = getSlsServerPath()><cfsilent>
<!--- :: <cfdump var="#path#\admin\swcla.exe -l dsi '#odbcserver#' '#arguments.dsn#'"><br> :: --->
<CFEXECUTE NAME='#path#\admin\swcla.exe' ARGUMENTS="-l dsi '#odbcserver#' '#arguments.dsn#'" timeout="0"></CFEXECUTE>
</cfsilent>
</cffunction><!--- this template calls the sequelink agent to --->
<!--- to modify the DBMS Logon for the datasource to sequelink configuration. --->
<!--- Neo MSAccess and ODBC Socket data sources are registered in the sequelink configuration. --->
<!--- this template assumes the Neo install directory is C:\Neo, this should be written to determine --->
<!--- the install directory and consstruct the executable path accordingly --->
<!--- there are two possible settings: 1. DBMSLOGON(UID,PWD) - the default value and used when Anonymous is not checked in the admin --->
<!--- 2. OSIntegrated - used when Anonymous is checked, since the SequeLink server is running under anonymous, this requires specific --->
<!--- user. Many Access users will configure datasources this way. This means that no additional username/password is passed --->
<!--- from the sequelink server to the odbc driver so sufficent information must be specified in the odbc.ini registry for --->
<!--- the connection ---><!--- if ANONYMOUS is checked, LOGONMETHOD="OSIntegrated" - admin should put empty strings in username and password and make the form fields read only --->
<!--- if ANONYMOUS is not checked, LOGONMETHOD="DBMSLogon(UID,PWD) - admin handles username and password same as in beta3 --->
<cffunction name="sl54mlog" access="private" output="false" roles="admin" hint="Modifies the DBMS logon for the data source to SequeLink configuration.">
<cfargument name="odbcdsn" required="Yes" hint="Name of the ODBC data source that ColdFusion is to connect to.">
<cfargument name="logonmethod" default="OSIntegrated" required="No" hint="When anonymous: OSIntegrated; when not anonymous DBMSLOGON(userid, password)">
<cfset var odbcserver = getSlsServerServiceName()>
<cfset var odbcagent = getSlsAgentServiceName()>
<cfset var path = getSlsServerPath()><cfsilent>
<!--- :: <cfdump var="#path#\admin\swcla.exe -l dsar '#odbcserver#' '#arguments.odbcdsn#' DataSourceLogonMethod #arguments.logonmethod#"> :: --->
<CFEXECUTE NAME='#path#\admin\swcla.exe' ARGUMENTS="-l dsad '#odbcserver#' '#arguments.odbcdsn#' DataSourceLogonMethod" timeout="0"></CFEXECUTE>
<CFEXECUTE NAME='#path#\admin\swcla.exe' ARGUMENTS="-l dsaa '#odbcserver#' '#arguments.odbcdsn#' DataSourceLogonMethod #arguments.logonmethod#" timeout="0"></CFEXECUTE>
<cfscript>sleep(2000);</cfscript>
</cfsilent>
</cffunction>
<!--- ::
Utility Methods
:: --->
<!---
/**
* Verify a given dsn
* @param -
* @return Returns a boolean if added successfully.
* @author Mike Nimer (mnimer@macromedia.com)
* @version 1, 3/6/2002
*/ --->
<cffunction name="verifyDsn" output="false" access="public" returntype="Any" hint="Verifies a given data source name.">
<cfargument name="dsn" required="true" hint="Name that ColdFusion uses to connect to the data source.">
<cfargument name="returnMsgOnError" type="boolean" required="false" default="false" hint="The function returns the error message on any error if this parameter is true">
<cfset var accessmanager = createObject("component", "CFIDE.adminapi.accessmanager")>
<cfset accessmanager.checkAdminRoles("coldfusion.datasources")>
<cftry>
<cflock name="cfadmin_sqlexecutive" timeout="30" type="READONLY">
<cfset success = dsnService.verifyDatasource(arguments.dsn)>
</cflock>
<cfcatch type="Any">
<cfset success = false>
<cfif arguments.returnMsgOnError>
<cfreturn #cfcatch.Message#>
</cfif>
</cfcatch>
</cftry>
<cfreturn success>
</cffunction>
<!--- /**
* Format The jdbc URL, it takes one of the following forms.
* jdbc:sequelink:odbcsocket://host:port
* jdbc:sequelink:odbcsocket://host:port;arg1=val1;arg2=val2
* jdbc:sequelink:odbcsocket://host:port;serverDatasource=datasource
* jdbc:sequelink:odbcsocket://host:port;serverDatasource=datasource;arg1=val1;arg2=val2
*
* odbcSocket defaultURL: jdbc:sequelink:odbcsocket://[host]:[port];serverDatasource=[datasource];[args]
* access defaultURL: jdbc:sequelink:odbcsocket://[host]:[port];serverDatasource=[datasource];[args]
* db2 defaultURL: jdbc:macromedia:db2://[host]:[port];databaseName=[database];[args]
* db2 OS/390 default URL: jdbc:macromedia:db2://host:port;arg1=val2;ar2=val2
* informix: jdbc:macromedia:informix://[host]:[port];informixServer=[informix_server];DatabaseName=[database]
*
* @param - host (ip or url)
* @param - port (int)
* @param - dsn (dsn name)
* @param - semi-colon seperated args list
* @return Returns an array.
* @author Mike Nimer (mnimer@macromedia.com)
* @version 1, 3/6/2002
*/ --->
<cffunction name="formatJdbcURL" access="private" output="false" hint="Formats the JDBC URL.">
<cfargument name="driver" required="true" hint="JDBC driver.">
<cfargument name="host" required="false" hint="Machine to connect to.">
<cfargument name="port" required="false" hint="Port number on which the server is listening." >
<cfargument name="dsn" required="false" hint="Name that ColdFusion uses to connect to the data source.">
<cfargument name="database" required="false" hint="Name of database to access.">
<cfargument name="datasource" required="false" hint="Actual name of data source.">
<cfargument name="args" required="false" hint="Semicolon-separated list of arguments.">
<cfargument name="informixServer" required="false" hint="Informix server name.">
<cfargument name="selectMethod" required="false" hint="Name of method for SELECT statement.">
<cfargument name="SID" required="false" hint="Database system ID name.">
<cfargument name="MaxPooledStatements" required="false" hint="Maximum number of database statements to pool.">
<cfargument name="isnewdb" required="false">
<!--- /// get defaults /// --->
<cfset var stDriver = dsnService.drivers[driver]>
<!--- /// get default URL /// --->
<cfset var thisURL = stDriver.url>
<cfinclude template="_datasource/formatjdbcurl.cfm">
<cfreturn newURL>
</cffunction>
<!--- /**
* set the dsn defaults to the arguments scope that is passed in
*
* @param - scope any struct (user defined, form, url, etc)
* @return Returns the update scope.
* @author Mike Nimer (mnimer@macromedia.com)
* @version 1, 3/6/2002
*/ --->
<cffunction name="getNewDSNDefaults" access="private" output="false" hint="Gets the data source defaults to the arguments scope that is passed in.">
<cfargument name="scope" required="true" hint="Scope - Any structure (user-defined, form, URL, etc.)"><cfparam name="arguments.scope.username" default="">
<cfparam name="arguments.scope.password" default="">
<cfparam name="arguments.scope.description" default="">
<cfparam name="arguments.scope.url" default="">
<cfparam name="arguments.scope.urlmap.host" default="">
<cfparam name="arguments.scope.urlmap.port" default="">
<cfparam name="arguments.scope.urlmap.database" default="">
<cfparam name="arguments.scope.urlmap.args" default="">
<cfparam name="arguments.scope.urlmap.informixServer" default="">
<cfparam name="arguments.scope.urlmap.selectMethod" default="direct">
<cfparam name="arguments.scope.urlmap.SID" default="">
<cfparam name="arguments.scope.urlmap.defaultusername" default="">
<cfparam name="arguments.scope.urlmap.defaultpassword" default="">
<cfparam name="arguments.scope.urlmap.maxBufferSize" default="">
<cfparam name="arguments.scope.urlmap.databaseFile" default="">
<cfparam name="arguments.scope.urlmap.systemDatabaseFile" default="">
<cfparam name="arguments.scope.urlmap.pageTimeout" default="">
<cfparam name="arguments.scope.urlmap.datasource" default="">
<cfparam name="arguments.scope.urlmap.UseTrustedConnection" default="false">
<cfparam name="arguments.scope.urlmap.sendStringParametersAsUnicode" default="false">
<cfparam name="arguments.scope.urlmap.TimeStampAsString" default="no">
<cfparam name="arguments.scope.urlmap.MaxPooledStatements" default="1000">
<cfparam name="arguments.scope.urlmap.isnewdb" default="false">
<cfparam name="arguments.scope.validationQuery" default="">
<cfreturn arguments.scope>
</cffunction>
<!--- /**
* set the cfsetting defaults to the arguments scope that is passed in
*
* @param - scope any struct (user defined, form, url, etc)
* @return Returns the update scope.
* @author Mike Nimer (mnimer@macromedia.com)
* @version 1, 3/6/2002
*/ --->
<cffunction name="getCFSettingDefaults" access="private" output="false" hint="Gets the cfsetting defaults to the arguments scope that is passed.">
<cfargument name="scope" required="true" hint="Scope - any structure (user-defined, form, URL, etc.)"><cfscript>
///////////////////////////////////////////////
//cfsetting Defaults
if(IsDefined("dsnService.defaults"))
{ stDefaults = dsnService.defaults; }
else
{ stDefaults = StructNew(); }
//loop over and set defaults to stDsn.scope
for( key in stDefaults )
{ arguments.scope[key] = stDefaults[key]; }
</cfscript>
<cfreturn arguments.scope>
</cffunction>
<!--- /**
* set the driver defaults to the arguments scope that is passed in
*
* @param - scope any struct (user defined, form, url, etc)
* @return Returns the update scope.
* @author Mike Nimer (mnimer@macromedia.com)
* @version 1, 3/6/2002
*/ --->
<cffunction name="getDriverDefaults" access="private" output="false" hint="Gets the driver defaults to the arguments scope that is passed in.">
<cfargument name="scope" required="true" hint="Scope - any structure (user-defined, form, URL, etc.)"><cfscript>
//////////////////////////////////////////////
//driver Defaults
if( structKeyExists(dsnService.drivers, arguments.scope.driver) )
{
if(IsDefined("dsnService.drivers"))
{ stDriver = dsnService.drivers[arguments.scope.driver]; }
else
{ stDriver = StructNew(); }
//loop over and set values to stDsn.scope
for( key in stDriver )
{ arguments.scope[key] = stDriver[key]; }
}
</cfscript>
<cfreturn arguments.scope>
</cffunction>
<!--- /**
* set the dsn defaults to the arguments scope that is passed in
*
* @param - scope any struct (user defined, form, url, etc)
* @return Returns the update scope.
* @author Mike Nimer (mnimer@macromedia.com)
* @version 1, 3/6/2002
*/ --->
<cffunction name="getDatasourceDefaults" access="private" output="false" hint="Gets the DSN defaults to the arguments scope that is passed in.">
<cfargument name="scope" required="true" hint="Scope - any structure (user-defined, form, URL, etc.)">
<cfargument name="dsn" required="true" hint="Data source name.">
<cfset var stDatasource = structNew()><cfscript>
arguments.scope['dsn'] = arguments.dsn;
///////////////////////////////////////////////
//override defaults with dsn specific data
if(IsDefined("dsnService.datasources") and structKeyExists(dsnService.datasources, arguments.dsn))
{ stDatasource = duplicate(dsnService.datasources[arguments.dsn]) ; }//loop over and set values to stDsn.scope
for( key in stDatasource )
{
if( structKeyExists(arguments.scope, key) )
{
arguments.scope[key] = stDatasource[key];
}
}
</cfscript>
<cfreturn arguments.scope>
</cffunction>
<!--- /**
* set the dsn defaults to the arguments scope that is passed in
*
* @param - scope any struct (user defined, form, url, etc)
* @return Returns the update scope.
* @author Mike Nimer (mnimer@macromedia.com)
* @version 1, 3/6/2002
*/ --->
<cffunction name="getURLDefaults" access="private" output="false" hint="Returns URL default values.">
<cfargument name="scope" required="true" hint="Arguments scope to receive URL default values.">
<cfargument name="driver" default="" required="false" hint="Driver name,">
<cfargument name="delims" required="true" hint="Delimiters."><cfinclude template="_datasource/geturldefaults.cfm">
<cfreturn arguments.scope>
</cffunction>
<!---
/**
*
*/
--->
<cffunction name="getAccessDefaultsFromRegistry" access="private" output="false" hint="Retrieves Microsoft Access default values from Windows registry.">
<cfargument name="scope" required="true" hint="Arguments scope to receive default values.">
<cfargument name="dsn" required="true" hint="Name that ColdFusion uses to connect to the data source.">
<cfset var Branch_ODBCINI = "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI">
<cfset var Branch_ODBCDS = "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources">
<cfset var Branch_ODBCINST = "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI"><cfinclude template="_datasource/getaccessdefaultsfromregistry.cfm">
<cfreturn arguments.scope>
</cffunction>
<!---
/**
* return the file path/filename of the odbc sequllink ini file
*
* @param - inifile = use the get cfadmin_getSlServerIni() function to get this.
* @return Returns a string.
* @author Mike Nimer (mnimer@macromedia.com)
* @version 1, January 12, 2002
*/
--->
<cffunction name="getSlsServerPath" output="false" access="private" returnType="String" hint="Returns the path/filename of the ODBC Sequelink INI file.">
<cfset thisfile = Replace("#server.coldfusion.rootdir#\db\slserver54", "/" ,"\")>
<cfreturn thisfile>
</cffunction>
<!---
/**
* return the CFMX ODBC Server service name
*
* @return Returns a string
* @author Trevor Baker (tbaker@macromedia.com)
* @version 1, April 2, 2003
*/
--->
<cffunction name="getSlsServerServiceName" output="false" access="private" returnType="String" hint="Returns the ODBC Server service name.">
<cfscript>
iniPath = "#getSlsServerPath()#\cfg\swandm.ini";
SLServiceName = GetProfileString(iniPath, "Service_1", "ServiceName");
// this shouldn't happen, but we'll default to "ColdFusion 8 ODBC Server" just incase
if (len(SLServiceName) eq 0) {
SLServiceName = "ColdFusion 8 ODBC Server";
}
</cfscript>
<cfreturn SLServiceName>
</cffunction>
<!---
/**
* sets a new sequellink service name
*
* @return Returns a string
* @author Trevor Baker (tbaker@macromedia.com)
* @version 1, April 2, 2003
*/
--->
<cffunction name="setSlsServerServiceName" output="false" access="private" returnType="String" hint="Adds a new SequeLink service name">
<cfargument name="serviceName" required="true" hint="SequeLink service name">
<cfscript>
iniPath = "#getSlsServerPath()#\cfg\swandm.ini";
SLServiceName = setProfileString(iniPath, "Service_1", "ServiceName", arguments.serviceName);
</cfscript>
<cfreturn getSlsServerServiceName()>
</cffunction>
<!---
/**
* return the CFMX ODBC Server Agent name
*
* @return Returns a string
* @author Trevor Baker (tbaker@macromedia.com)
* @version 1, April 2, 2003
*/
--->
<cffunction name="getSlsAgentServiceName" output="false" access="private" returnType="String" hint="Returns the name of the ODBC server agent.">
<cfreturn replace(getSlsServerServiceName(), "Server", "Agent", "all")>
</cffunction>
</cfcomponent>
You can restore C:\JRun4\servers\default\cfusion-ear\cfusion-war\CFIDE\adminapi\datasource.cfc as you will when ODBC Service and Agent are successfully installed.
For further info refer to https://forums.adobe.com/thread/62441
Get ready! An upgraded Adobe Community experience is coming in January.
Learn more