尝试在表的PowerApps中使用Patch函数时收到SQL INSERT错误,该表的外键依赖于尚未打补丁的第二个表的主键。
有道理。如何允许我修补具有空白依赖关系的表?那怎么办呢?
这是所有5个表的FK / PK依赖项:
到目前为止,我已经尝试过:
还有其他想法吗?我特别需要示例函数。 谢谢
答案 0 :(得分:2)
Patch function将返回更新(或插入)的对象,并填写服务器中的所有字段,因此您可以使用存储它,并稍后使用它来检索服务器生成的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"
}
);
答案 1 :(得分:-1)
只想出一个:
您必须先对这些补丁进行修补,以便首先对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: " "
}
)
);