1. I had an immaculately working system with ASA 6 database, a client
made with PowerJ 3.6 communicating through JConnect 5.2.
2. I upgraded the database to ASA 9 (using unload and reload) and
JConnect 5.5. The database works perfectly from isql. All searches
works from the PJ java client. Significantly faster than before I
might add.
Problem: The client uses lot's of PowerJ database aware AWT
components. Updates from the PowerJ java client only works if the
primary key is marked "Read Only" in the query object options... Is
the primary key editable, the update fails since the query object
believes nothing is updated. query object debug logs for working and
non working cases supplied below.
I've tried installing jconnect 5.2 in the database and using it in the
client, but the behaviour is the same.
I understand that using a newer JConnect version might make the client
incompatible, but I don't understand how it could behave like this
when I'm using the same version of JConnect as before?!?
If someone could direct me where to look or something to try I'll be
very grateful.
Regards
Anders Wikholm
query object debug log looks like this when it doesn't work (primary
key editable):
-------------------------
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
absolute] moving to row 49
powersoft.powerj.db.java_sql.ExtendedResultSet:
[QueryHandler.G_Maklare_query primary cache in absolute] moving to row
49
powersoft.powerj.db.java_sql.ExtendedResultSet:
[QueryHandler.G_Maklare_query primary cache in absolute] current row
=49 bof=false eof=false
powersoft.powerj.db.java_sql.ExtendedResultSet:
[QueryHandler.G_Maklare_query primary cache in edit] result set in
edit mode for row 49
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
batchUpdate] current row is not in read mode, calling update
powersoft.powerj.db.java_sql.ExtendedResultSet:
[QueryHandler.G_Maklare_query primary cache in setValue] set value of
column 2 to value of type VARCHAR (marked as modified): Anders
powersoft.powerj.db.java_sql.ExtendedResultSet:
[QueryHandler.G_Maklare_query primary cache in update] updating
changes to row 49 to primary buffer
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
update] returns true
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
adjustDataColumns] adjusting DataColumn settings based on the
PrimaryKeyColumns, ColumnTableNames, ColumnAliases and ReadOnlyColumns
properties
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
batchUpdate] beginning update sequence...
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in setName] new name is 'QueryHandler.G_Maklare_query
update query', now registered in the global name table
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in setTransactionObject] setting to
'TransactionHandler.transaction_1'
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query] connection notification from transaction object
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query] a Sybase driver is being used:
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query] setting BatchUpdateStatementReturnType to
STATEMENT_RETURNS_MIXED
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query] setting AutoIncrementStatementReturnType to
STATEMENT_RETURNS_MIXED
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
batchUpdate] turning off autocommit to begin an implicit transaction
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
batchUpdate] there are 0 rows to delete and
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
batchUpdate] there are 1 rows to update/add
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
updateRow] updating row in table dba.ALL_K_Maklare
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
updateRow] no columns marked as modified for table dba.ALL_K_Maklare,
nothing to do
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
batchUpdate] update sequence succeeded
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
batchUpdate] committing transaction
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
batchUpdate] adjusting read-only buffer to reflect result of update
sequence
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
batchUpdate] resetting autocommit state
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
batchUpdate] batchUpdate returns true
--------------------------------------------------------------
query object debug log looks like this when it does work (primary key
read only):
-------------------------
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
absolute] moving to row 49
powersoft.powerj.db.java_sql.ExtendedResultSet:
[QueryHandler.G_Maklare_query primary cache in absolute] moving to row
49
powersoft.powerj.db.java_sql.ExtendedResultSet:
[QueryHandler.G_Maklare_query primary cache in absolute] current row
=49 bof=false eof=false
powersoft.powerj.db.java_sql.ExtendedResultSet:
[QueryHandler.G_Maklare_query primary cache in edit] result set in
edit mode for row 49
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
batchUpdate] current row is not in read mode, calling update
powersoft.powerj.db.java_sql.ExtendedResultSet:
[QueryHandler.G_Maklare_query primary cache in setValue] set value of
column 2 to value of type VARCHAR (marked as modified): Anders P
powersoft.powerj.db.java_sql.ExtendedResultSet:
[QueryHandler.G_Maklare_query primary cache in update] updating
changes to row 49 to primary buffer
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
update] returns true
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
adjustDataColumns] adjusting DataColumn settings based on the
PrimaryKeyColumns, ColumnTableNames, ColumnAliases and ReadOnlyColumns
properties
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
adjustDataColumn] ReadOnlyColumns is set, first marking all columns as
writable
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
adjustDataColumns] marking column 6 ('KortMaklarnamn') as a read-only
key
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
batchUpdate] beginning update sequence...
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
batchUpdate] turning off autocommit to begin an implicit transaction
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
batchUpdate] there are 0 rows to delete and
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
batchUpdate] there are 1 rows to update/add
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
updateRow] updating row in table dba.ALL_K_Maklare
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
convertParameter] converting parameter 3 from VARCHAR to CHAR
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
convertParameter] conversion failed, setting as generic object
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
updateRow] executing SQL to update the database
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in setSQL] SQL string and statement type unchanged
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in clearParameters] clearing parameters
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in setParameter] setting parameter 1 to
CHAR/VARCHAR/LONGVARCHAR value: 'Anders P'
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in setParameter] setting parameter 2 to
CHAR/VARCHAR/LONGVARCHAR value: 'Anders'
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in setParameter] setting parameter 3 to
CHAR/VARCHAR/LONGVARCHAR value: 'TTT'
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in execute] executing SQL and gathering all results
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in execute] calling open to execute SQL statement
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in open] executing arbitrary statement 'UPDATE
dba.ALL_K_Maklare SET Fornamn = ? WHERE Fornamn = ? AND KortMaklarnamn
= ?'
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in open] UpdateCount is 1
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in open] returns true
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in execute] processing update counts and/or result sets
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in moreResultsAvailable] checking if more results are
available
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in getMoreResults] closing any result set
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in close] closing query
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in getMoreResults] asking driver if more results are
available
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in getMoreResults] checking for a result set or an update
count
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in open] UpdateCount is -1
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in open] Statement object returned a null ResultSet
object
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in open] returns true
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in getMoreResults] returns false
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in moreResultsAvailable] returns false
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in close] closing query
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query
update query in execute] there are 1 result sets (0) and/or update
counts (1) available
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
batchUpdate] update sequence succeeded
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
batchUpdate] committing transaction
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
batchUpdate] adjusting read-only buffer to reflect result of update
sequence
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
batchUpdate] resetting autocommit state
powersoft.powerj.db.java_sql.Query: [QueryHandler.G_Maklare_query in
batchUpdate] batchUpdate returns true
How are you trying the same thing in DBISQL?
Are you using READ ONLY cursors?
You might want to try the following:
Start the server (old and new) using -o filename.txt -Z
Run the app (old and new), compare the results in filename.txt, since
this will log all the TDS coming into the server.
--
David Fishburn
Certified ASA Developer Version 8
iAnywhere Solutions - Sybase
Professional Services
Please only post to the newsgroup
Please ALWAYS include version and MORE importantly BUILD number with
EACH post (dbeng9 -v).
EBFs and Maintenance Releases
http://downloads.sybase.com/swx/sdmain.stm
Developer Community / Whitepapers
http://www.ianywhere.com/developer
CaseXpress - to report bugs
http://casexpress.sybase.com
CodeXchange - Free samples
http://ianywhere.codexchange.sybase.com/servlets/ProjectDocumentList
Thanks. I found a workaround.. If no column is "read only" I set a
fictive column called "dummy_column" as read only in the powersoft query
object.
It's the query object that does something wrong otherwise, but as long
as this always works I haven't got time to investigate it further.