使用C ++ SQL添加与Microsoft Access表的关系

时间:2015-10-23 17:42:06

标签: c++ sql ms-access ado dao

我正在尝试使用C ++(基于MFC)(通过ODBC)在以下SQL命令中在两个Microsoft Access表之间添加CONSTRAINT / RELATIONSHIP:

ALTER TABLE [JobSettingsReporting] 
           ADD CONSTRAINT FK_PerEntry 
           FOREIGN KEY (JobSetID) 
           REFERENCES JobSettingsEntry(JobSetID) 
           ON UPDATE CASCADE 
           ON DELETE CASCADE

我试着这样做:

CDatabase db;
db.OpenEx(App().GetDBConnectString());
db.ExecuteSQL(strSQL);
db.Close();

其中strSQL是上面的查询。我收到了错误:

Syntax error in CONSTRAINT clause.

似乎问题在于“ON UPDATE CASCADE”和“ON DELETE CASCADE”组件。当我在Microsoft Access中使用查询设计工具(或在VB中)时,我得到相同的错误。

但是,当我在Microsoft Access中的VB中执行以下操作时,它可以工作:

Dim cn As ADODB.Connection 'For action queries
Set cn = CurrentProject.Connection
cn.Execute "ALTER TABLE [JobSettingsReporting] 
                ADD CONSTRAINT FK_PerEntry 
                    FOREIGN KEY (JobSetID) 
                    REFERENCES JobSettingsEntry(JobSetID)
                ON UPDATE CASCADE 
                ON DELETE CASCADE"

直接使用查询窗口时,此命令似乎也适用于SQL Server Express。

据我所知,我需要使用Jet / ADO在C ++中发出此命令才能使用它,但我找不到语法。我需要以编程方式添加此关系,以便更新所有已部署计算机上的数据库。

任何帮助将不胜感激。

0 个答案:

没有答案