提交 59e991ca 编写于 作者: S Serge Rider

SQL Server model refactoring


Former-commit-id: 8689f6b1
上级 5f7258ff
......@@ -144,13 +144,11 @@ public class SQLServerUtils {
}
}
public static String extractSource(@NotNull DBRProgressMonitor monitor, @NotNull SQLServerDatabase database, @Nullable SQLServerSchema schema, @NotNull String objectName) throws DBException {
SQLServerDataSource dataSource = database.getDataSource();
String systemSchema = getSystemSchemaFQN(dataSource, database.getName(), SQLServerConstants.SQL_SERVER_SYSTEM_SCHEMA);
public static String extractSource(@NotNull DBRProgressMonitor monitor, @NotNull SQLServerSchema schema, @NotNull String objectName) throws DBException {
SQLServerDataSource dataSource = schema.getDataSource();
String systemSchema = getSystemSchemaFQN(dataSource, schema.getDatabase().getName(), SQLServerConstants.SQL_SERVER_SYSTEM_SCHEMA);
try (JDBCSession session = DBUtils.openMetaSession(monitor, dataSource, "Read source code")) {
String objectFQN = schema == null ?
DBUtils.getQuotedIdentifier(dataSource, objectName) :
DBUtils.getQuotedIdentifier(dataSource, schema.getName()) + "." + DBUtils.getQuotedIdentifier(dataSource, objectName);
String objectFQN = DBUtils.getQuotedIdentifier(dataSource, schema.getName()) + "." + DBUtils.getQuotedIdentifier(dataSource, objectName);
try (JDBCPreparedStatement dbStat = session.prepareStatement(systemSchema + ".sp_helptext '" + objectFQN + "'")) {
try (JDBCResultSet dbResult = dbStat.executeQuery()) {
StringBuilder sql = new StringBuilder();
......
......@@ -96,6 +96,7 @@ public class SQLServerDataType implements DBSDataType, SQLServerObject, DBPQuali
this.valueType = valueType;
}
@NotNull
@Override
public SQLServerDataSource getDataSource() {
return (SQLServerDataSource) owner.getDataSource();
......
......@@ -16,6 +16,7 @@
*/
package org.jkiss.dbeaver.ext.mssql.model;
import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.model.DBPNamedObject;
import org.jkiss.dbeaver.model.DBPObjectWithLongId;
import org.jkiss.dbeaver.model.struct.DBSObject;
......@@ -26,5 +27,6 @@ import org.jkiss.dbeaver.model.struct.DBSObject;
*/
public interface SQLServerObject extends DBPNamedObject, DBSObject, DBPObjectWithLongId
{
@NotNull
SQLServerDataSource getDataSource();
}
......@@ -137,7 +137,7 @@ public class SQLServerProcedure extends AbstractProcedure<SQLServerDataSource, S
"AS " + GeneralUtils.getDefaultLineSeparator() +
"SELECT 1";
} else {
this.body = SQLServerUtils.extractSource(monitor, getContainer().getDatabase(), getContainer(), getName());
this.body = SQLServerUtils.extractSource(monitor, getContainer(), getName());
}
}
return body;
......
......@@ -106,6 +106,7 @@ public class SQLServerSchema implements DBSSchema, DBPSaveableObject, DBPQualifi
return triggerCache;
}
@NotNull
@Override
public SQLServerDataSource getDataSource() {
return database.getDataSource();
......
......@@ -153,7 +153,7 @@ public class SQLServerView extends SQLServerTableBase implements DBSView
}
if (ddl == null) {
if (isPersisted()) {
ddl = SQLServerUtils.extractSource(monitor, getDatabase(), getSchema(), getName());
ddl = SQLServerUtils.extractSource(monitor, getSchema(), getName());
} else {
ddl = "CREATE VIEW " + this.getFullyQualifiedName(DBPEvaluationContext.DDL) + " AS\n";
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册