gvsig-mssqlserver / trunk / org.gvsig.mssqlserver / org.gvsig.mssqlserver.provider / src / main / java / org / gvsig / mssqlserver / dal / operations / MSSQLServerCanModifyTableOperation.java @ 5
History | View | Annotate | Download (1.74 KB)
1 | 5 | jjdelcerro | package org.gvsig.mssqlserver.dal.operations; |
---|---|---|---|
2 | |||
3 | import org.gvsig.fmap.dal.store.jdbc2.spi.operations.*; |
||
4 | import java.sql.Connection; |
||
5 | import java.sql.ResultSet; |
||
6 | import java.sql.SQLException; |
||
7 | import java.sql.Statement; |
||
8 | import org.gvsig.fmap.dal.exception.DataException; |
||
9 | import org.gvsig.fmap.dal.store.jdbc.exception.JDBCSQLException; |
||
10 | import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper; |
||
11 | import org.gvsig.fmap.dal.store.jdbc2.JDBCUtils; |
||
12 | |||
13 | public class MSSQLServerCanModifyTableOperation extends CanModifyTableOperation { |
||
14 | |||
15 | public MSSQLServerCanModifyTableOperation(
|
||
16 | JDBCHelper helper |
||
17 | ) { |
||
18 | this(helper, null, null, null); |
||
19 | } |
||
20 | |||
21 | public MSSQLServerCanModifyTableOperation(
|
||
22 | JDBCHelper helper, |
||
23 | String dbName,
|
||
24 | String schemaName,
|
||
25 | String tableName
|
||
26 | ) { |
||
27 | super(helper,dbName,schemaName,tableName);
|
||
28 | } |
||
29 | |||
30 | @Override
|
||
31 | public boolean canModifyTable(Connection conn, |
||
32 | String dbName,
|
||
33 | String schemaName,
|
||
34 | String tableName
|
||
35 | ) throws DataException {
|
||
36 | |||
37 | String sql = "SELECT count(*) " + |
||
38 | "FROM fn_my_permissions('master.dbo.provincias_andalucia', 'OBJECT') " +
|
||
39 | "WHERE permission_name in ('UPDATE', 'INSERT', 'DELETE') AND subentity_name = ''";
|
||
40 | Statement st = null; |
||
41 | ResultSet rs = null; |
||
42 | try {
|
||
43 | st = conn.createStatement(); |
||
44 | rs = JDBCUtils.executeQuery(st, sql); |
||
45 | if (!rs.next()) {
|
||
46 | return false; |
||
47 | } |
||
48 | return rs.getInt(1)==3; |
||
49 | |||
50 | } catch (SQLException ex) { |
||
51 | throw new JDBCSQLException(ex); |
||
52 | } finally {
|
||
53 | JDBCUtils.closeQuietly(st); |
||
54 | JDBCUtils.closeQuietly(rs); |
||
55 | } |
||
56 | |||
57 | } |
||
58 | |||
59 | } |