将表从一个数据库克隆到另一个数据库Access、ODBC 和 C#

问题描述

通过 ODBC 和 C# 使用 Microsoft Access。以下查询正确克隆了同一数据库中的一个表(尽管主键信息已被剥离):

SELECT * INTO [NewTable] FROM [ExistingTable] WHERE 1=0;

要创建一个空白数据库,请执行以下操作:

// P/Invoke ODBCCP32.DLL::sqlConfigDataSource
enum RequestFlags : Int16
{
    // Comments from https://docs.microsoft.com/en-us/sql/odbc/reference/Syntax/sqlconfigdatasource-function
    ODBC_ADD_DSN = 1,// Add a new user data source
    ODBC_CONfig_DSN = 2,// Configure (modify) an existing user data source
    ODBC_REMOVE_DSN = 3,// Remove an existing user data source
    ODBC_ADD_SYS_DSN = 4,// Add a new system data source
    ODBC_CONfig_SYS_DSN = 5,// Modify an existing system data source
    ODBC_REMOVE_SYS_DSN = 6,// Remove an existing system data source
    ODBC_REMOVE_DEFAULT_DSN = 7     // Remove default data source specification section from system information
}

[DllImport("ODBCCP32.DLL",CharSet=CharSet.Unicode,SetLastError=true)]
static extern bool sqlConfigDataSource(UInt32 hwndParent,RequestFlags fRequest,string lpszDriver,string lpszAttributes);

// ...
string driver32 = "Microsoft Access Driver (*.mdb)";            // 32-bit
string driver64 = "Microsoft Access Driver (*.mdb,*.accdb)";   // 64-bit
string command = "CREATE_DB=C:\Tmp\MyCoolDB.mdb";
bool dbCreated = sqlConfigDataSource(0,RequestFlags.ODBC_ADD_DSN,driver32,command);

如何将表从一个数据库复制到另一个数据库,最好是使用原始 sql 或使用 ODBCCP32.DLL?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)