Pages

Monday, November 29, 2010

CFQuery and the underlying Java Objects

We know the Java is the backend of ColdFusion. So Java is underlying in ColdFusion. So there are Java Objects in CFQuery too.

For Example:

cfquery name="myqry" datasource="myDS"
select top 1 orderid from tblorder
cfquery

Next, I wanted to find out what Java object is this. This was pretty straight forward

cfdump var= "#myqry.getClass().getName()#"

That gives me coldfusion.sql.QueryTable , so I know what object this is internally

cfset sql = createObject("java","coldfusion.sql.QueryTable")
cfdump var = "#sql#"

coldfusion.sql.QueryTable
object of coldfusion.sql.QueryTable
Class Name coldfusion.sql.QueryTable
Methods Method Return Type
absolute(int) boolean
addColumn(java.lang.String, java.util.Vector) int
addColumn(java.lang.String) int
addRowSetListener(javax.sql.RowSetListener) void
afterLast() void
beforeFirst() void
cancelRowUpdates() void
clearParameters() void
clearWarnings() void
close() void
deleteRow() void
equals(java.lang.Object) boolean
execute() void
findColumn(java.lang.String) int
first() boolean
getArray(java.lang.String) java.sql.Array
getArray(int) java.sql.Array
getAsciiStream(int) java.io.InputStream
getAsciiStream(java.lang.String) java.io.InputStream
getBigDecimal(java.lang.String) java.math.BigDecimal
getBigDecimal(int) java.math.BigDecimal
getBigDecimal(java.lang.String, int) java.math.BigDecimal
getBigDecimal(int, int) java.math.BigDecimal
getBinaryStream(int) java.io.InputStream
getBinaryStream(java.lang.String) java.io.InputStream
getBlob(java.lang.String) java.sql.Blob
getBlob(int) java.sql.Blob
getBoolean(int) boolean
getBoolean(java.lang.String) boolean
getByte(java.lang.String) byte
getByte(int) byte
getBytes(int) byte[]
getBytes(java.lang.String) byte[]
getCharacterStream(java.lang.String) java.io.Reader
getCharacterStream(int) java.io.Reader
getClob(int) java.sql.Clob
getClob(java.lang.String) java.sql.Clob
getColumnList() java.lang.String[]
getCommand() java.lang.String
getConcurrency() int
getCurrentRow() int
getCursorName() java.lang.String
getDataSourceName() java.lang.String
getDate(java.lang.String, java.util.Calendar) java.sql.Date
getDate(int) java.sql.Date
getDate(java.lang.String) java.sql.Date
getDate(int, java.util.Calendar) java.sql.Date
getDouble(int) double
getDouble(java.lang.String) double
getEscapeProcessing() boolean
getFetchDirection() int
getFetchSize() int
getFloat(int) float
getFloat(java.lang.String) float
getInt(java.lang.String) int
getInt(int) int
getLong(java.lang.String) long
getLong(int) long
getMaxFieldSize() int
getMaxRows() int
getMetaData() java.sql.ResultSetMetaData
getObject(java.lang.String) java.lang.Object
getObject(int) java.lang.Object
getObject(int, java.util.Map) java.lang.Object
getObject(java.lang.String, java.util.Map) java.lang.Object
getPassword() java.lang.String
getQueryTimeout() int
getRecordCount() int
getRecordsetType() java.lang.String
getRef(java.lang.String) java.sql.Ref
getRef(int) java.sql.Ref
getRow() int
getShallowCopy() coldfusion.sql.QueryTable
getShort(int) short
getShort(java.lang.String) short
getStatement() java.sql.Statement
getString(java.lang.String) java.lang.String
getString(int) java.lang.String
getTime(int, java.util.Calendar) java.sql.Time
getTime(java.lang.String) java.sql.Time
getTime(java.lang.String, java.util.Calendar) java.sql.Time
getTime(int) java.sql.Time
getTimestamp(int) java.sql.Timestamp
getTimestamp(java.lang.String) java.sql.Timestamp
getTimestamp(java.lang.String, java.util.Calendar) java.sql.Timestamp
getTimestamp(int, java.util.Calendar) java.sql.Timestamp
getTransactionIsolation() int
getType() int
getTypeMap() java.util.Map
getURL(java.lang.String) java.net.URL
getURL(int) java.net.URL
getUnicodeStream(int) java.io.InputStream
getUnicodeStream(java.lang.String) java.io.InputStream
getUpdateCount() int
getUrl() java.lang.String
getUsername() java.lang.String
getWarnings() java.sql.SQLWarning
insertRow() void
isAfterLast() boolean
isBeforeFirst() boolean
isFirst() boolean
isLast() boolean
isReadOnly() boolean
last() boolean
moveToCurrentRow() void
moveToInsertRow() void
next() boolean
populate(java.sql.ResultSet, int) void
populate(java.sql.ResultSet) void
populate(coldfusion.sql.QueryTable, int) void
populate(com.allaire.cfx.Query) void
previous() boolean
refreshRow() void
relative(int) boolean
removeRowSetListener(javax.sql.RowSetListener) void
resolveObject(java.lang.Object, int, int) java.lang.Object
rowDeleted() boolean
rowInserted() boolean
rowUpdated() boolean
setArray(int, java.sql.Array) void
setAsciiStream(int, java.io.InputStream, int) void
setBigDecimal(int, java.math.BigDecimal) void
setBinaryStream(int, java.io.InputStream, int) void
setBlob(int, java.sql.Blob) void
setBoolean(int, boolean) void
setByte(int, byte) void
setBytes(int, byte[]) void
setCharacterStream(int, java.io.Reader, int) void
setClob(int, java.sql.Clob) void
setCommand(java.lang.String) void
setConcurrency(int) void
setDataSourceName(java.lang.String) void
setDate(int, java.sql.Date) void
setDate(int, java.sql.Date, java.util.Calendar) void
setDouble(int, double) void
setEscapeProcessing(boolean) void
setFetchDirection(int) void
setFetchSize(int) void
setFloat(int, float) void
setInt(int, int) void
setLong(int, long) void
setMaxFieldSize(int) void
setMaxRows(int) void
setMetaData(coldfusion.sql.QueryTableMetaData) void
setNull(int, int) void
setNull(int, int, java.lang.String) void
setObject(int, java.lang.Object, int) void
setObject(int, java.lang.Object) void
setObject(int, java.lang.Object, int, int) void
setPassword(java.lang.String) void
setQueryTimeout(int) void
setReadOnly(boolean) void
setRef(int, java.sql.Ref) void
setShort(int, short) void
setString(int, java.lang.String) void
setTime(int, java.sql.Time) void
setTime(int, java.sql.Time, java.util.Calendar) void
setTimestamp(int, java.sql.Timestamp, java.util.Calendar) void
setTimestamp(int, java.sql.Timestamp) void
setTransactionIsolation(int) void
setType(int) void
setTypeMap(java.util.Map) void
setUpdateCount(int) void
setUrl(java.lang.String) void
setUsername(java.lang.String) void
updateArray(int, java.sql.Array) void
updateArray(java.lang.String, java.sql.Array) void
updateAsciiStream(java.lang.String, java.io.InputStream, int) void
updateAsciiStream(int, java.io.InputStream, int) void
updateBigDecimal(int, java.math.BigDecimal) void
updateBigDecimal(java.lang.String, java.math.BigDecimal) void
updateBinaryStream(java.lang.String, java.io.InputStream, int) void
updateBinaryStream(int, java.io.InputStream, int) void
updateBlob(int, java.sql.Blob) void
updateBlob(java.lang.String, java.sql.Blob) void
updateBoolean(int, boolean) void
updateBoolean(java.lang.String, boolean) void
updateByte(java.lang.String, byte) void
updateByte(int, byte) void
updateBytes(java.lang.String, byte[]) void
updateBytes(int, byte[]) void
updateCharacterStream(java.lang.String, java.io.Reader, int) void
updateCharacterStream(int, java.io.Reader, int) void
updateClob(int, java.sql.Clob) void
updateClob(java.lang.String, java.sql.Clob) void
updateDate(java.lang.String, java.sql.Date) void
updateDate(int, java.sql.Date) void
updateDouble(int, double) void
updateDouble(java.lang.String, double) void
updateFloat(java.lang.String, float) void
updateFloat(int, float) void
updateInt(java.lang.String, int) void
updateInt(int, int) void
updateLong(int, long) void
updateLong(java.lang.String, long) void
updateNull(java.lang.String) void
updateNull(int) void
updateObject(java.lang.String, java.lang.Object, int) void
updateObject(int, java.lang.Object) void
updateObject(java.lang.String, java.lang.Object) void
updateObject(int, java.lang.Object, int) void
updateRef(java.lang.String, java.sql.Ref) void
updateRef(int, java.sql.Ref) void
updateRow() void
updateShort(java.lang.String, short) void
updateShort(int, short) void
updateString(int, java.lang.String) void
updateString(java.lang.String, java.lang.String) void
updateTime(java.lang.String, java.sql.Time) void
updateTime(int, java.sql.Time) void
updateTimestamp(java.lang.String, java.sql.Timestamp) void
updateTimestamp(int, java.sql.Timestamp) void
wasNull() boolean

