Database 如何使用Delphi应用程序在MS Access数据库中创建视图,而无需在PC上安装MSAccess?
我想在MS Access上创建视图定义。我使用了以下CREATE VIEW语句:Database 如何使用Delphi应用程序在MS Access数据库中创建视图,而无需在PC上安装MSAccess?,database,delphi,ms-access,view,Database,Delphi,Ms Access,View,我想在MS Access上创建视图定义。我使用了以下CREATE VIEW语句: SELECT MFP.FollowUpPlan_Id, MFP.FollowUpPlan_Name AS PlanName, DFP.Sequence_No AS SequenceNo, MFS.FollowUpSchedule_Name AS ScheduleName FROM MAS_FollowUp_Plan AS MFP, DET_FollowUp_P
SELECT
MFP.FollowUpPlan_Id,
MFP.FollowUpPlan_Name AS PlanName,
DFP.Sequence_No AS SequenceNo,
MFS.FollowUpSchedule_Name AS ScheduleName
FROM
MAS_FollowUp_Plan AS MFP,
DET_FollowUp_Plan AS DFP,
MAS_FollowUp_Schedule AS MFS
WHERE
(((MFP.FollowUpPlan_Id)=DFP.FollowUpPlan_Id) AND
((DFP.FollowUpSchedule_Id)=MFS.FollowUpSchedule_Id)) AND
MFP.is_Deleted = FALSE AND
DFP.is_Deleted = false
ORDER BY
MFP.FollowUpPlan_Id, DFP.Sequence_No;
但它抛出了一个错误:
Only Simple Select Queries are allowed in view.
请帮忙,提前谢谢。。它会让你注意到复数视图的错误
在FROM中有多个表是一种连接方式
或者通过,
或者在FROM中只有一个表,并且没有联接。
我记得在过去,我做了比现在更多的访问工作,在一个大型查询中看到了这一点,其中有一个表select,还有一个orderby
,所以这是你最好做的事
如果添加参数或子选择,则为。Access也不喜欢视图中的视图,但在您的视图中并非如此。正如Jeroen所解释的,这里的问题是Access的限制“创建视图”语句。在这种情况下,可以改用创建过程。它将创建db的QueryDefs集合的新成员,以便从Access用户界面中显示为新的命名查询 下面的语句适用于我使用VBScript中的ADO。从前面的Delphi问题来看,我的理解是Delphi也可以使用ADO,所以我相信这也适用于您
CREATE PROCEDURE ViewSubstitute AS
SELECT
MFP.FollowUpPlan_Id,
MFP.FollowUpPlan_Name AS PlanName,
DFP.Sequence_No AS SequenceNo,
MFS.FollowUpSchedule_Name AS ScheduleName
FROM
(MAS_FollowUp_Plan AS MFP
INNER JOIN DET_FollowUp_Plan AS DFP
ON MFP.FollowUpPlan_Id = DFP.FollowUpPlan_Id)
INNER JOIN MAS_FollowUp_Schedule AS MFS
ON DFP.FollowUpSchedule_Id = MFS.FollowUpSchedule_Id
WHERE
MFP.is_Deleted=False AND DFP.is_Deleted=False
ORDER BY
MFP.FollowUpPlan_Id,
DFP.Sequence_No;
在Delphi中将变量olevarCatalog,cmd声明为OleVariant,使用ComObj
olevarCatalog := CreateOleObject('ADOX.Catalog');
olevarCatalog.create(YourConnectionString); //This Will create MDB file.
// Using ADO Query(CREATE TABLE TABLEName....) add the required Tables.
// To Insert View Definition on MDB file.
cmd := CreateOleObject('ADODB.Command');
cmd.CommandType := cmdText;
cmd.CommandText := 'ANY Kind of SELECT Query(JOIN, OrderBy is also allowed)';
olevarCatalog.Views.Append('Name of View',cmd);
cmd := null;
这是使用Delphi创建MS ACCESS File.MDB和视图的最佳方法。尝试从查询中删除部分顺序,并在从该视图中选择时使用它,例如从视图中选择*按以下顺序UPPLAN\u Id,SequenceNo。查询而不是视图更合适吗?它将允许更多的sql方式!;感谢您教我Access有创建过程,它非常类似于创建视图,但没有一些限制。