>Thanks
>
>Great code: still studying on the ADO part ;-)
>
>Jean-Pierre.
:) Don't bother with it much. Just for sampling I included more complex ones. Shape syntax is powerfull but cryptic enough. Generally using VB to generate code is easier (really ?:). Smple syntax is tnSet1 version :
SHAPE TABLE customer ;
APPEND ( (SHAPE TABLE orders ;
APPEND (TABLE orditems RELATE order_id TO order_id)) ;
RELATE cust_id TO cust_id )
select * from customer ;
inner join orders ;
inner join orditems on orders.order_id = orditems.order_id ;
on customer.cust_id = orders.cust_id
For others be carefull '{' is used frequently (braces used in date - easily confusable by regular parentheses).
Last but not least if there aren't any pending updates (why should be with a readonly grid but may) you could save the recordset in XML format. However keep in mind oRS is used by HflexGrid for population only (no binding thereafter). oRS is gone after populating routine ends (.Datasource=oRS). That's a limitation of HFlexGrid. IOW HflexGrid is not editable (assuming you don't want to edit Hflex.Textmatrix in code - and if you do you would manually update base tables).
Good luck :)
Cetin