gpt4 book ai didi

ms-access - 在运行时创建数据库并在运行时将其注册为 DSN

转载 作者:行者123 更新时间:2023-12-01 05:42:59 26 4
gpt4 key购买 nike

我正在尝试在运行时创建一个 ACCESS DB,并使用以下代码在 ODBC.ini 中注册为 DSN:

BOOL fCreated;  
fCreated = SQLConfigDataSource(NULL,ODBC_ADD_DSN,
"Microsoft Access Driver (*.mdb)",
"CREATE_DB=.\\ATest.mdb General\0" );
printf("Database created : %d\n",fCreated);

BOOL ReturnResult = SQLConfigDataSource (NULL, ODBC_CONFIG_DSN,
"Microsoft Access Driver (*.mdb)",
"DSN=TESTDSN_DSN\00DBQ=.\\ATest.mdb\ \
00FIL=MSAccess\00Description=TESTDSN_database\00UID=\00");

printf("Database registered : %d\n",ReturnResult);

第一条语句返回 1 表明已创建 DB,但第二条语句返回 0 表明它无法在 ODBC.ini 中注册为 DataSourceName。谁能告诉我为什么会发生这种情况,因为路径和名称之类的一切都是正确的。

最佳答案

问题的评论中已经提到了这一点,但我想提供更多信息的答案:

与在某些机器上通过代码创建 DSN 不同,在将 Access 数据库的客户端中链接无 DSN(以编程方式)的表可能更容易。

如果客户端也是 MS Access,您可以使用 DoCmd.TransferDatabase 来完成。 :

Dim SourceDB As String
Dim SourceTable As String
Dim LocalTable As String

'path to the database that contains the original table
SourceDB = "C:\Your_Database.mdb"

'name of the original table in the source database
SourceTable = "Original_Table"

'name of the linked table in the local database
LocalTable = "Linked_Table"

DoCmd.TransferDatabase acLink, "Microsoft Access", SourceDB, acTable, SourceTable, LocalTable

关于ms-access - 在运行时创建数据库并在运行时将其注册为 DSN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4137393/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com