Пример #1
0
 public void SetObjectValues(List <SqlColumn> columns)
 {
     foreach (SqlColumn col in columns)
     {
         if (col.IsDocument)
         {
             if (!SqlTypes.CanStoreDocument(col.SqlType))
             {
                 throw new Exception("Cannot store document in type " + col.SqlType.SqlTypeName + ".");
             }
             using (FileStream stream = new FileStream(col.ValueString, FileMode.Open, FileAccess.Read))
                 using (BinaryReader reader = new BinaryReader(stream))
                     col.ValueObject = reader.ReadBytes((int)stream.Length);
             continue;
         }
         if (col.ValueString == null)
         {
             if (col.IsNullable)
             {
                 continue;
             }
             else
             {
                 throw new Exception("column " + col.Name + "is not nullable");
             }
         }
         col.ValueObject = SqlTypes.ConvertStringToObject(col.ValueString, col.SqlType, cultureInfo);
     }
 }
Пример #2
0
        public override void ExportDocument(SIEESettings settings, SIEEDocument document, string name, SIEEFieldlist fieldlist)
        {
            List <SqlColumn> columns = new List <SqlColumn>();

            foreach (ColumnDescription colDes in mySettings.Columns.Where(n => n.SqlTypeName != null))
            {
                SqlColumn col = new SqlColumn()
                {
                    Name       = colDes.Name,
                    SqlType    = SqlTypes.GetSqlType(colDes.SqlTypeName),
                    IsDocument = colDes.IsDocument,
                };
                if (colDes.IsDocument)
                {
                    col.ValueString = document.PDFFileName;
                }
                else
                {
                    SIEEField f = fieldlist.Where(n => n.ExternalId == colDes.Name).FirstOrDefault();
                    col.ValueString = f == null ? null : f.Value;
                }
                columns.Add(col);
            }
            try { sqlClient.SetObjectValues(columns); }
            catch (Exception e)
            {
                document.NonRecoverableError = true;
                throw e;
            }
            sqlClient.Insert(columns);
        }
Пример #3
0
        public List <SqlColumn> GetColumns(string tablename = null)
        {
            if (tablename == null)
            {
                tablename = DefaultTable;
            }
            List <SqlColumn> result = new List <SqlColumn>();

            SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM " + tablename, conn);

            adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
            DataTable table = new DataTable();

            adapter.Fill(table);

            foreach (DataColumn dc in table.Columns)
            {
                string sqlType    = getColumnProperty(tablename, dc, "DATA_TYPE");
                bool   isNullable = getColumnProperty(tablename, dc, "IS_NULLABLE").ToUpper() == "YES";

                result.Add(new SqlColumn()
                {
                    Name       = dc.ColumnName,
                    SqlType    = SqlTypes.GetSqlType(sqlType),
                    IsNullable = isNullable,
                });
            }
            return(result);
        }
Пример #4
0
        public void T03_GetColumns()
        {
            ISqlClient       sqlClient = getClient();
            List <SqlColumn> columns   = sqlClient.GetColumns(testTable);

            Assert.AreEqual(columnMetadata.Count, columns.Count);
            foreach (SqlColumn cd in columns)
            {
                ColumnMetadata cmd = columnMetadata.Where(n => n.Fieldname == cd.Name).First();
                if (cmd.Implemented)
                {
                    Assert.AreEqual(SqlTypes.GetSqlType(cmd.Typename).SqlDbType, cd.SqlType.SqlDbType);
                }
                else
                {
                    Assert.IsNull(cd.SqlType);
                }
            }
        }