|
|
@ -21,6 +21,9 @@ namespace Apewer.Source |
|
|
|
/// <remarks>当操作系统启用随机化内存分配时,此方法可能会产生异常。</remarks>
|
|
|
|
public static string[] ParsePassword(string path) => AccessHelper.GetPassword(path); |
|
|
|
|
|
|
|
/// <summary>数据库文件路径。</summary>
|
|
|
|
public virtual string Path { get; protected set; } |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
#if NETFRAMEWORK
|
|
|
@ -79,7 +82,33 @@ namespace Apewer.Source |
|
|
|
public override string[] StoreNames() => throw new InvalidOperationException(); |
|
|
|
|
|
|
|
/// <summary></summary>
|
|
|
|
public override string[] TableNames() => QueryStrings("select name from msysobjects where type=1 and flags = 0"); |
|
|
|
public override string[] TableNames() |
|
|
|
{ |
|
|
|
// QueryStrings("select name from msysobjects where type=1 and flags = 0");
|
|
|
|
Connect(); |
|
|
|
var schema = _conn.GetSchema("Tables"); |
|
|
|
using (var query = new Query(schema)) |
|
|
|
{ |
|
|
|
var json = query.ToJson(); |
|
|
|
var names = new List<string>(); |
|
|
|
for (var i = 0; i < query.Rows; i++) |
|
|
|
{ |
|
|
|
var type = query.Text(i, "TABLE_TYPE"); |
|
|
|
var name = query.Text(i, "TABLE_NAME"); |
|
|
|
switch (type) |
|
|
|
{ |
|
|
|
case "ACCESS TABLE": |
|
|
|
case "SYSTEM TABLE": |
|
|
|
break; |
|
|
|
case "TABLE": |
|
|
|
names.Add(name); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
names.Sort(); |
|
|
|
return names.ToArray(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary></summary>
|
|
|
|
public override string Insert(object record, string table = null, bool adjust = true) |
|
|
@ -494,12 +523,18 @@ namespace Apewer.Source |
|
|
|
/// <summary>创建 Access 类的新实例。</summary>
|
|
|
|
/// <exception cref="FileNotFoundException"></exception>
|
|
|
|
public AccessJet4(string path, string pass = null, string jo = null, Timeout timeout = null) |
|
|
|
: base(GenerateCS(JetOleDB4, path, pass, jo), timeout) { } |
|
|
|
: base(GenerateCS(JetOleDB4, path, pass, jo), timeout) |
|
|
|
{ |
|
|
|
Path = path; |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>使用连接字符串创建数据库连接实例。</summary>
|
|
|
|
/// <exception cref="ArgumentNullException"></exception>
|
|
|
|
/// <exception cref="ArgumentException"></exception>
|
|
|
|
public AccessJet4(IDbConnection connection, Timeout timeout = null) : base(connection, timeout) { } |
|
|
|
public AccessJet4(IDbConnection connection, Timeout timeout = null) : base(connection, timeout) |
|
|
|
{ |
|
|
|
Path = (connection as Access)?.Path; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
@ -512,12 +547,18 @@ namespace Apewer.Source |
|
|
|
/// <summary>创建 Access 类的新实例。</summary>
|
|
|
|
/// <exception cref="FileNotFoundException"></exception>
|
|
|
|
public AccessAce12(string path, string pass = null, string jo = null, Timeout timeout = null) |
|
|
|
: base(GenerateCS(AceOleDB12, path, pass, jo), timeout) { } |
|
|
|
: base(GenerateCS(AceOleDB12, path, pass, jo), timeout) |
|
|
|
{ |
|
|
|
Path = path; |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>使用连接字符串创建数据库连接实例。</summary>
|
|
|
|
/// <exception cref="ArgumentNullException"></exception>
|
|
|
|
/// <exception cref="ArgumentException"></exception>
|
|
|
|
public AccessAce12(IDbConnection connection, Timeout timeout = null) : base(connection, timeout) { } |
|
|
|
public AccessAce12(IDbConnection connection, Timeout timeout = null) : base(connection, timeout) |
|
|
|
{ |
|
|
|
Path = (connection as Access)?.Path; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|