コード例 #1
0
        public virtual capex.data.SQLStatement prepareDeleteStatement(string table, cape.DynamicMap criteria)
        {
            if (cape.String.isEmpty(table))
            {
                return(null);
            }
            var sb = new cape.StringBuilder();

            sb.append("DELETE FROM ");
            sb.append(table);
            var @params = new System.Collections.Generic.List <object>();

            if (criteria != null && criteria.getCount() > 0)
            {
                sb.append(" WHERE ");
                var first     = true;
                var criterias = criteria.iterateKeys();
                while (criterias != null)
                {
                    var criterium = criterias.next();
                    if (object.Equals(criterium, null))
                    {
                        break;
                    }
                    if (first == false)
                    {
                        sb.append(" AND ");
                    }
                    sb.append(criterium);
                    sb.append(" = ?");
                    first = false;
                    @params.Add(criteria.get(criterium));
                }
            }
            sb.append(';');
            var stmt = prepare(sb.toString());

            if (stmt == null)
            {
                return(null);
            }
            if (@params != null)
            {
                var n = 0;
                var m = @params.Count;
                for (n = 0; n < m; n++)
                {
                    var o = @params[n];
                    if (o != null)
                    {
                        if (o is byte[])
                        {
                            stmt.addParamBlob(cape.Buffer.asBuffer(o));
                        }
                        else
                        {
                            var s = cape.String.asString(o);
                            if (object.Equals(s, null))
                            {
                                s = "";
                            }
                            stmt.addParamString(s);
                        }
                    }
                }
            }
            return(stmt);
        }
コード例 #2
0
        public virtual capex.data.SQLStatement prepareInsertStatement(string table, cape.DynamicMap data)
        {
            if (cape.String.isEmpty(table) || data == null || data.getCount() < 1)
            {
                return(null);
            }
            var sb = new cape.StringBuilder();

            sb.append("INSERT INTO ");
            sb.append(table);
            sb.append(" ( ");
            var first = true;
            var keys  = data.getKeys();

            if (keys != null)
            {
                var n = 0;
                var m = keys.Count;
                for (n = 0; n < m; n++)
                {
                    var key = keys[n];
                    if (key != null)
                    {
                        if (first == false)
                        {
                            sb.append(',');
                        }
                        sb.append(key as string);
                        first = false;
                    }
                }
            }
            sb.append(" ) VALUES ( ");
            first = true;
            if (keys != null)
            {
                var n2 = 0;
                var m2 = keys.Count;
                for (n2 = 0; n2 < m2; n2++)
                {
                    var key1 = keys[n2];
                    if (key1 != null)
                    {
                        if (first == false)
                        {
                            sb.append(',');
                        }
                        sb.append('?');
                        first = false;
                    }
                }
            }
            sb.append(" );");
            var stmt = prepare(sb.toString());

            if (stmt == null)
            {
                return(null);
            }
            if (keys != null)
            {
                var n3 = 0;
                var m3 = keys.Count;
                for (n3 = 0; n3 < m3; n3++)
                {
                    var key2 = keys[n3];
                    if (key2 != null)
                    {
                        var o = data.get(key2);
                        if (o is string || o is cape.StringObject)
                        {
                            stmt.addParamString(cape.String.asString(o));
                        }
                        else if (o is cape.IntegerObject)
                        {
                            stmt.addParamInteger(cape.Integer.asInteger(o));
                        }
                        else if (o is cape.LongIntegerObject)
                        {
                            stmt.addParamLongInteger(cape.LongInteger.asLong(o));
                        }
                        else if (o is cape.DoubleObject)
                        {
                            stmt.addParamDouble(cape.Double.asDouble(o));
                        }
                        else if (o is cape.BufferObject)
                        {
                            stmt.addParamBlob(((cape.BufferObject)o).toBuffer());
                        }
                        else if (o is byte[])
                        {
                            stmt.addParamBlob(o as byte[]);
                        }
                        else
                        {
                            var s = o as string;
                            if (object.Equals(s, null))
                            {
                                s = "";
                            }
                            stmt.addParamString(s);
                        }
                    }
                }
            }
            return(stmt);
        }