@mikra: Good idea, I could fix the query builder to support this [1]. But it 
does only work for `INSERT` \- so I'm still missing for `UPDATE`.

@mashingan: I don't think I get it. How do I append the `NULL` value?

**[1]**
    
    
     # discard insertID(db, sqlInsert(db, "myTable", ["name", "age"]), "John", 
50)
    
    proc sqlInsert*(table: string, data: varargs[string]): SqlQuery =
      var fields = "INSERT INTO " & table & " ("
      var vals = ""
      for i, d in data:
        if i > 0:
          fields.add(", ")
          vals.add(", ")
        fields.add(d)
        vals.add('?')
      
      result = sql(fields & ") VALUES (" & vals & ")")
    
    
    Run

**[2]**
    
    
     # exec(db, sqlUpdate(db, "myTable", ["age"], ["name"]), nil, "John")
    
    proc sqlUpdate*(table: string, data: varargs[string], where: 
varargs[string]): SqlQuery =
      var fields = "UPDATE " & table & " SET "
      for i, d in data:
        if i > 0:
          fields.add(", ")
        fields.add(d & " = ?")
      var wes = " WHERE "
      for i, d in where:
        if i > 0:
          wes.add(" AND ")
        wes.add(d & " = ?")
      
      result = sql(fields & wes)
    
    
    Run

Reply via email to