Nadya,
Thanks for the code. I will try it out and let you know how it goes. I am also considering writing some routines to preprocess the sql so that the underscores don't make it into the join in the firstplace. Maybe create some methods like this:
>This is not my code, but the code by my colleague:
>
> IF USED(justname )
> SELECT &justname
> ELSE
> USE (ojc.curtable) in 0 EXCL
> SELECT &justname
> *wait window 'table not there'
> ENDIF
> lnumflds=afields(fldlistall,justname )
> DIMENSION lfldlist(lnumflds)
> idx=0
>
> FOR i=1 to lnumflds
> IF '_A'$fldlistall(i,1)
> idx=idx+1
> lfldlist(idx)=fldlistall(i,1)
> ENDIF
>
> ENDFOR
> lnumchgflds=idx
> IF lnumchgflds>0
> *Wait window nowait 'Number of unclear fields are '+ALLTRIM(STR(lnumchgflds))
> starttime = seconds()
> FOR i=1 to lnumchgflds
> newname=left(lfldlist(i),AT('_A',lfldlist(i))-1)
> ALTER TABLE (tblname) RENAME COLUMN (lfldlist(i)) TO (newname)
>
> ENDFOR
>
> *wait window nowait "ALTRTABL: Total time = " + str(m.endtime - m.starttime, 10, 4)
> endtime = seconds()
> *wait window nowait "ALTRTABL: Total time = " + str(endtime - starttime, 10, 4)
> ENDIF
>
>This code works on tables only. I guess, you can adjust it to work with cursors.
>
>
>>That sounds good Nadya! I was considering doing something like that. It might save me a lot of time. I'd like to see the code. I assume you are using some trick like 'use again', to get the cursor to be updatable?
>>I will email you.
>>
>>Does it just handle _a or does it handle multiple occurrences - _b _c and also, I have a vague memory that vfp handles things differently if the column name is 10 chars???
>>
>>>For cases like this we have a special post-processing altering table structure code. It changes all columns with _a to just fieldname. Send me a letter to work, I'll send you the code on Monday.
>>>
>>>Could be a Wish List for Toledo.
>>>
>>>>In sql server/transact sql when a query such as:
>>>>
>>>>select * from sosord, sostrs where sosord.csono=sostrs.csono
>>>>
>>>>is executed, the key value appears once in the result set as csono. In vfp you end up with csono_a, and csono_b.
>>>>
>>>>If I want my cursor result to be 'clean' and not have the underscores, then I need to explicitly name all the columns, and include the key from only one of the tables, once. But this results in very long query statements. I wrote a little routine to retrieve all of the column names for a given table into a formatted select string, and put it on the clipboard. This helps speed things up, but I still would be able to use select *.
>>>>
>>>>Is there any syntax, or trick that I can use to shorten my select statements. E.g. I wish there was a keyword like
>>>>
>>>>select * from sosord, sostrs where sosord.csono=sostrs.csono NODUPLICATEKEYVALUES
>>>>
>>>>Is there a specific reason why VFP's sql is implemented so differently than TRANSACT-SQL in such a fundamental area?