Parametere for Odbc.DataSource
Odbc.DataSource-funksjonen tar to parametere – a connectionString
for driveren, og en options
post som lar deg overstyre ulike drivervirkemåter. Gjennom alternativposten kan du overstyre funksjoner og annen informasjon som rapporteres av driveren, kontrollere navigatorvirkemåten og påvirke SQL-spørringene som genereres av M-motoren.
De støttede alternativene poster felter faller inn i to kategorier – de som er offentlige og alltid tilgjengelige, og de som bare er tilgjengelige i en utvidbarhetskontekst.
Tabellen nedenfor beskriver de offentlige feltene i alternativposten.
Felt | Bekrivelse |
---|---|
CommandTimeout |
En varighetsverdi som styrer hvor lenge spørringen på serversiden kan kjøres før den avbrytes. Standard: 10 minutter |
ConnectionTimeout |
En varighetsverdi som styrer hvor lenge du skal vente før du forlater et forsøk på å opprette en tilkobling til serveren. Standard: 15 sekunder |
CreateNavigationProperties |
En logisk verdi som angir om navigeringsegenskapene skal genereres i de returnerte tabellene. Navigasjonsegenskaper er basert på sekundærnøkkelrelasjoner rapportert av driveren. Disse egenskapene vises som "virtuelle" kolonner som kan utvides i redigeringsprogrammet for spørringen, og oppretter riktig sammenføyning. Hvis beregning av sekundærnøkkelavhengigheter er en dyr operasjon for driveren, kan det være lurt å angi denne verdien til usann. Standard: sann |
HierarchicalNavigation |
En logisk verdi som angir om tabellene skal vises gruppert etter skjemanavnene. Når den er satt til usann, vises tabeller i en flat liste under hver database. Standard: false |
SqlCompatibleWindowsAuth |
En logisk verdi som bestemmer om det skal produseres en SQL Server-kompatibel tilkoblingsstreng når du bruker Windows-godkjenningTrusted_Connection=Yes .Hvis driveren støtter Windows-godkjenning, men krever ekstra eller alternative innstillinger i tilkoblingsstreng, bør du angi denne verdien til usann og bruke CredentialConnectionString alternativene for postfeltet som er beskrevet i neste tabell.Standard: sann |
Tabellen nedenfor beskriver alternativene for postfelt som bare er tilgjengelige gjennom utvidbarhet. Felt som ikke er enkle litterale verdier, beskrives i senere inndelinger.
Felt | Bekrivelse |
---|---|
AstVisitor |
En post som inneholder ett eller flere overstyringer for å kontrollere generering av SQL-spørring. Den vanligste bruken av dette feltet er å gi logikk til å generere en LIMIT/OFFSET-setningsdel for drivere som ikke støtter TOP. Feltene inkluderer Constant og LimitClause .Mer informasjon: Overstyrer AstVisitor |
CancelQueryExplicitly |
En logisk verdi som ber M-motoren om eksplisitt å avbryte eventuelle kjørende anrop gjennom ODBC-driveren før tilkoblingen avsluttes til ODBC-serveren. Dette feltet er nyttig i situasjoner der kjøring av spørring administreres uavhengig av nettverkstilkoblingene til serveren, for eksempel i enkelte Spark-distribusjoner. I de fleste tilfeller trenger ikke denne verdien angis fordi spørringen i serveren avbrytes når nettverkstilkoblingen til serveren avsluttes. Standard: false |
ClientConnectionPooling |
En logisk verdi som aktiverer tilkoblingsutvalg på klientsiden for ODBC-driveren. De fleste drivere vil sette denne verdien til sann. Standard: false |
CredentialConnectionString |
En tekst- eller postverdi som brukes til å angi legitimasjonsrelaterte tilkoblingsstreng egenskaper. |
HideNativeQuery |
En logisk verdi som styrer hvorvidt koblingen viser genererte SQL-setninger i Power Query-brukeropplevelsen. Dette bør bare settes til sann hvis datakilden for bakenden opprinnelig støtter SQL-92. Standard: false |
ImplicitTypeConversions |
En tabellverdi som inneholder implisitte typekonverteringer som støttes av driveren eller serverdelserveren. Verdiene i denne tabellen er additive til konverteringene som rapporteres av selve driveren. Dette feltet brukes vanligvis med SQLGetTypeInfo feltet ved overstyring av datatypeinformasjon rapportert av driveren. |
OnError |
En feilbehandlingsfunksjon som mottar en errorRecord parameter av typen record .Vanlige bruksområder for denne funksjonen inkluderer håndtering av SSL-tilkoblingsfeil, som gir en nedlastingskobling hvis driveren ikke finnes på systemet og rapporterer godkjenningsfeil. |
SoftNumbers |
Gjør at M-motoren kan velge en kompatibel datatype når konvertering mellom to bestemte numeriske typer ikke deklareres som støttet i SQL_CONVERT_*-funksjonene. Standard: false |
SqlCapabilities |
En post som gir ulike overstyringer av driverfunksjoner, og en måte å angi funksjoner som ikke uttrykkes gjennom ODBC 3.8. Mer informasjon: Overstyre SqlCapabilities |
SQLColumns |
En funksjon som lar deg endre kolonnemetadata som returneres av SQLColumns funksjonen.Mer informasjon: Overstyre SQLColumns |
SQLGetFunctions |
En post som lar deg overstyre verdier som returneres av kall til SQLGetFunctions .En vanlig bruk av dette feltet er å deaktivere bruken av parameterbinding, eller angi at genererte spørringer skal bruke CAST i stedet for KONVERTER. Mer informasjon: Overstyre SQLGetFunctions |
SQLGetInfo |
En post som lar deg overstyre verdier som returneres av kall til SQLGetInfo .Mer informasjon: Overstyre SQLGetInfo |
SQLGetTypeInfo |
En tabell eller funksjon som returnerer en tabell som overstyrer typeinformasjonen som returneres av SQLGetTypeInfo .Når verdien er satt til en tabell, erstatter verdien fullstendig typeinformasjonen som rapporteres av driveren. SQLGetTypeInfo vil ikke bli kalt.Når verdien er satt til en funksjon, får funksjonen resultatet av det opprinnelige kallet til SQLGetTypeInfo , slik at du kan endre tabellen.Dette feltet brukes vanligvis når det er en mismatch mellom datatyper rapportert av SQLGetTypeInfo og SQLColumns .Mer informasjon: Overstyre SQLGetTypeInfo |
SQLTables |
En funksjon som lar deg endre tabellmetadataene som returneres av et kall til SQLTables . |
TolerateConcatOverflow |
Gjør at sammenkobling av tekstverdier kan forekomme selv om resultatet kan avkortes slik at det passer innenfor området til en tilgjengelig type. Når du for eksempel setter sammen et VARCHAR(4000)-felt med et VARCHAR(4000)-felt på et system som støtter en maksimert VARCHAR-størrelse på 4000 og ingen CLOB-type, brettes sammenkoblingen selv om resultatet kan bli avkortet. Standard: false |
UseEmbeddedDriver |
(intern bruk): En logisk verdi som styrer om ODBC-driveren skal lastes inn fra en lokal katalog (ved hjelp av ny funksjonalitet definert i ODBC 4.0-spesifikasjonen). Denne verdien angis vanligvis bare av koblinger opprettet av Microsoft som leveres med Power Query. Når den er satt til usann, brukes system-ODBC-driverbehandling til å finne og laste inn driveren. De fleste koblinger trenger ikke å angi dette feltet. Standard: false |
Feltet AstVisitor
angis gjennom Odbc.DataSource-alternativposten . Den brukes til å endre SQL-setninger som genereres for bestemte spørringsscenarioer.
Obs!
Drivere som støtter LIMIT- og OFFSET-setningsdeler (i stedet for TOP) vil gi en LimitClause
overstyring for AstVisitor
.
Å angi en overstyring for denne verdien er avskrevet og kan fjernes fra fremtidige implementeringer.
Dette feltet er en funksjon som mottar to Int64.Type
argumenter (skip
, take
), og returnerer en post med to tekstfelt (Text
, Location
).
LimitClause = (skip as nullable number, take as number) as record => ...
Parameteren skip
er antall rader som skal hoppes over (det vil eksempelvis argumentet for FORSKYVNING). Hvis en forskyvning ikke er angitt, vil hopp over-verdien være null. Hvis driveren støtter LIMIT, men ikke støtter FORSKYVNING, LimitClause
bør funksjonen returnere en uimplementert feil (...) når hopp over er større enn 0.
Parameteren take
er antall rader som skal tas (det vil eksempelvis argumentet til LIMIT).
Feltet Text
i resultatet inneholder SQL-teksten som skal legges til i den genererte spørringen.
Feltet Location
angir hvor setningsdelen skal settes inn. Tabellen nedenfor beskriver støttede verdier.
Verdi | Bekrivelse | Eksempel |
---|---|---|
AfterQuerySpecification |
LIMIT-setningsdelen plasseres på slutten av den genererte SQL-setningen. Dette er den mest støttede LIMIT-syntaksen. |
VELG a, b, c FROM-tabell WHERE a > 10 GRENSE 5 |
BeforeQuerySpecification |
LIMIT-setningsdelen plasseres før den genererte SQL-setningen. | BEGRENS 5 RADER VELG a, b, c FROM-tabell WHERE a > 10 |
AfterSelect |
LIMIT går etter SELECT-setningen, og etter eventuelle modifikasjoner (for eksempel DISTINCT). | VELG DISTINKT GRENSE 5 a, b, c FROM-tabell WHERE a > 10 |
AfterSelectBeforeModifiers |
LIMIT går etter SELECT-setningen, men før endringer (for eksempel DISTINCT). | VELG GRENSE 5 DISTINKT A, b, c FROM-tabell WHERE a > 10 |
Følgende kodesnutt gir en LimitClause-implementering for en driver som forventer en LIMIT-setningsdel, med en valgfri OFFSET, i følgende format: [OFFSET <offset> ROWS] LIMIT <row_count>
LimitClause = (skip, take) =>
let
offset = if (skip > 0) then Text.Format("OFFSET #{0} ROWS", {skip}) else "",
limit = if (take <> null) then Text.Format("LIMIT #{0}", {take}) else ""
in
[
Text = Text.Format("#{0} #{1}", {offset, limit}),
Location = "AfterQuerySpecification"
]
Kodesnutten nedenfor gir en LimitClause
implementering for en driver som støtter LIMIT, men ikke OFFSET. Format: LIMIT <row_count>
.
LimitClause = (skip, take) =>
if (skip > 0) then error "Skip/Offset not supported"
else
[
Text = Text.Format("LIMIT #{0}", {take}),
Location = "AfterQuerySpecification"
]
Felt | Detaljer |
---|---|
FractionalSecondsScale |
En tallverdi fra 1 til 7 som angir antall desimaler som støttes for millisekunders verdier. Denne verdien må angis av koblinger som vil aktivere spørringsdelegering over datetime-verdier. Standard: null |
PrepareStatements |
En logisk verdi som angir at setninger bør klarberedes ved hjelp av SQLPrepare. Standard: false |
SupportsTop |
En logisk verdi som angir at driveren støtter TOP-setningsdelen for å begrense antall returnerte rader. Standard: false |
StringLiteralEscapeCharacters |
En liste over tekstverdier som angir tegnene som skal brukes når strenglitteraler og LIKE-uttrykk slippes ut. Eksempel: {""} Standard: null |
SupportsDerivedTable |
En logisk verdi som angir at driveren støtter avledede tabeller (undervalg). Denne verdien antas å være sann for drivere som angir samsvarsnivået til SQL_SC_SQL92_FULL (rapportert av driveren eller overstyrt med Sql92Conformance-innstillingen. For alle andre samsvarsnivåer er denne verdien usann. Hvis driveren ikke rapporterer SQL_SC_SQL92_FULL samsvarsnivå, men støtter avledede tabeller, setter du denne verdien til sann. Støtte avledede tabeller kreves for mange DirectQuery-scenarioer. |
SupportsNumericLiterals |
En logisk verdi som angir om den genererte SQL-en skal inneholde numeriske litteralverdier. Når angitt som usann, angis alltid numeriske verdier ved hjelp av parameterbinding. Standard: false |
SupportsStringLiterals |
En logisk verdi som angir om den genererte SQL-en skal inneholde strenglitteralverdier. Når satt til usann, angis alltid strengverdier ved hjelp av parameterbinding. Standard: false |
SupportsOdbcDateLiterals |
En logisk verdi som angir om den genererte SQL-en skal inneholde verdier for datolitteraler. Når satt til usann, angis alltid datoverdier ved hjelp av parameterbinding. Standard: false |
SupportsOdbcTimeLiterals |
En logisk verdi som angir om den genererte SQL-en skal inneholde verdier for tidslitteraler. Når satt til usann, angis alltid tidsverdier ved hjelp av parameterbinding. Standard: false |
SupportsOdbcTimestampLiterals |
En logisk verdi som angir om den genererte SQL-en skal inneholde verdier for tidsstempellitteraler. Når angitt som usann, angis alltid tidsstempelverdier ved hjelp av parameterbinding. Standard: false |
SQLColumns
er en funksjonsbehandling som mottar resultatene av et ODBC-kall til SQLColumns. Kildeparameteren inneholder en tabell med datatypeinformasjon. Denne overstyringen brukes vanligvis til å løse datatypekonflikter mellom kall til SQLGetTypeInfo
og SQLColumns
.
Hvis du vil ha mer informasjon om formatet for kildetabellparameteren, kan du gå til SQLColumns Function.
Dette feltet brukes til å overstyre SQLFunctions
verdier som returneres av en ODBC-driver. Den inneholder en post med feltnavn som er lik FunctionId
konstantene som er definert for ODBC SQLGetFunctions-funksjonen . Du finner numeriske konstanter for hvert av disse feltene i ODBC-spesifikasjonen.
Felt | Detaljer |
---|---|
SQL_CONVERT_FUNCTIONS |
Angir hvilke funksjoner som støttes når du utfører typekonverteringer. M-motoren prøver som standard å bruke KONVERTER-funksjonen. Drivere som foretrekker bruk av CAST, kan overstyre denne verdien til å rapportere at bare SQL_FN_CVT_CAST (numerisk verdi for 0x2) støttes. |
SQL_API_SQLBINDCOL |
En logisk verdi (sann/usann) som angir om mashup-motoren skal bruke SQLBindCol-API-en ved henting av data. Når angitt som usann, brukes SQLGetData i stedet. Standard: false |
Kodesnutten nedenfor gir et eksempel som eksplisitt ber M-motoren om å bruke CAST i stedet for KONVERTER.
SQLGetFunctions = [
SQL_CONVERT_FUNCTIONS = 0x2 /* SQL_FN_CVT_CAST */
]
Dette feltet brukes til å overstyre SQLGetInfo
verdier som returneres av en ODBC-driver. Den inneholder en post der feltene er navn som er lik InfoType
konstantene som er definert for ODBC SQLGetInfo-funksjonen . Du finner numeriske konstanter for hvert av disse feltene i ODBC-spesifikasjonen. Du finner den fullstendige listen over InfoTypes
de merkede filene i sporingsfilene for mashup-motoren.
Tabellen nedenfor inneholder vanligvis overstyrte SQLGetInfo
egenskaper:
Felt | Detaljer |
---|---|
SQL_SQL_CONFORMANCE |
En heltallsverdi som angir nivået på SQL-92 som støttes av driveren: (1) SQL_SC_SQL92_ENTRY: Sql-92-kompatibel på oppføringsnivå. (2) SQL_SC_FIPS127_2_TRANSITIONAL: FIPS 127-2-kompatibelt overgangsnivå. (4) SQL_SC_ SQL92_INTERMEDIATE" Sql-92-kompatibelt mellomnivå. (8) SQL_SC_SQL92_FULL: Sql-92-kompatibelt på fullstendig nivå. I Power Query-scenarioer brukes koblingen i skrivebeskyttet modus. De fleste drivere vil rapportere et SQL_SC_SQL92_FULL samsvarsnivå, og overstyre spesifikk virkemåte for SQL-generering ved hjelp av egenskapene SQLGetInfo og SQLGetFunctions . |
SQL_SQL92_PREDICATES |
En bitmaske som nummererer predikatene som støttes i en SELECT-setning, som definert i SQL-92. Gå til SQL_SP_* konstanter i ODBC-spesifikasjonen. |
SQL_AGGREGATE_FUNCTIONS |
En bitmaske som nummererer støtte for aggregasjonsfunksjoner. SQL_AF_ALL SQL_AF_AVG SQL_AF_COUNT SQL_AF_DISTINCT SQL_AF_MAX SQL_AF_MIN SQL_AF_SUM Gå til SQL_AF_* konstanter i ODBC-spesifikasjonen. |
SQL_GROUP_BY |
En heltallsverdi som angir relasjonen mellom kolonnene i GROUP BY-setningsdelen og de ikke-aggregerte kolonnene i utvalgslisten: SQL_GB_COLLATE: En COLLATE-setningsdel kan angis på slutten av hver grupperingskolonne. SQL_GB_NOT_SUPPORTED: GROUP BY-setningsdeler støttes ikke. SQL_GB_GROUP_BY_EQUALS_SELECT: GROUP BY-setningsdelen må inneholde alle ikke-aggregerte kolonner i utvalgslisten. Den kan ikke inneholde andre kolonner. VELG FOR eksempel AVD, MAKS(LØNN) FRA ANSATTGRUPPE ETTER AVD. SQL_GB_GROUP_BY_CONTAINS_SELECT: GROUP BY-setningsdelen må inneholde alle ikke-aggregerte kolonner i utvalgslisten. Den kan inneholde kolonner som ikke er i utvalgslisten. VELG FOR eksempel AVD, MAKS(LØNN) FRA ANSATTGRUPPE ETTER DEPT, ALDER. SQL_GB_NO_RELATION: Kolonnene i GROUP BY-setningsdelen og utvalgslisten er ikke relatert. Betydningen av ikke-grupperte, ikke-aggregerte kolonner i utvalgslisten er datakildeavhengig. Velg for eksempel AVD, LØNN FRA ANSATTGRUPPE ETTER AVD, ALDER. Gå til SQL_GB_* konstanter i ODBC-spesifikasjonen. |
Følgende hjelpefunksjon kan brukes til å opprette bitmaskeverdier fra en liste over heltallsverdier:
Flags = (flags as list) =>
let
Loop = List.Generate(
()=> [i = 0, Combined = 0],
each [i] < List.Count(flags),
each [i = [i]+1, Combined =*Number.BitwiseOr([Combined], flags{i})],
each [Combined]),
Result = List.Last(Loop, 0)
in
Result;
SQLGetTypeInfo
kan angis på to måter:
- En fast
table
verdi som inneholder samme type informasjon som et ODBC-kall tilSQLGetTypeInfo
. - En funksjon som godtar et tabellargument og returnerer en tabell. Argumentet inneholder de opprinnelige resultatene av ODBC-kallet til
SQLGetTypeInfo
. Funksjonsimplementeringen kan endre eller legge til i denne tabellen.
Den første fremgangsmåten brukes til å overstyre verdiene som returneres av ODBC-driveren fullstendig. Den andre fremgangsmåten brukes hvis du vil legge til eller endre disse verdiene.
Hvis du vil ha mer informasjon om formatet for tabellparameteren for typene og forventet returverdi, kan du gå til funksjonsreferansen sqlGetTypeInfo.
Kodesnutten nedenfor gir en statisk implementering for SQLGetTypeInfo
.
SQLGetTypeInfo = #table(
{ "TYPE_NAME", "DATA_TYPE", "COLUMN_SIZE", "LITERAL_PREF", "LITERAL_SUFFIX", "CREATE_PARAS", "NULLABLE", "CASE_SENSITIVE", "SEARCHABLE", "UNSIGNED_ATTRIBUTE", "FIXED_PREC_SCALE", "AUTO_UNIQUE_VALUE", "LOCAL_TYPE_NAME", "MINIMUM_SCALE", "MAXIMUM_SCALE", "SQL_DATA_TYPE", "SQL_DATETIME_SUB", "NUM_PREC_RADIX", "INTERNAL_PRECISION", "USER_DATA_TYPE" }, {
{ "char", 1, 65535, "'", "'", "max. length", 1, 1, 3, null, 0, null, "char", null, null, -8, null, null, 0, 0 },
{ "int8", -5, 19, "'", "'", null, 1, 0, 2, 0, 10, 0, "int8", 0, 0, -5, null, 2, 0, 0 },
{ "bit", -7, 1, "'", "'", null, 1, 1, 3, null, 0, null, "bit", null, null, -7, null, null, 0, 0 },
{ "bool", -7, 1, "'", "'", null, 1, 1, 3, null, 0, null, "bit", null, null, -7, null, null, 0, 0 },
{ "date", 9, 10, "'", "'", null, 1, 0, 2, null, 0, null, "date", null, null, 9, 1, null, 0, 0 },
{ "numeric", 3, 28, null, null, null, 1, 0, 2, 0, 0, 0, "numeric", 0, 0, 2, null, 10, 0, 0 },
{ "float8", 8, 15, null, null, null, 1, 0, 2, 0, 0, 0, "float8", null, null, 6, null, 2, 0, 0 },
{ "float8", 6, 17, null, null, null, 1, 0, 2, 0, 0, 0, "float8", null, null, 6, null, 2, 0, 0 },
{ "uuid", -11, 37, null, null, null, 1, 0, 2, null, 0, null, "uuid", null, null, -11, null, null, 0, 0 },
{ "int4", 4, 10, null, null, null, 1, 0, 2, 0, 0, 0, "int4", 0, 0, 4, null, 2, 0, 0 },
{ "text", -1, 65535, "'", "'", null, 1, 1, 3, null, 0, null, "text", null, null, -10, null, null, 0, 0 },
{ "lo", -4, 255, "'", "'", null, 1, 0, 2, null, 0, null, "lo", null, null, -4, null, null, 0, 0 },
{ "numeric", 2, 28, null, null, "precision, scale", 1, 0, 2, 0, 10, 0, "numeric", 0, 6, 2, null, 10, 0, 0 },
{ "float4", 7, 9, null, null, null, 1, 0, 2, 0, 10, 0, "float4", null, null, 7, null, 2, 0, 0 },
{ "int2", 5, 19, null, null, null, 1, 0, 2, 0, 10, 0, "int2", 0, 0, 5, null, 2, 0, 0 },
{ "int2", -6, 5, null, null, null, 1, 0, 2, 0, 10, 0, "int2", 0, 0, 5, null, 2, 0, 0 },
{ "timestamp", 11, 26, "'", "'", null, 1, 0, 2, null, 0, null, "timestamp", 0, 38, 9, 3, null, 0, 0 },
{ "date", 91, 10, "'", "'", null, 1, 0, 2, null, 0, null, "date", null, null, 9, 1, null, 0, 0 },
{ "timestamp", 93, 26, "'", "'", null, 1, 0, 2, null, 0, null, "timestamp", 0, 38, 9, 3, null, 0, 0 },
{ "bytea", -3, 255, "'", "'", null, 1, 0, 2, null, 0, null, "bytea", null, null, -3, null, null, 0, 0 },
{ "varchar", 12, 65535, "'", "'", "max. length", 1, 0, 2, null, 0, null, "varchar", null, null, -9, null, null, 0, 0 },
{ "char", -8, 65535, "'", "'", "max. length", 1, 1, 3, null, 0, null, "char", null, null, -8, null, null, 0, 0 },
{ "text", -10, 65535, "'", "'", "max. length", 1, 1, 3, null, 0, null, "text", null, null, -10, null, null, 0, 0 },
{ "varchar", -9, 65535, "'", "'", "max. length", 1, 1, 3, null, 0, null, "varchar", null, null, -9, null, null, 0, 0 },
{ "bpchar", -8, 65535, "'", "'", "max. length", 1, 1, 3, null, 0, null, "bpchar", null, null, -9, null, null, 0, 0 } }
);
Følgende kodesnutter tilføyer bpchar
typen til de eksisterende typene som returneres av driveren.
SQLGetTypeInfo = (types as table) as table =>
let
newTypes = #table(
{
"TYPE_NAME",
"DATA_TYPE",
"COLUMN_SIZE",
"LITERAL_PREF",
"LITERAL_SUFFIX",
"CREATE_PARAS",
"NULLABLE",
"CASE_SENSITIVE",
"SEARCHABLE",
"UNSIGNED_ATTRIBUTE",
"FIXED_PREC_SCALE",
"AUTO_UNIQUE_VALUE",
"LOCAL_TYPE_NAME",
"MINIMUM_SCALE",
"MAXIMUM_SCALE",
"SQL_DATA_TYPE",
"SQL_DATETIME_SUB",
"NUM_PREC_RADIX",
"INTERNAL_PRECISION",
"USER_DATA_TYPE"
},
// we add a new entry for each type we want to add
{
{
"bpchar",
-8,
65535,
"'",
"'",
"max. length",
1,
1,
3,
null,
0,
null,
"bpchar",
null,
null,
-9,
null,
null,
0,
0
}
}),
append = Table.Combine({types, newTypes})
in
append;
Den tilkoblingsstreng for ODBC-driveren er angitt ved hjelp av det første argumentet til funksjonene Odbc.DataSource og Odbc.Query. Verdien kan være tekst eller en M-post. Når du bruker posten, blir hvert felt i posten en egenskap i tilkoblingsstreng. Alle tilkoblingsstreng krever et Driver
felt (eller DSN
felt hvis du krever at brukere forhåndskonfigurerer et DSN på systemnivå). Legitimasjonsrelaterte egenskaper angis separat. Andre egenskaper er driverspesifikke.
Kodesnutten nedenfor viser definisjonen av en ny datakildefunksjon, oppretting av ConnectionString
posten og aktivering av funksjonen Odbc.DataSource .
[DataSource.Kind="SqlODBC", Publish="SqlODBC.Publish"]
shared SqlODBC.Contents = (server as text) =>
let
ConnectionString = [
Driver = "SQL Server Native Client 11.0",
Server = server,
MultiSubnetFailover = "Yes",
ApplicationIntent = "ReadOnly",
APP = "PowerBICustomConnector"
],
OdbcDatasource = Odbc.DataSource(ConnectionString)
in
OdbcDatasource;