[Ur] Error in final record unification
    Yves Cloutier 
    yves.cloutier at gmail.com
       
    Sun Mar 27 16:11:57 EDT 2016
    
    
  
Hello, Iam also stuck with this error when trying to delete a record using
dml:
(* Delete a given work experience *)
and deleteExperience experienceId () =
    dml (DELETE FROM experienceTable
         WHERE experienceTable.Id = {[experienceId]});
    xml <- refresh ();
    return <xml><body>
      {xml}
    </body></xml>
But when compiling I get:
/home/drifter/dev/urweb/portfolipro/portfolipro.ur:39:15: (to 39:52)
Error in final record unification
Can't unify record constructors
Have:
<UNIF:U1610::{{Type}}> ++
 [ExperienceTable = ([Id = int]) ++ <UNIF:U1611::{Type}>]
Need:  [T = [Id = int, Description = string]]
/home/drifter/dev/urweb/portfolipro/portfolipro.ur:39:15: (to 39:52)
Stuck unifying these records after canceling matching pieces:
Have:
([ExperienceTable = ([Id = int]) ++ <UNIF:U1611::{Type}>]) ++
 <UNIF:U1610::{{Type}}>
Need:  [T = [Id = int, Description = string]]
I used as a basis existing code from a Ur/Web demo below and modified
simply changing table names for my own.
    and delete a () =
    dml (DELETE FROM t
         WHERE t.A = {[a]});
My complete code is below:
table experienceTable : { Id : int, Description : string}
  PRIMARY KEY Id
fun refresh () =
    rows <- queryX (SELECT * FROM experienceTable)
            (fn row => <xml><tr>
              <td>{[row.ExperienceTable.Id]}</td>
<td>{[row.ExperienceTable.Description]}</td>
              <td><form><submit action={deleteExperience
row.ExperienceTable.Id} value="Delete"/></form></td>
            </tr></xml>);
    return <xml>
      <table border=1>
        <tr> <th>Id</th> <th>Description</th></tr>
        {rows}
      </table>
      <br/><hr/><br/>
      <form>
        <table>
          <tr> <th>Id:</th> <td><textbox{#Id}/></td> </tr>
          <tr> <th>Description:</th><td><textbox{#Description}/></td> </tr>
          <tr> <th/> <td><submit action={addExperience} value="Add"/></td> </tr>
        </table>
      </form>
    </xml>
(* Add a new work experience *)
and addExperience experience =
    dml (INSERT INTO experienceTable (Id, Description)
         VALUES ({[readError experience.Id]}, {[readError
experience.Description]}));
    xml <- refresh ();
    return <xml><body>
      {xml}
    </body></xml>
(* Delete a given experience *)
and deleteExperience experienceId () =
    dml (DELETE FROM experienceTable
         WHERE experienceTable.Id = {[experienceId]});
    xml <- refresh ();
    return <xml><body>
      {xml}
    </body></xml>
fun main () =
    xml <- refresh ();
    return <xml><body>
      {xml}
    </body></xml>
Any pointers would be appreciated!
yc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.impredicative.com/pipermail/ur/attachments/20160327/ca1f3e90/attachment.html>
    
    
More information about the Ur
mailing list