GithubHelp home page GithubHelp logo

Comments (12)

Ahoo-Wang avatar Ahoo-Wang commented on June 3, 2024 1

image
你可以直接定义 Type 的。

from smartsql.

Ahoo-Wang avatar Ahoo-Wang commented on June 3, 2024

现在也不需要修改代码呀。
因为 DbProvider 相对来说是比较稳定的,所以硬编码到代码层面了,所以我们我也不需要自己维护 providers。这样其实更方便了,只要写一个 DbProvider 名称就可以了。

from smartsql.

xiangxiren avatar xiangxiren commented on June 3, 2024

之前帮一个群友对接人大金仓数据库,就得在DbProvider里去添加东西。如果是通过配置文件配置,就不需要修改源码。

from smartsql.

Ahoo-Wang avatar Ahoo-Wang commented on June 3, 2024

为什么需要修改源码啊?

from smartsql.

Ahoo-Wang avatar Ahoo-Wang commented on June 3, 2024

https://smartsql.net/config/#database-%E5%AD%90%E6%A0%87%E7%AD%BE
image
image
直接填上这个就可以啦。

from smartsql.

xiangxiren avatar xiangxiren commented on June 3, 2024

image

这里的Name的值是不是得DbProvider.cs定义的常量里存在

public const String SQLSERVER = "SqlServer";
public const String MS_SQLSERVER = "MsSqlServer";
public const String MYSQL = "MySql";
public const String MYSQL_CONNECTOR = "MySqlConnector";
public const String POSTGRESQL = "PostgreSql";
public const String ORACLE = "Oracle";
public const String SQLITE = "SQLite";

同时DbProviderManager.cs里定义的常量存在对应的DbProvider

public static readonly DbProvider SQLSERVER_DBPROVIDER = new DbProvider
{
Name = DbProvider.SQLSERVER,
ParameterPrefix = "@",
Type = "System.Data.SqlClient.SqlClientFactory,System.Data.SqlClient",
SelectAutoIncrement = ";Select Scope_Identity();"
};
public static readonly DbProvider MS_SQLSERVER_DBPROVIDER = new DbProvider
{
Name = DbProvider.MS_SQLSERVER,
ParameterPrefix = "@",
Type = "Microsoft.Data.SqlClient.SqlClientFactory,Microsoft.Data.SqlClient",
SelectAutoIncrement = ";Select Scope_Identity();"
};
public static readonly DbProvider MYSQL_DBPROVIDER = new DbProvider
{
Name = DbProvider.MYSQL,
ParameterPrefix = "?",
Type = "MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data",
SelectAutoIncrement = ";Select Last_Insert_Id();"
};
public static readonly DbProvider MYSQL_CONNECTOR_DBPROVIDER = new DbProvider
{
Name = DbProvider.MYSQL_CONNECTOR,
ParameterPrefix = "?",
Type = "MySqlConnector.MySqlConnectorFactory,MySqlConnector",
SelectAutoIncrement = ";Select Last_Insert_Id();"
};
public static readonly DbProvider POSTGRESQL_DBPROVIDER = new DbProvider
{
Name = DbProvider.POSTGRESQL,
ParameterPrefix = "@",
Type = "Npgsql.NpgsqlFactory,Npgsql",
SelectAutoIncrement = "Returning *;"
};
public static readonly DbProvider ORACLE_DBPROVIDER = new DbProvider
{
Name = DbProvider.ORACLE,
ParameterPrefix = ":",
Type = "Oracle.ManagedDataAccess.Client.OracleClientFactory,Oracle.ManagedDataAccess",
SelectAutoIncrement = ""
};
public static readonly DbProvider SQLITE_DBPROVIDER = new DbProvider
{
Name = DbProvider.SQLITE,
ParameterPrefix = "@",
Type = "System.Data.SQLite.SQLiteFactory,System.Data.SQLite",
SelectAutoIncrement = ""
};

然后在构造函数里Add对应的Provider

private DbProviderManager()
{
_dbProviders.Add(DbProvider.SQLSERVER, SQLSERVER_DBPROVIDER);
_dbProviders.Add(DbProvider.MS_SQLSERVER, MS_SQLSERVER_DBPROVIDER);
_dbProviders.Add(DbProvider.POSTGRESQL, POSTGRESQL_DBPROVIDER);
_dbProviders.Add(DbProvider.MYSQL, MYSQL_DBPROVIDER);
_dbProviders.Add(DbProvider.MYSQL_CONNECTOR, MYSQL_CONNECTOR_DBPROVIDER);
_dbProviders.Add(DbProvider.ORACLE, ORACLE_DBPROVIDER);
_dbProviders.Add(DbProvider.SQLITE, SQLITE_DBPROVIDER);
}

from smartsql.

Ahoo-Wang avatar Ahoo-Wang commented on June 3, 2024

你是不是没有安装
SmartSql.Schema,所以没有看到智能提示?

from smartsql.

xiangxiren avatar xiangxiren commented on June 3, 2024

明白了……

from smartsql.

xiangxiren avatar xiangxiren commented on June 3, 2024

你是不是没有安装
SmartSql.Schema,所以没有看到智能提示?

装了啊,有提示。但这个地方一般就想着设置一个Name。认为对应的Type都是在代码里定义好了的。

from smartsql.

Ahoo-Wang avatar Ahoo-Wang commented on June 3, 2024

应用还有人跟你有相同的问题,有兴趣的话可以一起参与一下文档共建。https://github.com/Smart-Kit/SmartSql-Docs

from smartsql.

xiangxiren avatar xiangxiren commented on June 3, 2024

ok

from smartsql.

Ahoo-Wang avatar Ahoo-Wang commented on June 3, 2024

ok

没啥其他问题的话就把issue关掉吧。

from smartsql.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.