Fields Field Value
int APPLICATION_SCOPE 7
int ARGUMENTS_SCOPE 1
int CLOSE_CURSORS_AT_COMMIT 2
int CONCUR_READ_ONLY 1007
int CONCUR_UPDATABLE 1008
int FETCH_FORWARD 1000
int FETCH_REVERSE 1001
int FETCH_UNKNOWN 1002
int HOLD_CURSORS_OVER_COMMIT 1
int LOCAL_SCOPE 0
int NOT_FOUND -1
int NO_SCOPE -1
int PAGE_SCOPE 3
int REQUEST_SCOPE 5
int SERVER_SCOPE 8
int SESSION_SCOPE 6
int THIS_SCOPE 4
int THREAD_SCOPE 2
int TYPE_FORWARD_ONLY 1003
int TYPE_SCROLL_INSENSITIVE 1004
int TYPE_SCROLL_SENSITIVE 1005

Parent Class object coldfusion.sql.Table
Class Name coldfusion.sql.Table
Methods Method Return Type
addRows(int) int
clear() void
findColumn(java.lang.String) int
firstTable() coldfusion.sql.Table
getColumn(int) java.util.List
getColumn(java.lang.String) java.util.List
getColumnCount() int
getColumnName(int) java.lang.String
getColumnNames() java.lang.String[]
getField(int, int) java.lang.Object
lastTable() coldfusion.sql.Table
nextTable() coldfusion.sql.Table
previousTable() coldfusion.sql.Table
setField(int, int, java.lang.Object) void
setNextTable(coldfusion.sql.Table) void
setPreviousTable(coldfusion.sql.Table) void
toString() java.lang.String

