A
- AccessControlEntry.ConditionToIdentities
- Access.Database
- ActiveDirectory.Domains
- AdobeAnalytics.Cubes
- AdoDotNet.DataSource
- AdoDotNet.Query
- AnalysisServices.Database
- AnalysisServices.Databases
- AzureStorage.BlobContents
- AzureStorage.Blobs
- AzureStorage.DataLake
- AzureStorage.DataLakeContents
- AzureStorage.Tables
B
- BinaryFormat.Binary
- BinaryFormat.Byte
- BinaryFormat.ByteOrder
- BinaryFormat.Choice
- BinaryFormat.Decimal
- BinaryFormat.Double
- BinaryFormat.Group
- BinaryFormat.Length
- BinaryFormat.List
- BinaryFormat.Null
- BinaryFormat.Record
- BinaryFormat.SignedInteger16
- BinaryFormat.SignedInteger32
- BinaryFormat.SignedInteger64
- BinaryFormat.Single
- BinaryFormat.Text
- BinaryFormat.Transform
- BinaryFormat.UnsignedInteger16
- BinaryFormat.UnsignedInteger32
- BinaryFormat.UnsignedInteger64
- BinaryFormat.7BitEncodedSignedInteger
- BinaryFormat.7BitEncodedUnsignedInteger
- Binary data
- Binary.ApproximateLength
- Binary.Buffer
- Binary.Combine
- Binary.Compress
- Binary.Decompress
- Binary.From
- Binary.FromList
- Binary.FromText
- Binary.InferContentType
- Binary.Length
- Binary.Range
- Binary.Split
- Binary.ToList
- Binary.ToText
- Binary.View
- Binary.ViewError
- Binary.ViewFunction
- Byte.From
C
- Cdm.Contents
- Character.FromNumber
- Character.ToNumber
- Combiner.CombineTextByDelimiter
- Combiner.CombineTextByEachDelimiter
- Combiner.CombineTextByLengths
- Combiner.CombineTextByPositions
- Combiner.CombineTextByRanges
- Comparer.FromCulture
- Comparer.Ordinal
- Comparer.OrdinalIgnoreCase
- Controlling byte order
- Csv.Document
- Cube.AddAndExpandDimensionColumn
- Cube.AddMeasureColumn
- Cube.ApplyParameter
- Cube.AttributeMemberId
- Cube.AttributeMemberProperty
- Cube.CollapseAndRemoveColumns
- Cube.Dimensions
- Cube.DisplayFolders
- Cube.MeasureProperties
- Cube.MeasureProperty
- Cube.Measures
- Cube.Parameters
- Cube.Properties
- Cube.PropertyKey
- Cube.ReplaceDimensions
- Cube.Transform
- Currency.From
D
- DateTime.AddZone
- DateTime.Date
- DateTime.FixedLocalNow
- DateTime.From
- DateTime.FromFileTime
- DateTime.FromText
- DateTime.IsInCurrentHour
- DateTime.IsInCurrentMinute
- DateTime.IsInCurrentSecond
- DateTime.IsInNextHour
- DateTime.IsInNextMinute
- DateTime.IsInNextNHours
- DateTime.IsInNextNMinutes
- DateTime.IsInNextNSeconds
- DateTime.IsInNextSecond
- DateTime.IsInPreviousHour
- DateTime.IsInPreviousMinute
- DateTime.IsInPreviousNHours
- DateTime.IsInPreviousNMinutes
- DateTime.IsInPreviousNSeconds
- DateTime.IsInPreviousSecond
- DateTime.LocalNow
- DateTime.Time
- DateTime.ToRecord
- DateTime.ToText
- Date.AddDays
- Date.AddMonths
- Date.AddQuarters
- Date.AddWeeks
- Date.AddYears
- Date.Day
- Date.DayOfWeek
- Date.DayOfWeekName
- Date.DayOfYear
- Date.DaysInMonth
- Date.EndOfDay
- Date.EndOfMonth
- Date.EndOfQuarter
- Date.EndOfWeek
- Date.EndOfYear
- Date.From
- Date.FromText
- Date.IsInCurrentDay
- Date.IsInCurrentMonth
- Date.IsInCurrentQuarter
- Date.IsInCurrentWeek
- Date.IsInCurrentYear
- Date.IsInNextDay
- Date.IsInNextMonth
- Date.IsInNextNDays
- Date.IsInNextNMonths
- Date.IsInNextNQuarters
- Date.IsInNextNWeeks
- Date.IsInNextNYears
- Date.IsInNextQuarter
- Date.IsInNextWeek
- Date.IsInNextYear
- Date.IsInPreviousDay
- Date.IsInPreviousMonth
- Date.IsInPreviousNDays
- Date.IsInPreviousNMonths
- Date.IsInPreviousNQuarters
- Date.IsInPreviousNWeeks
- Date.IsInPreviousNYears
- Date.IsInPreviousQuarter
- Date.IsInPreviousWeek
- Date.IsInPreviousYear
- Date.IsInYearToDate
- Date.IsLeapYear
- Date.Month
- Date.MonthName
- Date.QuarterOfYear
- Date.StartOfDay
- Date.StartOfMonth
- Date.StartOfQuarter
- Date.StartOfWeek
- Date.StartOfYear
- Date.ToRecord
- Date.ToText
- Date.WeekOfMonth
- Date.WeekOfYear
- Date.Year
- DB2.Database
- Decimal.From
- Diagnostics.ActivityId
- Diagnostics.Trace
- DirectQueryCapabilities.From
- Double.From
- Duration.Days
- Duration.From
- Duration.FromText
- Duration.Hours
- Duration.Minutes
- Duration.Seconds
- Duration.ToRecord
- Duration.TotalDays
- Duration.TotalHours
- Duration.TotalMinutes
- Duration.TotalSeconds
- Duration.ToText
E
F
G
H
I
L
- Lines.FromBinary
- Lines.FromText
- Lines.ToBinary
- Lines.ToText
- List.Accumulate
- List.AllTrue
- List.Alternate
- List.AnyTrue
- List.Average
- List.Buffer
- List.Combine
- List.ConformToPageReader
- List.Contains
- List.ContainsAll
- List.ContainsAny
- List.Count
- List.Covariance
- List.Dates
- List.DateTimes
- List.DateTimeZones
- List.Difference
- List.Distinct
- List.Durations
- List.FindText
- List.First
- List.FirstN
- List.Generate
- List.InsertRange
- List.Intersect
- List.IsDistinct
- List.IsEmpty
- List.Last
- List.LastN
- List.MatchesAll
- List.MatchesAny
- List.Max
- List.MaxN
- List.Median
- List.Min
- List.MinN
- List.Mode
- List.Modes
- List.NonNullCount
- List.Numbers
- List.Percentile
- List.PositionOf
- List.PositionOfAny
- List.Positions
- List.Product
- List.Random
- List.Range
- List.RemoveFirstN
- List.RemoveItems
- List.RemoveLastN
- List.RemoveMatchingItems
- List.RemoveNulls
- List.RemoveRange
- List.Repeat
- List.ReplaceMatchingItems
- List.ReplaceRange
- List.ReplaceValue
- List.Reverse
- List.Select
- List.Single
- List.SingleOrDefault
- List.Skip
- List.Sort
- List.Split
- List.StandardDeviation
- List.Sum
- List.Times
- List.Transform
- List.TransformMany
- List.Union
- List.Zip
- Logical.From
- Logical.FromText
The Informix.Database connector enables you to connect to an Informix database server and retrieve data from it. The connector uses the Power Query M function, which is a functional programming language that is used to define data transformations and manipulations. In this article, we will explore the M code behind the Informix.Database connector and how it works.
Connecting to an Informix Database
To connect to an Informix database using Power Query, you need to have the following information:
– Database server name or IP address
– Database name
– Port number
– Authentication method (Windows or database authentication)
– Username and password (if using database authentication)
Once you have this information, you can use the following M code to connect to the database:
let
serverName = “serverName”,
dbName = “dbName”,
port = 1234,
authMethod = DatabaseCredential,
username = “username”,
password = “password”,
connectionString = “DRIVER={IBM INFORMIX ODBC DRIVER};SERVER=”+serverName+”;DATABASE=”+dbName+”;HOST=”+serverName+”;SERVICE=”+port+”;PROTOCOL=onsoctcp;CLIENT_LOCALE=en_US.utf8;DB_LOCALE=en_US.utf8;”,
source = Odbc.DataSource(connectionString, [HierarchicalNavigation=true, Credential=authMethod, UID=username, PWD=password])
in
source
This code uses the Odbc.DataSource function to create a connection to the Informix database. The connectionString variable contains the connection string that is used to connect to the database server. The source variable contains the result of the Odbc.DataSource function, which is a table that contains the data from the database.
Querying Data from an Informix Database
Once you have established a connection to the Informix database, you can use the Power Query editor to query data from it. The editor provides a user-friendly interface that allows you to perform various data transformations and manipulations. Behind the scenes, the editor generates M code that is used to execute the transformations.
For example, if you want to retrieve all the records from a table called "Customers", you can use the following M code:
let
serverName = “serverName”,
dbName = “dbName”,
port = 1234,
authMethod = DatabaseCredential,
username = “username”,
password = “password”,
connectionString = “DRIVER={IBM INFORMIX ODBC DRIVER};SERVER=”+serverName+”;DATABASE=”+dbName+”;HOST=”+serverName+”;SERVICE=”+port+”;PROTOCOL=onsoctcp;CLIENT_LOCALE=en_US.utf8;DB_LOCALE=en_US.utf8;”,
source = Odbc.DataSource(connectionString, [HierarchicalNavigation=true, Credential=authMethod, UID=username, PWD=password]),
dbo_Customers = source{[Schema=”dbo”,Item=”Customers”]}[Data]
in
dbo_Customers
This code creates a connection to the Informix database using the Odbc.DataSource function, and then retrieves the Customers table using the source{[Schema="dbo",Item="Customers"]}[Data] expression. The result is a table that contains all the records from the Customers table.
Manipulating Data from an Informix Database
Power Query provides a wide range of data manipulation and transformation functions that you can use to modify the data retrieved from an Informix database. These functions allow you to aggregate, filter, sort, and reshape your data in various ways.
For example, if you want to filter the records from the Customers table to only include customers from a specific city, you can use the following M code:
let
serverName = “serverName”,
dbName = “dbName”,
port = 1234,
authMethod = DatabaseCredential,
username = “username”,
password = “password”,
connectionString = “DRIVER={IBM INFORMIX ODBC DRIVER};SERVER=”+serverName+”;DATABASE=”+dbName+”;HOST=”+serverName+”;SERVICE=”+port+”;PROTOCOL=onsoctcp;CLIENT_LOCALE=en_US.utf8;DB_LOCALE=en_US.utf8;”,
source = Odbc.DataSource(connectionString, [HierarchicalNavigation=true, Credential=authMethod, UID=username, PWD=password]),
dbo_Customers = source{[Schema=”dbo”,Item=”Customers”]}[Data],
filteredCustomers = Table.SelectRows(dbo_Customers, each [City] = “Seattle”)
in
filteredCustomers
This code retrieves the Customers table from the Informix database, and then filters the records to only include customers from Seattle using the Table.SelectRows function. The result is a table that contains all the records from the Customers table that have Seattle as their city.
The Informix.Database connector in Power Query allows you to connect to an Informix database server and retrieve data from it using the M function. The M code behind the connector can be used to connect to the database, query data, and manipulate it in various ways. With Power Query, you can transform your data into the format that you need for your analyses and reporting.