GetTableDDL

Returnerar tabellinformation i DDL-format (Data Definition Language) för en lista över tabellförekomster som angetts som JSON-matris.

Format 

GetTableDDL ( tabellförekomstNamn ; ignoreraFel )

Parametrar 

tabellförekomstNamn - ett textuttryck för en JSON-matris av tabellförekomster som ska returneras.

IgnoreraFel – om parametern anges till True returneras DDL-information för tabellförekomsterna som inte orsakar något fel. Om parametern anges till False returneras DDL-information när inga tabellförekomster orsakar ett fel. Annars returneras "?" för att markera ett fel och tabellförekomsterna som orsakade felet loggas i AI-anropsloggen (mer information finns i Scriptsteget Ange loggning av AI-anrop).

Returnerad datatyp 

text

Ursprungsversion 

21.0

Beskrivning 

Den här funktionen returnerar en DDL-representation av de angivna tabellförekomsterna. DDL består av SQL-kommandon som kan användas för att definiera databasschema (tabeller, fält och relationer). Du kan ange DDL som returneras av den här funktionen i en begäran till en AI-modell för att skapa SQL-frågor som du kan skicka till din FileMaker Pro-databas. I själva verket är detta vad Utför SQL-fråga på naturligt språk gör med samma logik som den här funktionen för att generera DDL.

Om du vill förbättra kvaliteten på DDL som returneras av den här funktionen kan du följa förslagen i Bästa praxis för databasschema i generering av DDL och SQL-frågor.

Exempel 1 

GetTableDDL ( "[\"Möten\", \"Ämnen\"]"; True) returnerar följande för en FileMaker Pro-fil som innehåller tabellförekomster med namnen Möten och Ämnen:

Kopiera
CREATE TABLE "Möten" (
"Titel" varchar(255),
"Plats" varchar(255),
"Datum" datetime,
"Starttid" datetime,
"Sluttid" datetime,
"Varaktighet" varchar(255),
"Anteckning" varchar(255),
"Primärnyckel" varchar(255), /*Unik identifierare för varje post i den här tabellen*/
"SkapadAv" varchar(255), /*Kontonamn för den användare som skapade respektive post*/
"ÄndradAv" varchar(255), /*Kontonamn för den användare som senast ändrade respektive post*/
"SkapadTidsstämpel" datetime, /*Datum och tid då respektive post skapades*/
"ÄndringTidsstämpel" datetime, /*Datum och tid då respektive post senast ändrades*/
"Anteckning_Inbäddning" varbinary(4096),
PRIMARY KEY (Primärnyckel)
);

CREATE TABLE "Ämnen" (
"Sekundärnyckel" varchar(255), /*Unik identifierar för varje post i den relaterade tabellen*/
"Primärnyckel" varchar(255), /*Unik identifierare för varje post i den här tabellen*/
"ÄndradAv" varchar(255), /*Kontonamn för den användare som senast ändrade respektive post*/
"ÄndringTidsstämpel" datetime, /*Datum och tid då respektive post senast ändrades*/
PRIMARY KEY (Primärnyckel),
FOREIGN KEY (Sekundärnyckel) REFERENCES Möten(Primärnyckel)
);

I tabellen Möten har inga fältnotationer angetts, så alla fält tas med. För fält med kommentarer har texten i kommentarerna tagits med.

I tabellen Ämnen har fältnotationer ställts in för fyra fält, så endast dessa fält tas med tillsammans med notationerna.

Exempel 2 

Aktiverar loggning av AI-anrop och kontrollerar sedan för en matris med tabellförekomstnamn om GetTableDDL returnerar ett fel med parametern ignoreraFel inställd på False .

Kopiera
Ange loggning av AI-anrop [ På ; Filnamn: "ai-anrop.log” ; Utförligt: Av ]
Ange variablel [ $tableDDL ; Värde: 
    GetTableDDL ( JSONMakeArray ( "Möten,Medarbetare,Kontaktuppgift" ; "," ; JSONString ) ; 
    False ) ]
If [ $tableDDL = "?" ]
    Visa anpassad dialogruta [ "Ett fel uppstod. Läs mer i ai-anrop.log i mappen Dokument." ]
Else
    Visa anpassad dialogruta [ $tableDDL ]
End If