I wouldn't know because I haven't tried, but shouldn't this work:
code:
_______......~~~
_,,,,,_......~~~
_,,,,,_......~~~
_,,,,X______X~~~
_,,,,,_......~~~
_,,,,,_......~~~
_______......~~~_ - channel
, - dry ground to be flooded for farming
X - floodgate
. - dry ground to remain dry
~ - river
?(and of course, add supports where needed)
EDIT:
To operate this theoretical idea, open the right floodgate, which will fill all channel tiles. Then open the left floodgate to flood the area between the channels. Next close the left floodgate, and then the right floodgate. Farm.
[ April 02, 2007: Message edited by: Slartibartfast ]