尝试在表上的PowerApps中使用Patch函数时,我收到SQL INSERT错误,该表的外键依赖于尚未修补的第二个表的主键 .
这是有道理的 . 我怎么能被允许修补一个空白依赖的表?那怎么办呢?
以下是所有5个表的FK / PK依赖关系:
到目前为止,我已经尝试过:
在FK列上允许NULL
从FK UPDATE和DELETE中删除了CASCADE
还有什么想法?我特别需要示例函数 . 谢谢
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" } );
刚想出这个:
您必须按顺序修补这些,以便首先修补PK,然后通过Last()函数抓取并插入(作为FK)到下面的修补程序中 .
希望这有助于其他人 .
Example :
//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: " " } ) );
2 回答
Patch function将返回更新的(或插入的)对象,其中包含填写的服务器中的任何字段,因此您可以使用它存储并稍后使用它来检索服务器生成的ID . 使用Last大部分时间都可以使用,但如果同时在应用程序中有两个用户,或者表格开始变得太大(并且不是所有的一次都会在本地缓存),则可能会失败 .
刚想出这个:
您必须按顺序修补这些,以便首先修补PK,然后通过Last()函数抓取并插入(作为FK)到下面的修补程序中 .
希望这有助于其他人 .
Example :