2022-10-18 17:14
2022-10-18 18:49
2022-10-18 22:38
2022-10-19 08:26
[此贴子已经被作者于2022-10-19 08:58编辑过]
2022-10-19 08:53
2022-10-19 10:20
2022-10-19 10:57
2022-10-19 12:41
2022-10-19 18:04
程序代码:*-- tcAls - 要修改结构的临时表别名
*-- tcDef - 要添加的字段定义: 字段名,类型,长度,小数位,允许空值(0 or 1)
Function FieldAdd(tcAls, tcDef)
Local nOldArea, cTemp, ii, jj, kk
Local cFldName, cFldType, cFldLen, cFldDec, lAllowNull
Local array aOld[1], aNew[1]
m.nOldArea = Select(0)
m.cFldName = GetWordNum(m.tcDef, 1, ',')
m.cFldType = GetWordNum(m.tcDef, 2, ',')
m.cFldLen = Cast(GetWordNum(m.tcDef, 3, ',') as I)
m.cFldDec = Cast(GetWordNum(m.tcDef, 4, ',') as I)
m.lAllowNull = Cast(Cast(GetWordNum(m.tcDef, 5, ',') as I) as L)
m.ii = AFields(m.aOld, m.tcAls)
If Ascan(m.aOld, m.cFldName, 1, -1, 1, 1+2+4) > 0
*-- 字段已经存在
Else
m.ii = m.ii + 1
m.jj = Alen(m.aOld, 2)
Dimension aOld[m.ii, m.jj]
m.aOld[m.ii, 1] = m.cFldName
m.aOld[m.ii, 2] = m.cFldType
m.aOld[m.ii, 3] = m.cFldLen
m.aOld[m.ii, 4] = m.cFldDec
m.aOld[m.ii, 5] = m.lAllowNull
Dimension aNew[m.ii,5]
For m.kk = 1 to Alen(m.aNew, 2)
For m.jj = 1 to m.ii
m.aNew[m.jj, m.kk] = m.aOld[m.jj, m.kk]
EndFor
EndFor
m.cTemp = Sys(2015)
Create Cursor (m.cTemp) from array aNew
Append From Dbf(m.tcAls)
Use Dbf(m.cTemp) Again In Select(m.tcAls) Alias (m.tcAls)
Use in Select(m.cTemp)
EndIf
Select (m.nOldArea)
EndFunc
2022-10-19 18:57