2,723
社区成员
发帖
与我相关
我的任务
分享
Create Cursor 表名 (编号 C(13),其他字段1 C(10),其他字段2 I)
Browse Title "现在表是空的"
Select Str(Val(Max(Substr(编号,3)))+1,11) As NewBH Into Cursor T1 From 表名 Where Substr(编号,3,8)=Dtos(Date())
If _Tally>0 And !Isnull(T1.NewBH)
Insert Into 表名 (编号) Values ('XP'+T1.NewBH)
Else
Insert Into 表名 (编号) Values ('XP'+Dtos(Date())+'001')
Endif
Select 表名
Browse Title "现在表中有1条记录"
Select Str(Val(Max(Substr(编号,3)))+1,11) As NewBH Into Cursor T1 From 表名 Where Substr(编号,3,8)=Dtos(Date())
If _Tally>0 And !Isnull(T1.NewBH)
Insert Into 表名 (编号) Values ('XP'+T1.NewBH)
Else
Insert Into 表名 (编号) Values ('XP'+Dtos(Date())+'001')
Endif
Select 表名
Browse Title "现在表中有2条记录"
Return
*-- 对于 dbf 和 临时表(临时表通过视图更新远程表[SQL Server]):
Create Cursor 表名 (编号 C(13),其他字段1 C(10),其他字段2 I)
Browse Title "现在表是空的"
Insert Into 表名 (编号) Select 'XP'+Str(Val(Nvl(Max(Substr(编号,3)),Dtos(Date())+'000'))+1,11) From 表名 Where Substr(编号,3,8)=Dtos(Date())
Browse Title "现在表中有1条记录"
Insert Into 表名 (编号) Select 'XP'+Str(Val(Nvl(Max(Substr(编号,3)),Dtos(Date())+'000'))+1,11) From 表名 Where Substr(编号,3,8)=Dtos(Date())
Browse Title "现在表中有2条记录"
Return
1、我说的就是用代码实现,上面我说的是方法而已,知道方法了就照着方法写代码即可,如:
*-- 此处为插入代码
Begin Transaction
SQLExec(连接句柄,'BEGIN TRANSACTION')
llSuccess=Tableupdate(1,.F.,'视图名')
If llSuccess
SQLExec(连接句柄,'IF @@TRANCOUNT>0 COMMIT TRAN')
End Transaction
Else
SQLExec(连接句柄,'IF @@TRANCOUNT>0 ROLLBACK TRAN')
Rollback
Tablerevert(.T.,'视图名')
Requery('视图名') && 失败后刷新视图
*-- 此处为再次插入代码
Begin Transaction
SQLExec(连接句柄,'BEGIN TRANSACTION')
llSuccess=Tableupdate(1,.F.,'视图名')
If llSuccess
SQLExec(连接句柄,'IF @@TRANCOUNT>0 COMMIT TRAN')
End Transaction
Else
SQLExec(连接句柄,'IF @@TRANCOUNT>0 ROLLBACK TRAN')
Rollback
Tablerevert(.T.,'视图名')
Messagebox("保存失败!操作将还原。",48,"信息提示")
Endif
Endif