主题:视图刷新问题
我有一个程序是MDB数据库,用的是命名连接创建连接数据库,当初次运行程序时要新建用户表,并插入默认用户SYSTEM,其代码如下:
IF !IsTableInSQL(nSYS_ConMdb,"Users")&&判断用户表是否存在,不存在则创建一个。
IF SQLEXEC(nSYS_ConMdb,"CREATE TABLE Users (RID AUTOINCREMENT not null primary key,用户名 CHAR(20),密码 CHAR(8),用户类型 Int)")<=0
MESSAGEBOX("创建用户表时失败1!",16,"提示")
QuitAll(1)
ELSE
IF SQLEXEC(nSYS_ConMdb,"INSERT INTO Users (用户名,密码,用户类型) VALUES ('SYSTEM','123',0)")<=0
MESSAGEBOX("创建用户表时失败2!",16,"提示")
QuitAll(1)
ENDIF
ENDIF
ENDIF
*CreateTableView(命名连接名,SQL中的指定表名[,VFP数据库中创建的视图名[,排序字段列表[,查询数据的条件]]])
IF !CreateTableView(cSYS_VIEWCON,"Users","Users","用户类型")
MESSAGEBOX("打开用户表时失败!",16,"提示")
QuitAll(1)
ENDIF
WAIT "" TIMEOUT 1&&
USE "Users" IN 0 ALIAS "cLonginAlias"
IF REQUERY("cLonginAlias")=0&&在此也没有出现刷新失败提示.
MESSAGEBOX("刷新数据失败!",16,"提示")
ENDIF
SELECT "cLonginAlias"
SetCurProp("cLonginAlias","RID")
问题:当不使用["WAIT "" TIMEOUT 1]这句时,如果程序是第一次运行,用户表是读取不了新建时的默认用户记录(即用户表视图为空记录),但使用这句后则可以读取到,不知道为什么会这样?还请各位网友指点一下.
IF !IsTableInSQL(nSYS_ConMdb,"Users")&&判断用户表是否存在,不存在则创建一个。
IF SQLEXEC(nSYS_ConMdb,"CREATE TABLE Users (RID AUTOINCREMENT not null primary key,用户名 CHAR(20),密码 CHAR(8),用户类型 Int)")<=0
MESSAGEBOX("创建用户表时失败1!",16,"提示")
QuitAll(1)
ELSE
IF SQLEXEC(nSYS_ConMdb,"INSERT INTO Users (用户名,密码,用户类型) VALUES ('SYSTEM','123',0)")<=0
MESSAGEBOX("创建用户表时失败2!",16,"提示")
QuitAll(1)
ENDIF
ENDIF
ENDIF
*CreateTableView(命名连接名,SQL中的指定表名[,VFP数据库中创建的视图名[,排序字段列表[,查询数据的条件]]])
IF !CreateTableView(cSYS_VIEWCON,"Users","Users","用户类型")
MESSAGEBOX("打开用户表时失败!",16,"提示")
QuitAll(1)
ENDIF
WAIT "" TIMEOUT 1&&
USE "Users" IN 0 ALIAS "cLonginAlias"
IF REQUERY("cLonginAlias")=0&&在此也没有出现刷新失败提示.
MESSAGEBOX("刷新数据失败!",16,"提示")
ENDIF
SELECT "cLonginAlias"
SetCurProp("cLonginAlias","RID")
问题:当不使用["WAIT "" TIMEOUT 1]这句时,如果程序是第一次运行,用户表是读取不了新建时的默认用户记录(即用户表视图为空记录),但使用这句后则可以读取到,不知道为什么会这样?还请各位网友指点一下.