Пример #1
0
        public void ExecuteDelete(CTable table)
        {
            var cassandraSession = CassandraCluster.Connect(table.KeySpace);

            foreach (var row in table.Data)
            {
                StringBuilder cqlQuery = new StringBuilder();

                cqlQuery.Append($"DELETE FROM {table.Name} ");
                cqlQuery.Append("WHERE ");
                bool firstField          = true;
                var  cassandraParameters = new object[row.Count(x => x.IsPrimaryKey)];
                var  pkItemIndex         = 0;

                foreach (var field in row.Where(x => x.IsPrimaryKey))
                {
                    if (firstField == false)
                    {
                        cqlQuery.Append(" AND ");
                    }
                    cqlQuery.Append($" {field.Name} = ? ");

                    cassandraParameters[pkItemIndex] = field.Value;

                    firstField = false;
                    pkItemIndex++;
                }

                var ps = cassandraSession.Prepare(cqlQuery.ToString());
                var cassandraStatement = ps.Bind(cassandraParameters);
                cassandraSession.Execute(cassandraStatement);
            }
        }
Пример #2
0
        public void ExecuteInsert(CTable table)
        {
            var cassandraSession = CassandraCluster.Connect(table.KeySpace);


            foreach (var row in table.Data)
            {
                StringBuilder cqlQuery  = new StringBuilder();
                StringBuilder cqlValues = new StringBuilder();
                cqlQuery.Append($"INSERT INTO {table.Name} ");
                cqlQuery.Append("(");
                bool firstField          = true;
                var  cassandraParameters = new object[row.Count()];
                var  itemIndex           = 0;
                foreach (var field in row)
                {
                    if (firstField == false)
                    {
                        cqlQuery.Append(",");
                        cqlValues.Append(",");
                    }
                    cqlQuery.Append(field.Name);
                    cqlValues.Append("?");

                    cassandraParameters[itemIndex] = field.Value;

                    firstField = false;
                    itemIndex++;
                }
                cqlQuery.Append(")");
                cqlQuery.Append($" VALUES ({cqlValues.ToString()}); ");
                var ps = cassandraSession.Prepare(cqlQuery.ToString());
                var cassandraStatement = ps.Bind(cassandraParameters);
                cassandraSession.Execute(cassandraStatement);
            }
        }