only_chk.prg
上传用户:gz31567
上传日期:2020-04-16
资源大小:4096k
文件大小:2k
源码类别:

行业应用

开发平台:

VFP

  1. * -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  2. *  文件名: ONLY_CHK.PRG <-- 本文件由 UnFoxAll 创建
  3. * -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  4.  PARAMETER CHK_DBF , CHK_FIELD
  5.   if !used('&chk_dbf')
  6.   use &chk_dbf in 0 share
  7.  ENDIF 
  8.   sele &chk_dbf
  9.   Value_type=type('&chk_field')
  10.  DO CASE 
  11.  CASE VALUE_TYPE = 'N' .OR. VALUE_TYPE = 'Y'
  12.  CHK_MIN = 0
  13.  CASE VALUE_TYPE = 'C'
  14.  CHK_MIN = ' '
  15.  CASE VALUE_TYPE = 'D'
  16.  CHK_MIN = {}
  17.  CASE VALUE_TYPE = 'T'
  18.  CHK_MIN = {}
  19.  OTHERWISE 
  20.   messagebox("数据库“&chk_dbf.”中的字段“&chk_field.”的数据类型是“&Value_type.”,不能进行唯一性检查!",48,"错误") 
  21.  RETURN 
  22.  ENDCASE 
  23.   sele &chk_field from &chk_dbf where .T. into cursor Temp_Only_chk_dbf order by &chk_field
  24.  SELECT TEMP_ONLY_CHK_DBF
  25.  NERROR = 0
  26.  GO TOP
  27.  FIELD_VALUE_OLD = CHK_MIN
  28.  DO WHILE  .NOT. EOF()
  29.   Field_Value_New=&chk_field
  30.  IF FIELD_VALUE_NEW > FIELD_VALUE_OLD
  31.  ELSE 
  32.  NERROR = NERROR + 1
  33.  DO CASE 
  34.  CASE VALUE_TYPE = 'N' .OR. VALUE_TYPE = 'Y'
  35.  FOUND_VALUE = ALLTRIM(STR(FIELD_VALUE_NEW))
  36.  CASE VALUE_TYPE = 'C'
  37.  FOUND_VALUE = ALLTRIM(FIELD_VALUE_NEW)
  38.  CASE VALUE_TYPE = 'D'
  39.  FOUND_VALUE = DTOC(FIELD_VALUE_NEW)
  40.  CASE VALUE_TYPE = 'T'
  41.  FOUND_VALUE = TTOC(FIELD_VALUE_NEW)
  42.  ENDCASE 
  43.   if messagebox("在检查数据库“&chk_dbf.”的字段“&chk_field.”的唯一性时,发现值为“"+Found_value+"”的记录不唯一,请检查!" ,1+48,"发现 "+allt(str(nError))+" 处不唯一性")=2
  44.  EXIT 
  45.  ENDIF 
  46.  ENDIF 
  47.   Field_Value_Old=&chk_field
  48.  SKIP 
  49.  ENDDO 
  50.   sele &chk_dbf
  51.  USE 
  52.  SELECT TEMP_ONLY_CHK_DBF
  53.  USE 
  54.   set message to "数据库“&chk_dbf.”中字段“&chk_field.”的唯一性检查完毕!"
  55.  IF NERROR > 0
  56.   messagebox("因为这是唯一性检查,在正确运行程序前,需确保唯一性的正确性!",48,"警告:数据库“&CHK_DBF.”中字段“&CHK_FIELD.”有 "+allt(str(nError))+" 处不唯一")
  57.  ENDIF 
  58. *