我想创建一个SQL连接并将数据从应用程序(“呼出”模板)导入SQL数据库。我创建了一个SQL连接并尝试将数据导入其中,但出现此错误。
CreatedOnDateTime:指定的列是由服务器生成的,无法指定
我确实创建了CreatedOnDateTime
列,但我猜想它的数据类型不相同或其他。
我在哪里可以查看通过SQL连接将哪些字段和数据类型从PowerApps导入到PowerApps中的SQL表?
谢谢您的帮助!
答案 0 :(得分:0)
总体而言,在PowerApps中没有简单的方法可以找到数据源的结构(请为此在PowerApps Ideas board中创建一个新的功能请求)。有一种复杂的查找方法,我将在这里进行介绍。
但是对于您的特定问题,这是一个SQL表的架构,它将与PowerApps中数据源的架构相匹配:
CREATE TABLE PowerAppsTest.StackOverflow51847975 (
PrimaryID BIGINT PRIMARY KEY,
[Id] NVARCHAR(MAX),
[Message] NVARCHAR(MAX),
CreatedOnDateTime NVARCHAR(MAX),
CreatorEmail NVARCHAR(MAX),
CreatorName NVARCHAR(MAX),
RecipientEmail NVARCHAR(MAX),
RecipientName NVARCHAR(MAX),
ShoutoutType NVARCHAR(MAX),
[Image] IMAGE
)
现在是一般情况。您已被警告说这令人费解,所以后果自负:)
该应用程序将以.msapp扩展名保存,但基本上是一个.zip文件。如果您使用的是Windows,则可以将其重命名以将扩展名更改为.zip,然后就可以解压缩并提取描述该应用程序的文件。
其中一个文件Entities.json除其他外,包含应用程序中使用的所有数据源的架构定义。该文件是一个巨大的JSON文件,并且删除了所有空格,因此您可能想使用一些在线工具来格式化(或整理)JSON以使其更容易阅读。完成此操作后,您可以在自己喜欢的文本编辑器中打开文件(任何比记事本更好的文件都应该能够处理它)。
在打开文件的情况下,在JSON根目录中搜索属性为“名称”且值等于数据源名称的条目。例如,在喊叫应用程序的情况下,数据源称为“喊叫”,因此搜索
"Name": "Shoutout"
如果在打开JSON文件之前没有进行漂亮的打印,则必须删除该空间。该对象应该是描述数据源的对象,并且具有一个名为DataEntityMetadataJson
的属性,该属性具有数据源模式,格式为JSON字符串。再次在“喊叫”示例中,这是值:
"{\"name\":\"Shoutout\",\"title\":\"Shoutout\",\"x-ms-permission\":\"read-write\",\"schema\":{\"type\":\"array\",\"items\":{...
请注意,它的打印质量也不佳。您首先需要解码该字符串,然后再次对其进行漂亮的打印,最后您将得到如下结果:
{
"name": "Shoutout",
"title": "Shoutout",
"x-ms-permission": "read-write",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"PrimaryID": {
"type": "number",
"format": "double",
...
},
"Message": {
"type": "string",
...
},
"Image": {
"type": "string",
"format": "uri",
"x-ms-media-kind": "image",
...
},
"Id": {
"type": "string",
...
},
"CreatedOnDateTime": {
"type": "string",
...
},
...
这是数据源的架构。从那开始,我在SQL中重新创建了架构,从应用程序中删除了对Shoutout数据源的引用(这导致了许多错误),然后添加了对我的SQL表的引用,由于它的名称不同,所以去寻找所有应用中有错误可以解决。
希望这会有所帮助!