Parent Class object coldfusion.sql.imq.imqTable
Class Name coldfusion.sql.imq.imqTable
Methods Method Return Type
addColumnName(java.lang.String) void
clear() void
getColumnNames() java.lang.String[]
getColumnTypeName(int) java.lang.String
getMemoryTrackerProxy() coldfusion.monitor.memory.MemoryTrackerProxy
getQueryStat() coldfusion.monitor.sql.QueryStat
getRow(int) coldfusion.sql.imq.Row
getRowCount() int
getScopeType() int
guessColumnType(int) int
isCached() boolean
removeRows(int, int) void
setCached(boolean) void
setColumnNames(java.lang.String[]) void
setMemoryTrackerProxy(coldfusion.monitor.memory.MemoryTrackerProxy) void
setQueryStat(coldfusion.monitor.sql.QueryStat) void
sort(int, boolean) void
sort(coldfusion.sql.imq.OrderByColumnList) void
sort(int, boolean, boolean) void
sort(coldfusion.sql.imq.OrderByColumnList, boolean) void
valuesIterator() java.util.Iterator




- returns 1 (because this column exists in my query)
- returns 0 (because this doesnt)



Here is a dump of what it looks like. It gives you the executiontime of the query and tells you if the query is cached or not apart from giving you the actual SQL statement and the resultset.


use java.sql.ResultSet to get more info

http://www.zrinity.com/developers/mx/undocumentation/query.cfm

Coldfusion Rds Server in Eclipse

Cold Fusion RDS - Remote Development Services. Cold Fusion RDS is not designed for shared hosting environment and presents a high security risk if enabled on shared servers.

Steps to Integrate RDS In cfeclipse

1) During installation Process of Coldfusion enable the RDS and assign username and Password there.

2) If RDS is installed a icon is shown in my computer.




3) Enable Line Debugger in coldFusion administrator and it is ask of restarting of Coldfusuion Server.

4) In Eclipse (cfeclipse Perspective ) click on Window Menu (windowshow viewOthers )and click other from the submenu

5) Click the Coldfusion folder , here we can see few options here.

Click on RDS DataView

Up on Clicking on the RDS DataView we can View the RDS dataView Window. Right Click on the Icon and Set the RDS Configuration

And Password is the Password which You have given while installation Coldfusion


Now we can view the all the data sources which we are connected from cfadmin and default data sources (cfartgallery, cfdocexamples).

When we click the visual Query Button ,

There are a lot of Advantages here :


1) There is a drag and Drop facility of the table (Similar to MS Access).
2) We can have auto generated Query Comes when we drag and drop the table from the left Side pane
3) Here we can any kind of Joins here , just right on the blue button , a menu is generated with joining options.
4) No Need to Open the Sql Server Every time, when You just need to work on Select statements.




Disadvantage(s):

Here We can Work with Select Statements .Update, delete , create statements will not work here.
we cannot work with storedprocedures.


Imp Note :

RDS Server should Not be (Enabled) turned on it Production Servers.