Thanks to all who weighed in.

I wasn't entirely clear.

They're running a compiled 2004 database. And the sub-subtable is working
'fine'. I.e., it can be accessed via the ui and the code that references it
works.

They also gave me the 2004 source code, which I'm able to open and see, in
2004. I was hoping to be able to write an export on the sub-subtable in
2004.

As Tim describes, any code that references the 2nd level won't tokenize and
throws a compiler error if I try to compile. Existing code that references
the sub-subtable 'de-tokenizes' if I touch it in 2004.

The 'put it in an execute' rings a bell and I'll start with that. Thanks!



On Fri, Oct 13, 2017 at 8:50 AM, Tim Nevels via 4D_Tech <
4d_tech@lists.4d.com> wrote:

> > On Oct 13, 2017, at 9:20 AM, Lee Hinde wrote:
> >
> > New client with a database to update to v16. It's currently running in
> > 2004. But it has subtables with subtables, which, as I'm discovering,
> isn't
> > really supported in 2004.
> >
> > So, how did they do that? That is, run a compiled database in 2004 that
> has
> > a two level deep subtable?
> >
> > And, is there a way to reference the 2nd level in 2004?
> >
> > In v16 the 2nd level subtable isn't moved over. The field is in the 1st
> > level subtable. My goal with all this is to write something to migrate
> the
> > data.
>
> I ran into an issue with 2nd level subtables many years ago. You may need
> to do an interim update with 2004 first. Open it in 2004. Gonna be hard to
> do with macOS as you need Mac OS 9 or the old “Classic” environment in
> macOS X. Probably easier to use Windows for the 2004 version.
>
> Create new tables for the subtables and subtables of subtables in 2004.
> Write some code to move the subtable data to the new tables. But doing this
> is tricky because of the method editor. If I remember correctly, the 2004
> method editor will show sub-subtable field references, but as soon as you
> edit a line with the reference (or maybe even retokenize the whole method)
> it drops the sub-subtable references. So you have to replace all these
> lines of code with EXECUTE commands. And you’ll have to write all the
> sub-subtable conversion code as a series of EXECUTE commands for every line
> with a sub-subtable reference. Yes, this is a super big drag.
>
> So old subsubtable code is tokenized correctly and will run interpreted
> and will even compile and run. But the method editor can’t handle it. So as
> long as you don’t touch it, it will keep working. EXECUTE is your savior in
> the case where you need to fix something or write something new.
>
> Tim
>
> ********************************************
> Tim Nevels
> Innovative Solutions
> 785-749-3444
> timnev...@mac.com
> ********************************************
>
> **********************************************************************
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **********************************************************************
>
**********************************************************************
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**********************************************************************

Reply via email to