Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
67fe8ca1
D
dbeaver
项目概览
suliangchun
/
dbeaver
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dbeaver
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
67fe8ca1
编写于
12月 16, 2017
作者:
S
serge-rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#2646 Global triggers for Generic driver (SQL Server)
上级
f5577950
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
51 addition
and
17 deletion
+51
-17
nls/bundles/org.jkiss.dbeaver.ext.generic.nls/OSGI-INF/l10n/bundle_ru.properties
...beaver.ext.generic.nls/OSGI-INF/l10n/bundle_ru.properties
+4
-0
plugins/org.jkiss.dbeaver.ext.generic/OSGI-INF/l10n/bundle.properties
...jkiss.dbeaver.ext.generic/OSGI-INF/l10n/bundle.properties
+1
-0
plugins/org.jkiss.dbeaver.ext.generic/plugin.xml
plugins/org.jkiss.dbeaver.ext.generic/plugin.xml
+3
-0
plugins/org.jkiss.dbeaver.ext.generic/src/org/jkiss/dbeaver/ext/generic/model/GenericDataSource.java
...rg/jkiss/dbeaver/ext/generic/model/GenericDataSource.java
+5
-0
plugins/org.jkiss.dbeaver.ext.generic/src/org/jkiss/dbeaver/ext/generic/model/GenericObjectContainer.java
...iss/dbeaver/ext/generic/model/GenericObjectContainer.java
+19
-6
plugins/org.jkiss.dbeaver.ext.generic/src/org/jkiss/dbeaver/ext/generic/model/GenericStructContainer.java
...iss/dbeaver/ext/generic/model/GenericStructContainer.java
+2
-0
plugins/org.jkiss.dbeaver.ext.mssql/src/org/jkiss/dbeaver/ext/mssql/model/SQLServerMetaModel.java
...org/jkiss/dbeaver/ext/mssql/model/SQLServerMetaModel.java
+17
-11
未找到文件。
nls/bundles/org.jkiss.dbeaver.ext.generic.nls/OSGI-INF/l10n/bundle_ru.properties
浏览文件 @
67fe8ca1
...
...
@@ -23,6 +23,10 @@ tree.reference.node.name=\u0421\u0441\u044B\u043B\u043A\u0430
tree.reference_columns.node.name
=
\u
041A
\u
043E
\u
043B
\u
043E
\u
043D
\u
043A
\u0438
\u0441\u0441\u
044B
\u
043B
\u
043A
\u0438
tree.sub_table.node.name
=
\u
041F
\u
043E
\u0434\u0442\u0430\u0431\u
043B
\u0438\u0446\u0430
tree.procedure_columns.node.name
=
\u
041A
\u
043E
\u
043B
\u
043E
\u
043D
\u
043A
\u0438
\u
043F
\u0440\u
043E
\u0446\u0435\u0434\u0443\u0440\u
044B
tree.triggers.node.name
=
\u0422\u0440\u0438\u0433\u0433\u0435\u0440\u
044B
tree.trigger.node.name
=
\u0422\u0440\u0438\u0433\u0433\u0435\u0440
tree.tableTriggers.node.name
=
\u0422\u0440\u0438\u0433\u0433\u0435\u0440\u
044B
\u0442\u0430\u0431\u
043B
\u0438\u0446
meta.org.jkiss.dbeaver.ext.generic.model.GenericTable.tableType.name
=
\u0422\u0438\u
043F
\u0422\u0430\u0431\u
043B
\u0438\u0446\u
044B
meta.org.jkiss.dbeaver.ext.generic.model.GenericTable.catalog.name
=
\u
041A
\u0430\u0442\u0430\u
043B
\u
043E
\u0433
meta.org.jkiss.dbeaver.ext.generic.model.GenericCatalog.name.name
=
\u0418\u
043C
\u
044F
\u
043A
\u0430\u0442\u0430\u
043B
\u
043E
\u0433\u0430
...
...
plugins/org.jkiss.dbeaver.ext.generic/OSGI-INF/l10n/bundle.properties
浏览文件 @
67fe8ca1
...
...
@@ -29,6 +29,7 @@ tree.sequences.node.name=Sequences
tree.sequence.node.name
=
Sequence
tree.triggers.node.name
=
Triggers
tree.trigger.node.name
=
Trigger
tree.tableTriggers.node.name
=
Table Triggers
tree.dataTypes.node.name
=
Data Types
tree.dataType.node.name
=
Data Type
...
...
plugins/org.jkiss.dbeaver.ext.generic/plugin.xml
浏览文件 @
67fe8ca1
...
...
@@ -98,6 +98,9 @@
<folder
type=
"org.jkiss.dbeaver.ext.generic.model.GenericTrigger"
label=
"%tree.triggers.node.name"
icon=
"#triggers"
description=
"Global triggers"
visibleIf=
"object.dataSource.metaModel.supportsDatabaseTriggers(object.dataSource)"
>
<items
label=
"%tree.trigger.node.name"
path=
"trigger"
property=
"triggers"
icon=
"#trigger"
/>
</folder>
<folder
type=
"org.jkiss.dbeaver.ext.generic.model.GenericTrigger"
label=
"%tree.tableTriggers.node.name"
icon=
"#triggers"
description=
"All table triggers"
visibleIf=
"object.dataSource.metaModel.supportsTriggers(object.dataSource)"
>
<items
label=
"%tree.trigger.node.name"
path=
"trigger"
property=
"tableTriggers"
icon=
"#trigger"
/>
</folder>
<folder
type=
"org.jkiss.dbeaver.model.struct.DBSDataType"
label=
"%tree.dataTypes.node.name"
icon=
"#data_types"
description=
"Global data types"
>
<items
label=
"%tree.dataType.node.name"
path=
"dataType"
property=
"dataTypes"
icon=
"#data_type"
/>
</folder>
...
...
plugins/org.jkiss.dbeaver.ext.generic/src/org/jkiss/dbeaver/ext/generic/model/GenericDataSource.java
浏览文件 @
67fe8ca1
...
...
@@ -383,6 +383,11 @@ public class GenericDataSource extends JDBCDataSource
return
structureContainer
==
null
?
null
:
structureContainer
.
getTriggers
(
monitor
);
}
@Override
public
Collection
<?
extends
GenericTrigger
>
getTableTriggers
(
DBRProgressMonitor
monitor
)
throws
DBException
{
return
structureContainer
==
null
?
null
:
structureContainer
.
getTableTriggers
(
monitor
);
}
@Override
public
void
initialize
(
@NotNull
DBRProgressMonitor
monitor
)
throws
DBException
...
...
plugins/org.jkiss.dbeaver.ext.generic/src/org/jkiss/dbeaver/ext/generic/model/GenericObjectContainer.java
浏览文件 @
67fe8ca1
...
...
@@ -312,11 +312,23 @@ public abstract class GenericObjectContainer implements GenericStructContainer,D
@Override
public
Collection
<?
extends
GenericTrigger
>
getTriggers
(
DBRProgressMonitor
monitor
)
throws
DBException
{
if
(
triggers
==
null
)
{
loadTriggers
(
monitor
);
triggers
=
loadTriggers
(
monitor
);
}
return
triggers
;
}
@Override
public
Collection
<?
extends
GenericTrigger
>
getTableTriggers
(
DBRProgressMonitor
monitor
)
throws
DBException
{
List
<
GenericTrigger
>
tableTriggers
=
new
ArrayList
<>();
for
(
GenericTable
table
:
getTables
(
monitor
))
{
Collection
<?
extends
GenericTrigger
>
tt
=
table
.
getTriggers
(
monitor
);
if
(!
CommonUtils
.
isEmpty
(
tt
))
{
tableTriggers
.
addAll
(
tt
);
}
}
return
tableTriggers
;
}
@Association
public
Collection
<?
extends
DBSDataType
>
getDataTypes
(
DBRProgressMonitor
monitor
)
throws
DBException
{
return
getDataSource
().
getDataTypes
(
monitor
);
...
...
@@ -409,17 +421,18 @@ public abstract class GenericObjectContainer implements GenericStructContainer,D
}
}
private
synchronized
void
loadTriggers
(
DBRProgressMonitor
monitor
)
private
synchronized
List
<?
extends
GenericTrigger
>
loadTriggers
(
DBRProgressMonitor
monitor
)
throws
DBException
{
triggers
=
dataSource
.
getMetaModel
().
loadTriggers
(
monitor
,
this
,
null
);
List
<?
extends
GenericTrigger
>
triggers
=
dataSource
.
getMetaModel
().
loadTriggers
(
monitor
,
this
,
null
);
// Order procedures
if
(
triggers
==
null
)
{
triggers
=
new
ArrayList
<>();
if
(
t
his
.
t
riggers
==
null
)
{
t
his
.
t
riggers
=
new
ArrayList
<>();
}
else
{
DBUtils
.
orderObjects
(
triggers
);
DBUtils
.
orderObjects
(
t
his
.
t
riggers
);
}
return
triggers
;
}
}
plugins/org.jkiss.dbeaver.ext.generic/src/org/jkiss/dbeaver/ext/generic/model/GenericStructContainer.java
浏览文件 @
67fe8ca1
...
...
@@ -72,6 +72,8 @@ public interface GenericStructContainer extends DBSObjectContainer, DBSProcedure
Collection
<?
extends
GenericTrigger
>
getTriggers
(
DBRProgressMonitor
monitor
)
throws
DBException
;
Collection
<?
extends
GenericTrigger
>
getTableTriggers
(
DBRProgressMonitor
monitor
)
throws
DBException
;
Collection
<?
extends
DBSDataType
>
getDataTypes
(
DBRProgressMonitor
monitor
)
throws
DBException
;
...
...
plugins/org.jkiss.dbeaver.ext.mssql/src/org/jkiss/dbeaver/ext/mssql/model/SQLServerMetaModel.java
浏览文件 @
67fe8ca1
...
...
@@ -75,19 +75,25 @@ public class SQLServerMetaModel extends GenericMetaModel implements DBCQueryTran
@Override
public
List
<?
extends
GenericTrigger
>
loadTriggers
(
DBRProgressMonitor
monitor
,
@NotNull
GenericStructContainer
container
,
@Nullable
GenericTable
table
)
throws
DBException
{
assert
table
!=
null
;
try
(
JDBCSession
session
=
DBUtils
.
openMetaSession
(
monitor
,
container
.
getDataSource
(),
"Read triggers"
))
{
String
schema
=
getSystemSchema
(
getServerType
(
container
.
getDataSource
()));
String
catalog
=
DBUtils
.
getQuotedIdentifier
(
table
.
getCatalog
());
String
query
=
"SELECT triggers.name FROM "
+
catalog
+
"."
+
schema
+
".sysobjects tables, "
+
catalog
+
"."
+
schema
+
".sysobjects triggers\n"
+
"WHERE triggers.type = 'TR'\n"
+
"AND triggers.deltrig = tables.id\n"
+
"AND user_name(tables.uid) = ? AND tables.name = ?"
;
try
(
JDBCPreparedStatement
dbStat
=
session
.
prepareStatement
(
query
))
{
dbStat
.
setString
(
1
,
table
.
getSchema
().
getName
());
dbStat
.
setString
(
2
,
table
.
getName
());
String
catalog
=
DBUtils
.
getQuotedIdentifier
(
container
.
getCatalog
());
StringBuilder
query
=
new
StringBuilder
(
"SELECT triggers.name FROM "
+
catalog
+
"."
+
schema
+
".sysobjects triggers"
);
if
(
table
!=
null
)
{
query
.
append
(
","
).
append
(
catalog
).
append
(
"."
).
append
(
schema
).
append
(
".sysobjects tables"
);
}
query
.
append
(
"\nWHERE triggers.type = 'TR'\n"
);
if
(
table
!=
null
)
{
query
.
append
(
"AND triggers.deltrig = tables.id\n"
+
"AND user_name(tables.uid) = ? AND tables.name = ?"
);
}
try
(
JDBCPreparedStatement
dbStat
=
session
.
prepareStatement
(
query
.
toString
()))
{
if
(
table
!=
null
)
{
dbStat
.
setString
(
1
,
table
.
getSchema
().
getName
());
dbStat
.
setString
(
2
,
table
.
getName
());
}
List
<
GenericTrigger
>
result
=
new
ArrayList
<>();
try
(
JDBCResultSet
dbResult
=
dbStat
.
executeQuery
())
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录