コード例 #1
0
        public void ConvertDataSetToDict()
        {
            DateTime     now        = DateTime.Now;
            DateTime     secondDate = now.AddDays(1);
            const string tableName  = "MyTable";
            DataTable    dt1        = CreateTable(tableName + "1", now, secondDate);
            DataTable    dt2        = CreateTable(tableName + "2", now, secondDate);
            DataSet      ds         = new DataSet();

            ds.Tables.Add(dt1);
            ds.Tables.Add(dt2);

            c.Dict   dict         = ds.ToDict();
            string[] columnNames  = (string[])dict.x;
            object[] columnValues = (object[])dict.y;

            Assert.AreEqual(2, columnNames.Length);
            Assert.AreEqual(2, columnValues.Length);

            Assert.AreEqual(tableName + "1", columnNames[0]);
            Assert.AreEqual(tableName + "2", columnNames[1]);

            c.Dict    d1            = ((c.Dict[])columnValues[0])[0];
            DataTable tableToCheck1 = d1.ToDataTable(tableName);

            CheckDataTable(now, secondDate, tableToCheck1, tableName);

            c.Dict    d2            = ((c.Dict[])columnValues[1])[0];
            DataTable tableToCheck2 = d2.ToDataTable(tableName);

            CheckDataTable(now, secondDate, tableToCheck2, tableName);
        }
コード例 #2
0
        public void ConnectionReturnsExpectedLengthForDict()
        {
            const int expected = 1;

            c.Dict dict = new c.Dict(new[] { "Key_1" }, new object[] { "Value_1" });

            int count = c.n(dict);

            Assert.AreEqual(expected, count);
        }
コード例 #3
0
        public void ConvertEmptyDataTableToDictTest()
        {
            DataTable dt = new DataTable();

            c.Dict   dict         = dt.ToDict();
            string[] columnNames  = (string[])dict.x;
            object[] columnValues = (object[])dict.y;

            Assert.AreEqual(0, columnNames.Length);
            Assert.AreEqual(0, columnValues.Length);
        }
コード例 #4
0
        public void ConvertSimpleDictToDataTableTest()
        {
            DateTime     firstDate  = DateTime.Now;
            DateTime     secondDate = firstDate.AddDays(1);
            const string tableName  = "MyTable";

            c.Dict    dict = CreateDict(firstDate, secondDate);
            DataTable dt   = dict.ToDataTable(tableName);

            CheckDataTable(firstDate, secondDate, dt, tableName);
        }
コード例 #5
0
 private static KdbMultipleResult CreateMultipleResult()
 {
     c.Dict table1 = CreateTable(new string[] { "id1" },                              // Key column names.
                                 new object[] { new object[] { 1, 2, 3 } },           // Key column values.
                                 new string[] { "columnA" },                          // Column names.
                                 new object[] { new object[] { "A1", "A2", "A3" } }); // Column calues.
     c.Dict table2 = CreateTable(new string[] { "id1" },
                                 new object[] { new object[] { 1, 2, 3 } },
                                 new string[] { "columnB", "columnC" },
                                 new object[] { new object[] { "B1", "B2", "B3" }, new object[] { "C1", "C2", "C3" } });
     return(new KdbMultipleResult(new c.Dict(new string[] { "table1", "table2" }, new c.Dict[] { table1, table2 })));
 }
コード例 #6
0
        public void ConvertSimpleDataTableToDict()
        {
            DateTime     now        = DateTime.Now;
            DateTime     secondDate = now.AddDays(1);
            const string tableName  = "MyTable";
            DataTable    dt         = CreateTable(tableName, now, secondDate);

            c.Dict dict = dt.ToDict();

            DataTable tableToCheck = dict.ToDataTable(tableName);

            CheckDataTable(now, secondDate, tableToCheck, tableName);
        }
コード例 #7
0
        public void ConnectionTableReturnsExpectedTableIfObjectIsDict()
        {
            c.Dict dict = new c.Dict
                          (
                new c.Flip(new c.Dict(new[] { "Key_1" }, new object[] { new object[] { "Value_1" } })),
                new c.Flip(new c.Dict(new[] { "Key_1" }, new object[] { new object[] { "Value_1" } }))
                          );

            object result = c.td(dict);

            Assert.IsNotNull(result);
            Assert.IsTrue(result is c.Flip);
        }
コード例 #8
0
        public void ConnectionSerialisesAndDeserialisesDictInput()
        {
            c.Dict expected = new c.Dict(new string[] { "Key_1" }, new object[] { "Value_1" });

            using (var connection = new c())
            {
                byte[] serialisedData = connection.Serialize(1, expected);

                c.Dict result = connection.Deserialize(serialisedData) as c.Dict;

                Assert.IsNotNull(result);
                Assert.IsTrue(Enumerable.SequenceEqual(expected.x as string[], result.x as string[]));
                Assert.IsTrue(Enumerable.SequenceEqual(expected.y as object[], result.y as object[]));
            }
        }
コード例 #9
0
ファイル: MainWindow.xaml.cs プロジェクト: plusxp/kx-1
        /// <summary>
        /// Creates a c.Flip object only containing the version number of a fictional
        /// db, then loads it into the q session.
        /// </summary>
        private void ConvertDBVersionDataIntoFlip()
        {
            string[] colnames = new string[1];
            colnames[0] = "dbversion";

            object[] colData   = new object[1];
            string[] dbVersion = new string[1];

            dbVersion[0] = "dbversion";

            colData[0] = dbVersion;

            c.Dict dict     = new c.Dict(colnames, colData);
            c.Flip flipData = new c.Flip(dict);
            _queries.LoadDBVersionData(flipData);
        }
コード例 #10
0
ファイル: DataConverterExtensions.cs プロジェクト: sv/kp.net
        /// <summary>
        /// Converts c.Dict into DataTable.
        /// </summary>
        /// <param name="dict">The dict.</param>
        /// <param name="tableName">Name of the table.</param>
        /// <returns></returns>
        public static DataTable ToDataTable(this c.Dict dict, string tableName)
        {
            Guard.ThrowIfNull(dict, "dict");
            if (String.IsNullOrEmpty(tableName))
            {
                tableName = "Table1";
            }

            KdbPlusDataReader reader = new KdbPlusDataReader(new c.Flip(dict));

            DataTable table = new DataTable(tableName);

            table.Load(reader);

            return(table);
        }
コード例 #11
0
ファイル: MainWindow.xaml.cs プロジェクト: plusxp/kx-1
        /// <summary>
        /// Converts the list of students into a c.Flip object, to be inserted as a table in the db.
        /// </summary>
        private void ConvertListIntoFlip()
        {
            string[] colNames = new string[5];
            colNames[0] = "name";
            colNames[1] = "gender";
            colNames[2] = "age";
            colNames[3] = "dob";
            colNames[4] = "outstandingfee";

            object[] colData = new object[5];

            string[]   names           = new string[StudentNames.Count];
            string[]   genders         = new string[StudentNames.Count];
            int[]      ages            = new int[StudentNames.Count];
            DateTime[] dobs            = new DateTime[StudentNames.Count];
            double[]   outstandingFees = new double[StudentNames.Count];

            int a = 0;

            foreach (Student stud in StudentNames)
            {
                names[a]           = stud.Name;
                genders[a]         = stud.Gender;
                ages[a]            = stud.Age;
                dobs[a]            = stud.DOB;
                outstandingFees[a] = stud.OutStandingFee;

                a++;
            }

            colData[0] = names;
            colData[1] = genders;
            colData[2] = ages;
            colData[3] = dobs;
            colData[4] = outstandingFees;

            c.Dict dict     = new c.Dict(colNames, colData);
            c.Flip flipData = new c.Flip(dict);

            _queries.LoadStudentsToDB(flipData);
        }
コード例 #12
0
        public void ConvertDictToDataSet()
        {
            DateTime     firstDate  = DateTime.Now;
            DateTime     secondDate = firstDate.AddDays(1);
            const string tableName  = "MyTable";

            c.Dict dict1     = CreateDict(firstDate, secondDate);
            c.Dict dict2     = CreateDict(firstDate, secondDate);
            c.Dict composite = new c.Dict(new string[] { tableName + "1", tableName + "2" }, new object[] { new c.Dict[] { dict1 }, new c.Dict[] { dict2 } });

            DataSet ds = composite.ToDataSet();

            Assert.AreEqual(2, ds.Tables.Count);

            DataTable dt1 = ds.Tables[0];

            CheckDataTable(firstDate, secondDate, dt1, tableName + "1");

            DataTable dt2 = ds.Tables[1];

            CheckDataTable(firstDate, secondDate, dt2, tableName + "2");
        }
コード例 #13
0
        private static DataReaderCollection CreateReaders(c.Dict kdbResult)
        {
            Dictionary <string, IDataReader> tableReaders = new Dictionary <string, IDataReader>();

            string[] tableNames = (string[])kdbResult.x;

            object[] tables = (object[])kdbResult.y;

            for (int i = 0; i < tableNames.Length; i++)
            {
                object[] temp = tables[i] as object[];
                if (temp != null && temp.Length == 0)
                {
                    tableReaders[tableNames[i]] = KdbPlusDataReader.CreateEmptyReader();
                }
                else
                {
                    tableReaders[tableNames[i]] = new KdbPlusDataReader(c.td(tables[i]));
                }
            }

            return(new DataReaderCollection(tableReaders));
        }
コード例 #14
0
ファイル: DataConverterExtensions.cs プロジェクト: sv/kp.net
        /// <summary>
        /// Converts the DataSet into the graph of c.Dict objects.
        /// </summary>
        /// <param name="dataSet">The data set.</param>
        /// <returns></returns>
        public static c.Dict ToDict(this DataSet dataSet)
        {
            Guard.ThrowIfNull(dataSet, "dataSet");
            int tableCount = dataSet.Tables.Count;

            if (tableCount == 0)
            {
                return(CreateEmptyDict());
            }

            string[] columnNames = new string[tableCount];
            object[] columns     = new object[tableCount];

            c.Dict result = new c.Dict(columnNames, columns);

            for (int i = 0; i < tableCount; i++)
            {
                DataTable table = dataSet.Tables[i];
                columnNames[i] = table.TableName ?? String.Empty;
                columns[i]     = new c.Dict[] { table.ToDict() };
            }

            return(result);
        }
コード例 #15
0
ファイル: DataConverterExtensions.cs プロジェクト: sv/kp.net
        /// <summary>
        /// Converts the graph of c.Dict into DataSet
        /// </summary>
        /// <param name="dict">The dict.</param>
        /// <returns></returns>
        public static DataSet ToDataSet(this c.Dict dict)
        {
            Guard.ThrowIfNull(dict, "dict");

            string[] tableNames = (string[])dict.x;
            object[] dicts      = (object[])dict.y;

            DataSet ds = new DataSet();

            int tableCount = tableNames.Length;

            if (tableCount == 0)
            {
                return(ds);
            }

            for (int i = 0; i < tableCount; i++)
            {
                c.Dict tableDict = (c.Dict)((Array)dicts[i]).GetValue(0);
                ds.Tables.Add(tableDict.ToDataTable(tableNames[i]));
            }

            return(ds);
        }
コード例 #16
0
        public void ConnectionIsQNullReturnsFalseForDict()
        {
            c.Dict input = new c.Dict(new string[] { }, new object[] { });

            Assert.IsFalse(c.qn(input));
        }
コード例 #17
0
ファイル: DataConverterExtensions.cs プロジェクト: sv/kp.net
 /// <summary>
 /// Converts c.Dict into DataTable.
 /// </summary>
 /// <param name="dict">The dict.</param>
 /// <returns></returns>
 public static DataTable ToDataTable(this c.Dict dict)
 {
     return(ToDataTable(dict, null));
 }
コード例 #18
0
        public void DictInitialises()
        {
            var dict = new c.Dict(new string[] { "Key_1" }, new object[] { "Value_1" });

            Assert.IsNotNull(dict);
        }
コード例 #19
0
        /// <summary>
        /// Creates the reader from collection.
        /// </summary>
        /// <param name="result">The result.</param>
        /// <returns></returns>
        internal static DbDataReader CreateReaderFromCollection(object result)
        {
            var d = new c.Dict(new[] { "Result" }, new[] { result });

            return(new KdbPlusDataReader(new c.Flip(d)));
        }
コード例 #20
0
        /// <summary>
        /// Creates the reader from primitive.
        /// </summary>
        /// <param name="result">The result.</param>
        /// <returns></returns>
        internal static DbDataReader CreateReaderFromPrimitive(object result)
        {
            var d = new c.Dict(new[] { "Result" }, new object[] { new[] { result } });

            return(new KdbPlusDataReader(new c.Flip(d)));
        }
コード例 #21
0
        public KdbMultipleResult(c.Dict kdbResult)
        {
            Guard.ThrowIfNull(kdbResult, "kdbResult");

            _readers = CreateReaders(kdbResult);
        }