× Heads up!

Aqua Data Studio / nhilam

Follow
IDE for Relational Databases
×
Shavi57 reported 2016-10-14T07:20:45Z  · last modified 2016-10-19T04:51:08Z

Incorrect SQL statement (syntax error) is executed to extract the REMOTE SERVER details


Priority Major
Complexity Unknown
Component DB - Sybase ASE
Version 18.0
Product: Aqua Data Studio
Version: 18.0.0-devi-261
Build #: 51490
Build Date: 2016-Oct-12 05:56:02 PM
 
Operating Environment: Windows 10 (10.0, amd64) / Cp1252 / en / IN / Oracle Corporation 1.8.0_101-b13
Memory: Max=704,643,072;  Total=193,462,272;  Free=36,161,312;  CPUs=4
 
Database Version: Sybase ASE 16
 
Steps to reproduce issue:
 
-- Open SQL log dialog
 
1. Execute  given script through query analyzer
 
sp_addserver 'sample_RS', ASEnterprise, '10.171.0.193:5000'
go
 
Note :  You will need to modify the script as per server ip 
 
2. In Schema browser, go to "Security" node and Expand "Remote Servers" node
3. Select "sample_RS" and right-click option "Drop Remote Server" and Observe the SQL log
 
This issue is reproducible for below right click options:
Drop Remote Server
Alter Remote Server
Remote Server Properties
Script Object to Windows as > Drop/ CREATE
Script Object to New Windos as > Drop/ CREATE
Script Object to File as > Drop/ CREATE
 
Actual Result:  No action is performed as the generated SQL to extract the REMOTE SERVER details has syntax error. The alias given for the table "master.dbo.syslogins log " in query is "log" which isthe keyword and causes the syntax error. Below is the SQL statement:
 
select
srv.srvname,
srv.srvnetname,
srv.srvstatus,
v.name,
srv.srvsecmech,
srv.srvcost,
log.name,
rem.remoteusername,
0          as isrole,
0          as isexternal,
rem.status as trusted 
from
master.dbo.sysservers srv 
left join master.dbo.sysremotelogins rem 
on(srv.srvid = rem.remoteserverid) 
left join master.dbo.spt_values v 
on(srv.srvclass = v.number and
v.type = 'X' and
v.name != 'access_server') 
left join master.dbo.syslogins log 
on(rem.suid = log.suid) 
where
srv.srvname = 'sample_RS' 
UNION
select
srv.srvname,
srv.srvnetname,
srv.srvstatus,
v.name,
srv.srvsecmech,
srv.srvcost,
ext.locext,
ext.remext,
ext.isrole as isrole,
1          as isexternal,
0          as trusted 
from
master.dbo.sysservers srv 
left join master.dbo.spt_values v 
on(srv.srvclass = v.number and
v.type = 'X' and
v.name != 'access_server'),
( select
s.srvid        as id,
l.name         as locext,
a.object_cinfo as remext,
0              as isrole 
from
master.dbo.sysattributes a,
master.dbo.sysservers s,
master.dbo.syslogins l 
WHERE
a.class = 9 AND
a.object_type = 'EL' AND
a.object_info1 = s.srvid AND
a.object = l.suid 
UNION
select
s.srvid        as id,
null           as locext,
a.object_cinfo as remext,
0              as isrole 
from
master.dbo.sysattributes a,
master.dbo.sysservers s 
WHERE
a.class = 9 AND
a.object_type = 'EL' AND
a.object_info1 = s.srvid AND
a.object_info2 = -1 AND
a.object = -1 
UNION
select
s.srvid        as id,
r.name         as locext,
a.object_cinfo as remext,
1              as isrole 
FROM
master.dbo.sysattributes a,
master.dbo.sysservers s,
master.dbo.syssrvroles r 
WHERE
a.class = 9 AND
a.object_type = 'EL' AND
a.object_info1 = s.srvid AND
a.object_info2 = r.srid ) ext 
where
srv.srvid = ext.id and
srv.srvname = 'sample_RS'
 
Exception thrown:
 
com.sybase.jdbc4.jdbc.SybSQLException: Incorrect syntax near the keyword 'log on'.
 
