Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
How to add a column at a particular position?
Message
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Environment versions
Database:
Visual FoxPro
Miscellaneous
Thread ID:
01018285
Message ID:
01018323
Views:
17
Hi Borislav, thanks for your sample code which give me the idea in how to do it. Since I can quite easily change the position of a field with modi stru, it looks like modi stru is doing a lot of things under the hood.

David


>>I can use "alter table add column" to add a new column at the end of the table column definition. Is there a way to add the new column at a particular position, such as before or after a certain existing column?
>>
>>Thanks!
>
>With ALTER TABLE. No way :o(
>
>USE YourTable
>nNumFields = AFIELDS(aFlds)
>DIMENSTION nNewArray[nNumFields+1,18]
>*** Let's say you want to put your new field in 3th position
>*** AFIELDS gives array with 18 elemets
>
>ACOPY(aFlds,nNewArray,1,18*2,1)  && 18*2 - first two field definitions of the original table
>
>nNewArray[3, 1] = "MyNewField"  && See HELP
>nNewArray[3, 2] = "C"
>nNewArray[3, 4] = 10
>nNewArray[3, 5] = 0
>.....
>nNewArray[3,18] = 0
>
>ACOPY(aFlds,nNewArray,18*3,-1,18*4)
>CREATE TABLE Temptable FROM ARRAY nNewArray
>SELECT TempTable
>APPEND FROM YourTable
>*** DO ALL INDEX ON Here
>CLOSE DATA ALL
>ERASE YourTable.*
>RENAME TempTable.DBF TO YourTable.DBF
>RENAME TempTable.FPT TO YourTable.FPT && If you have a Memo/GENERAL/BLOB fields
>RENAME TempTable.CDX TO YourTable.CDX
>
>
>Never tested this. Be sure you have a good beackup before running this.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform