Ejemplo n.º 1
0
 public NpgQuery GetInsertScriptItem(TableData tableData)
 {
     if (tableData.Data.Length == 0)
         return null;
     var parameters = new NpgsqlParameter[tableData.Columns.Length*tableData.Data.Length];
     var insertDataScript = new string[tableData.Data.Length];
     var parametersIndex = 0;
     for (var i = 0; i < tableData.Data.Length; i++)
     {
         var i1 = i;
         insertDataScript[i] = string.Format(
             "({0})",
             string.Join(", ", tableData.Columns.Select(c => string.Format(":{0}", c + i1))));
         var data = tableData.Data[i];
         for (var j = 0; j < tableData.Columns.Length; j++)
         {
             var column = tableData.Columns[j];
             var value = data[j];
             parameters[parametersIndex++] = new NpgsqlParameter(column + i1, value);
         }
     }
     var scriptRow = string.Format(
         "INSERT INTO {0} ({1}) VALUES {2}",
         string.Format("\"{0}\"", tableData.TableName),
         string.Join(", ", tableData.Columns.Select(c => string.Format("\"{0}\"", c))),
         string.Join(", ", insertDataScript));
     return new NpgQuery(scriptRow, parameters);
 }
Ejemplo n.º 2
0
 public void Update(TableData tableData)
 {
     Dictionary<string, SerialHelperItem> items;
     if (!Items.TryGetValue(tableData.TableName, out items))
         return;
     for (var i = 0; i < tableData.Columns.Length; i++)
     {
         SerialHelperItem item;
         if (!items.TryGetValue(tableData.Columns[i], out item))
             continue;
         foreach (var data in tableData.Data)
         {
             var dataValue = data[i];
             long value;
             var longVal = dataValue as long?;
             if (longVal.HasValue)
             {
                 value = longVal.Value;
             }
             else
             {
                 value = (int) dataValue;
             }
             if (value > item.MaxValue)
                 item.MaxValue = value;
         }
     }
 }
Ejemplo n.º 3
0
 public void GetInsertScriptItemEmptyTest()
 {
     var tableData = new TableData
     {
         TableName = "Table",
         Columns = new[] { "id", "name", "data" },
         Data = new object[0][]
     };
     var result = _helper.GetInsertScriptItem(tableData);
     Assert.IsNull(result);
 }
Ejemplo n.º 4
0
 public void GetInsertScriptItemTest()
 {
     var tableData = new TableData
         {
             TableName = "Table",
             Columns = new[] {"id", "name", "data"},
             Data = new[]
                 {
                     new object[] {1, "name1", "data1"}
                 }
         };
     var result = _helper.GetInsertScriptItem(tableData);
     Assert.AreEqual(
         "INSERT INTO \"Table\" (\"id\", \"name\", \"data\") VALUES (:id0, :name0, :data0)",
         result.Text);
     Assert.AreEqual(3, result.Parameters.Length);
     Assert.AreEqual("id0", result.Parameters[0].ParameterName);
     Assert.AreEqual(1, result.Parameters[0].Value);
     Assert.AreEqual("name0", result.Parameters[1].ParameterName);
     Assert.AreEqual("name1", result.Parameters[1].Value);
     Assert.AreEqual("data0", result.Parameters[2].ParameterName);
     Assert.AreEqual("data1", result.Parameters[2].Value);
 }
Ejemplo n.º 5
0
 public void UpdateTest()
 {
     var tableData = new TableData
         {
             Columns = new[] {"id", "serial", "papa"},
             TableName = "Table",
             Data = new[]
                 {
                     new object[] {1, 10, "papa"},
                     new object[] {2, 20, "papa"},
                     new object[] {2, 15, "papa"}
                 }
         };
     _helper.Update(tableData);
     Assert.AreEqual(20, _helper.Items["Table"]["serial"].MaxValue);
 }