at com.sybase.jdbc4.tds.Tds.processEed(Tds.java:4117)
at com.sybase.jdbc4.tds.Tds.nextResult(Tds.java:3207)
at com.sybase.jdbc4.tds.Tds.getResultSetResult(Tds.java:3973)
at com.sybase.jdbc4.tds.TdsCursor.open(TdsCursor.java:328)
at com.sybase.jdbc4.jdbc.SybStatement.executeQuery(SybStatement.java:2604)
at com.sybase.jdbc4.jdbc.SybStatement.executeQuery(SybStatement.java:555)
at \\.\\.\\हिñçêČάй語简�?한\\.cꂅꋧ⣪⣥chargoto.executeQuery(Unknown Source)
at \\.\\.\\हिñçêČάй語简�?한\\.aꁆꐅꊸ᠈.a(Unknown Source)
at \\.\\.\\हिñçêČάй語简�?한\\.aꁆꐅꊸ᠈.b(Unknown Source)
at \\.\\.\\हिñçêČάй語简�?한\\.aꁆꐅꊸ᠈.a(Unknown Source)
at \\.\\.\\हिñçêČάй語简�?한\\.Zꆍꊣᝍ⣱void.a(Unknown Source)
at \\.\\.\\हिñçêČάй語简�?한\\.i⡑ꎜꌷᛎint.a(Unknown Source)
at com.aquafold.datastudio.mainframe.ActionHandler.actionPerformed(Unknown Source)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at com.jidesoft.plaf.vsnet.VsnetMenuItemUI.doClick(Unknown Source)
at com.jidesoft.plaf.vsnet.VsnetMenuItemUI$MouseInputHandler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:866)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:650)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:381)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
 
 
Expected Result :   Below is the error free SQL statement.
 
select
srv.srvname,
srv.srvnetname,
srv.srvstatus,
v.name,
srv.srvsecmech,
srv.srvcost,
logs.name,
rem.remoteusername,
0          as isrole,
0          as isexternal,
rem.status as trusted 
from
master.dbo.sysservers srv 
left join master.dbo.sysremotelogins rem 
on(srv.srvid = rem.remoteserverid) 
left join master.dbo.spt_values v 
on(srv.srvclass = v.number and
v.type = 'X' and
v.name != 'access_server') 
left join master.dbo.syslogins logs 
on(rem.suid = logs.suid) 
where
srv.srvname = 'sample_RS' 
UNION
select
srv.srvname,
srv.srvnetname,
srv.srvstatus,
v.name,
srv.srvsecmech,
srv.srvcost,
ext.locext,
ext.remext,
ext.isrole as isrole,
1          as isexternal,
0          as trusted 
from
master.dbo.sysservers srv 
left join master.dbo.spt_values v 
on(srv.srvclass = v.number and
v.type = 'X' and
v.name != 'access_server'),
( select
s.srvid        as id,
l.name         as locext,
a.object_cinfo as remext,
0              as isrole 
from
master.dbo.sysattributes a,
master.dbo.sysservers s,
master.dbo.syslogins l 
WHERE
a.class = 9 AND
a.object_type = 'EL' AND
a.object_info1 = s.srvid AND
a.object = l.suid 
UNION
select
s.srvid        as id,
null           as locext,
a.object_cinfo as remext,
0              as isrole 
from
master.dbo.sysattributes a,
master.dbo.sysservers s 
WHERE
a.class = 9 AND
a.object_type = 'EL' AND
a.object_info1 = s.srvid AND
a.object_info2 = -1 AND
a.object = -1 
UNION
select
s.srvid        as id,
r.name         as locext,
a.object_cinfo as remext,
1              as isrole 
FROM
master.dbo.sysattributes a,
master.dbo.sysservers s,
master.dbo.syssrvroles r 
WHERE
a.class = 9 AND
a.object_type = 'EL' AND
a.object_info1 = s.srvid AND
a.object_info2 = r.srid ) ext 
where
srv.srvid = ext.id and
srv.srvname = 'sample_RS'
1 attachment

Issue #14783

Closed
Fixed
Resolved 2016-10-19T04:51:08Z
 
 
Completion
No due date
No fixed build
No time estimate

About AquaClusters Privacy Policy Support Version - 19.0.2-4 AquaFold, Inc Copyright © 2007-2017