AUTHORS.BAS
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:4k
源码类别:

Windows编程

开发平台:

Visual C++

  1. Option Explicit
  2. Function AlterAuthors (pChannel As Integer)
  3. '
  4. ' This routine alters the Authors table with
  5. ' a TIMESTAMP column. Then it sends a 'dummy' update
  6. ' statement so that every row in the table
  7. ' gets a value in the TIMESTAMP column.
  8. Dim lCmd$, lRetValue As Integer, lInfoText As String, Res%
  9.     lRetValue = False
  10.     lInfoText = mdiMA.panInfo.Caption
  11.     mdiMA.panInfo.Caption = " Altering the authors table with a TIMESTAMP column."
  12.     lCmd$ = "alter table authors add timestamp timestamp NULL "
  13.     Res% = SQLComm%(pChannel, lCmd$)
  14.     If Res% = SUCCEED% Then
  15.         mdiMA.panInfo.Caption = " Every row in the authors table is now being updated."
  16.         lCmd$ = "update authors set au_fname = au_fname"
  17.         Res% = SQLComm%(pChannel, lCmd$)
  18.         If Res% = SUCCEED% Then lRetValue = True
  19.     End If
  20.     mdiMA.panInfo.Caption = lInfoText
  21.     AlterAuthors = lRetValue
  22. End Function
  23. Function AskifAlter ()
  24. '
  25. ' This routine asks if the user wants to
  26. ' alter the Authors table with a TIMESTAMP
  27. ' column.
  28. Dim lMsg$, Res%, lRetValue As Integer
  29.     lMsg$ = "This sample application needs a column with "
  30.     lMsg$ = lMsg$ + " the name TIMESTAMP and the datatype "
  31.     lMsg$ = lMsg$ + " TIMESTAMP in the authors table." + NEWLINE$
  32.     lMsg$ = lMsg$ + NEWLINE$ + "The reason is that this application "
  33.     lMsg$ = lMsg$ + "uses Browse Mode and Optimistic Concurrency "
  34.     lMsg$ = lMsg$ + "Control." + NEWLINE$ + NEWLINE$
  35.     lMsg$ = lMsg$ + "There is no TIMESTAMP column in your authors "
  36.     lMsg$ = lMsg$ + "table at this moment!" + NEWLINE$ + NEWLINE$
  37.     lMsg$ = lMsg$ + "If you click on the OK button the application "
  38.     lMsg$ = lMsg$ + "will create the column for you. If you click "
  39.     lMsg$ = lMsg$ + "on the cancel button you won't be able to run "
  40.     lMsg$ = lMsg$ + "this sample until the column is there."
  41.     Beep
  42.     Res% = MsgBox(lMsg$, 17, "Alter table authors")
  43.     If Res% = IDOK Then
  44.         lRetValue = True
  45.     Else
  46.         lRetValue = False
  47.     End If
  48.     AskifAlter = lRetValue
  49. End Function
  50. Function CheckifTimestamp (pChannel As Integer)
  51. '
  52. ' This routine checks if there is a TIMESTAMP column
  53. ' for the table Authors.
  54. Dim lCmd$, lRetValue As Integer, Res%
  55.     lRetValue = False
  56.     lCmd$ = "select count(*) from sysobjects so, syscolumns "
  57.     lCmd$ = lCmd$ + "sc where so.id = sc.id "
  58.     lCmd$ = lCmd$ + "and so.name = 'authors' "
  59.     lCmd$ = lCmd$ + "and sc.name = 'timestamp' "
  60.     lCmd$ = lCmd$ + "and sc.type = 37"
  61.     Res% = SQLComm%(pChannel, lCmd$)
  62.     If Res% = SUCCEED% Then
  63.         Res% = SQLNextRow(pChannel)
  64.         If Res% = REGROW Then
  65.             If Val(SQLData(pChannel, 1)) > 0 Then
  66.                 lRetValue = True
  67.             End If
  68.         End If
  69.     End If
  70.     CheckifTimestamp = lRetValue
  71. End Function
  72. Function EmptyQualString ()
  73. '
  74. ' This routine lets the user know that some condition
  75. ' for using Concurrency Control with Browse Mode is
  76. ' not fullfilled.
  77. Dim lRetValue As String
  78.     lRetValue = "The qual string is empty, which is not acceptable."
  79.     lRetValue = lRetValue + NEWLINE$ + NEWLINE$
  80.     lRetValue = lRetValue + "There are three mandatory preconditions for using "
  81.     lRetValue = lRetValue + "Concurrency Control with Browse Mode."
  82.     lRetValue = lRetValue + NEWLINE$ + NEWLINE$
  83.     lRetValue = lRetValue + "1 - You must have a unique index."
  84.     lRetValue = lRetValue + NEWLINE$ + NEWLINE$
  85.     lRetValue = lRetValue + "2 - You must have a column named TIMESTAMP with the "
  86.     lRetValue = lRetValue + " datatype TIMESTAMP in the specific table."
  87.     lRetValue = lRetValue + NEWLINE$ + NEWLINE$
  88.     lRetValue = lRetValue + "3 - You must add 'FOR BROWSE' to your SQL select statement "
  89.     lRetValue = lRetValue + NEWLINE$ + NEWLINE$
  90.     lRetValue = lRetValue + "Check to see if the unique index on the authors table "
  91.     lRetValue = lRetValue + "has been dropped. That might be the problem."
  92.     lRetValue = lRetValue + NEWLINE$ + NEWLINE$
  93.     lRetValue = lRetValue + "This operation will not go through to SQL Server."
  94.     EmptyQualString = lRetValue
  95.     
  96. End Function