尝试在 PowerApps 中对表使用 Patch 函数时收到 SQL INSERT 错误,该表具有依赖于尚未修补的第二个表的主键的外键。
这是有道理的。如何允许我修补具有空白依赖项的表?那么怎么做呢?
以下是所有 5 个表的 FK/PK 依赖项:
到目前为止,我已经尝试过:
- 在 FK 列上允许 NULL
- 从 FK UPDATE 和 DELETE 中删除了 CASCADE
还有什么想法吗?我特别需要示例函数。谢谢
尝试在 PowerApps 中对表使用 Patch 函数时收到 SQL INSERT 错误,该表具有依赖于尚未修补的第二个表的主键的外键。
这是有道理的。如何允许我修补具有空白依赖项的表?那么怎么做呢?
以下是所有 5 个表的 FK/PK 依赖项:
到目前为止,我已经尝试过:
还有什么想法吗?我特别需要示例函数。谢谢
Patch 函数将返回已更新(或插入)的对象,其中填写了服务器中的任何字段,因此您可以使用存储它并稍后使用来检索服务器生成的 id。使用Last在大多数情况下都可以使用,但如果您在应用程序中同时有两个用户,或者如果表开始变得太大(并且并非所有这些都将一次在本地缓存),则可能会失败。
Set(
patchResult,
Patch(
'[dbo].[dateTable]',
Defaults('[dbo].[dateTable]'),
{
siteId: varSiteID,
readingDate: Now()
}));
//Patch values into readingTable
Patch(
'[dbo].[readingTable]',
Defaults('[dbo].[readingTable]'),
{
dateId: patchResult.dateId,
unitNum: 1,
xzyName: 1,
avgJJk: 1,
prevLLk: 1,
readingNotes: "This is awesome"
}
);
刚想出来这个:
您必须先修补这些,以便首先修补 PK,然后通过 Last() 函数抓取并插入(作为 FK)到后续修补程序中。
希望这可以帮助其他人。
示例:
//Patch values into dateTable
Patch('[dbo].[dateTable]',
Defaults('[dbo].[dateTable]'),
{
siteId: varSiteID,
readingDate: Now()
}
);
//Patch values into readingTable
Patch('[dbo].[readingTable]',
Defaults(
'[dbo].[readingTable]'),
{
dateId: Last('[dbo].[dateTable]').dateId, <--BINGO
unitNum: 1,
xzyName: 1,
zyxNum: 1,
xkdFactor: 1,
supplyXya: 1,
supplyUio: 1,
sortNum: 1,
currentUys: 1,
avgJJk: 1,
prevLLk: 1,
readingNotes: "This is awesome"
}
);
//Patch values into the imageTable
ForAll(
colImageGallery,
Patch(
'[dbo].[imageTable]',
Defaults('[dbo].[imageTable]'),
{
readingId: Last('[dbo].[readingTable]').readingId, <--BINGO
photo: image,
photoNotes: " "
}
)
);