Пример #1
0
func (this *InsertBuilder) Column(insert *db.Insert) {
	values := insert.GetValues()
	parameters := insert.GetParameters()
	var val string
	for it := values.Iterator(); it.HasNext(); {
		entry := it.Next()
		column := entry.Key.(*db.Column)
		// use only not virtual columns
		token := entry.Value.(db.Tokener)
		// only includes null keys if IgnoreNullKeys is false
		if column.IsKey() && this.translator.IgnoreNullKeys() &&
			db.TOKEN_PARAM == token.GetOperator() {
			param := token.GetValue().(string)
			if parameters[param] != nil {
				val = this.translator.Translate(db.INSERT, token)
			}
		} else {
			val = this.translator.Translate(db.INSERT, token)
		}

		col := this.translator.ColumnName(column)

		if val != "" {
			this.columnPart.Add(col)
			this.valuePart.Add(val)
		}

		val = ""
	}
}