That is because you are not using Zeos correctly, well infact, you are not using any db correctly if your going about it in that way.
What your trying to do, it would seem is setup a master/detail relationship, for that you create one Datasource and then have both tables pointing to it using the mastersource variable.
If you are trying to copy one table to another, you might want to do a while loop, but this is where you don't understand how it works. You assign both Datasets to the same database object/table, not to each other.
I am for now assuming you are using mysql/sql for your database, to update a record that already exists with new information, you need to set the table/dataset to Edit mode ie: ZTable1.edit; and then after assigning the values to the fields, you do a ZTable1.post; to store the new information.
What you need is a redundancy check, Activate the table, check if the record already exists, if it does use table.edit if it does not use table.insert. IF ELSE go go go.
hope that helps