feat: add Microsoft Access database support
Add Access as a new database type with agent-based connectivity, UCanAccess JDBC URL parsing, backtick identifier quoting, file-path connection dialog, and PNG icons for Access/GoldenDB/Vastbase.
This commit is contained in:
1 parent
381c92ff53
commit
1bcfd02de1
26 files changed
+185
-22
No files matched your search
@@ -239,6 +239,7 @@ impl AppState {
|
||||
| DatabaseType::Kylin
|
||||
| DatabaseType::Sundb
|
||||
| DatabaseType::Tdengine
|
||||
| DatabaseType::Access
|
||||
| DatabaseType::Gaussdb => {
|
||||
let mut client =
|
||||
self.agent_manager.spawn(&db_config.db_type, db_config.driver_profile.as_deref()).await?;
|
||||
@@ -437,6 +438,7 @@ pub fn agent_connect_params(config: &ConnectionConfig, host: &str, port: u16, da
|
||||
"username": config.username,
|
||||
"password": config.password,
|
||||
"url_params": config.url_params.as_deref().unwrap_or(""),
|
||||
"connection_string": config.connection_string.as_deref().unwrap_or(""),
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ pub fn agent_key(db_type: &DatabaseType, driver_profile: Option<&str>) -> Option
|
||||
DatabaseType::Gaussdb => Some("gaussdb"),
|
||||
DatabaseType::MongoDb => Some("mongodb"),
|
||||
DatabaseType::Tdengine => Some("tdengine"),
|
||||
DatabaseType::Access => Some("access"),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
@@ -44,6 +45,7 @@ pub fn is_single_connection_pool(db_type: &DatabaseType) -> bool {
|
||||
| DatabaseType::Highgo
|
||||
| DatabaseType::Vastbase
|
||||
| DatabaseType::Goldendb
|
||||
| DatabaseType::Access
|
||||
| DatabaseType::Jdbc
|
||||
)
|
||||
}
|
||||
|
||||
@@ -120,6 +120,7 @@ pub enum DatabaseType {
|
||||
Vastbase,
|
||||
Goldendb,
|
||||
Gaussdb,
|
||||
Access,
|
||||
#[serde(rename = "h2")]
|
||||
H2,
|
||||
Snowflake,
|
||||
@@ -213,6 +214,7 @@ impl ConnectionConfig {
|
||||
DatabaseType::Sqlite | DatabaseType::DuckDb => {
|
||||
format!("{}?mode=rwc", self.host)
|
||||
}
|
||||
DatabaseType::Access => self.host.clone(),
|
||||
DatabaseType::Redis => {
|
||||
let scheme = if self.ssl { "rediss" } else { "redis" };
|
||||
format!("{scheme}://{host}:{port}/")
|
||||
@@ -284,6 +286,7 @@ impl ConnectionConfig {
|
||||
DatabaseType::Sqlite | DatabaseType::DuckDb => {
|
||||
format!("{}?mode=rwc", self.host)
|
||||
}
|
||||
DatabaseType::Access => self.host.clone(),
|
||||
DatabaseType::Redis => {
|
||||
let scheme = if self.ssl { "rediss" } else { "redis" };
|
||||
if self.username.is_empty() && self.password.is_empty() {
|
||||
|
||||
Reference in new issue
Block a user