AUTHORS.BAS
资源名称:MSDN_VC98.zip [点击查看]
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:4k
源码类别:
Windows编程
开发平台:
Visual C++
- Option Explicit
- Function AlterAuthors (pChannel As Integer)
- '
- ' This routine alters the Authors table with
- ' a TIMESTAMP column. Then it sends a 'dummy' update
- ' statement so that every row in the table
- ' gets a value in the TIMESTAMP column.
- Dim lCmd$, lRetValue As Integer, lInfoText As String, Res%
- lRetValue = False
- lInfoText = mdiMA.panInfo.Caption
- mdiMA.panInfo.Caption = " Altering the authors table with a TIMESTAMP column."
- lCmd$ = "alter table authors add timestamp timestamp NULL "
- Res% = SQLComm%(pChannel, lCmd$)
- If Res% = SUCCEED% Then
- mdiMA.panInfo.Caption = " Every row in the authors table is now being updated."
- lCmd$ = "update authors set au_fname = au_fname"
- Res% = SQLComm%(pChannel, lCmd$)
- If Res% = SUCCEED% Then lRetValue = True
- End If
- mdiMA.panInfo.Caption = lInfoText
- AlterAuthors = lRetValue
- End Function
- Function AskifAlter ()
- '
- ' This routine asks if the user wants to
- ' alter the Authors table with a TIMESTAMP
- ' column.
- Dim lMsg$, Res%, lRetValue As Integer
- lMsg$ = "This sample application needs a column with "
- lMsg$ = lMsg$ + " the name TIMESTAMP and the datatype "
- lMsg$ = lMsg$ + " TIMESTAMP in the authors table." + NEWLINE$
- lMsg$ = lMsg$ + NEWLINE$ + "The reason is that this application "
- lMsg$ = lMsg$ + "uses Browse Mode and Optimistic Concurrency "
- lMsg$ = lMsg$ + "Control." + NEWLINE$ + NEWLINE$
- lMsg$ = lMsg$ + "There is no TIMESTAMP column in your authors "
- lMsg$ = lMsg$ + "table at this moment!" + NEWLINE$ + NEWLINE$
- lMsg$ = lMsg$ + "If you click on the OK button the application "
- lMsg$ = lMsg$ + "will create the column for you. If you click "
- lMsg$ = lMsg$ + "on the cancel button you won't be able to run "
- lMsg$ = lMsg$ + "this sample until the column is there."
- Beep
- Res% = MsgBox(lMsg$, 17, "Alter table authors")
- If Res% = IDOK Then
- lRetValue = True
- Else
- lRetValue = False
- End If
- AskifAlter = lRetValue
- End Function
- Function CheckifTimestamp (pChannel As Integer)
- '
- ' This routine checks if there is a TIMESTAMP column
- ' for the table Authors.
- Dim lCmd$, lRetValue As Integer, Res%
- lRetValue = False
- lCmd$ = "select count(*) from sysobjects so, syscolumns "
- lCmd$ = lCmd$ + "sc where so.id = sc.id "
- lCmd$ = lCmd$ + "and so.name = 'authors' "
- lCmd$ = lCmd$ + "and sc.name = 'timestamp' "
- lCmd$ = lCmd$ + "and sc.type = 37"
- Res% = SQLComm%(pChannel, lCmd$)
- If Res% = SUCCEED% Then
- Res% = SQLNextRow(pChannel)
- If Res% = REGROW Then
- If Val(SQLData(pChannel, 1)) > 0 Then
- lRetValue = True
- End If
- End If
- End If
- CheckifTimestamp = lRetValue
- End Function
- Function EmptyQualString ()
- '
- ' This routine lets the user know that some condition
- ' for using Concurrency Control with Browse Mode is
- ' not fullfilled.
- Dim lRetValue As String
- lRetValue = "The qual string is empty, which is not acceptable."
- lRetValue = lRetValue + NEWLINE$ + NEWLINE$
- lRetValue = lRetValue + "There are three mandatory preconditions for using "
- lRetValue = lRetValue + "Concurrency Control with Browse Mode."
- lRetValue = lRetValue + NEWLINE$ + NEWLINE$
- lRetValue = lRetValue + "1 - You must have a unique index."
- lRetValue = lRetValue + NEWLINE$ + NEWLINE$
- lRetValue = lRetValue + "2 - You must have a column named TIMESTAMP with the "
- lRetValue = lRetValue + " datatype TIMESTAMP in the specific table."
- lRetValue = lRetValue + NEWLINE$ + NEWLINE$
- lRetValue = lRetValue + "3 - You must add 'FOR BROWSE' to your SQL select statement "
- lRetValue = lRetValue + NEWLINE$ + NEWLINE$
- lRetValue = lRetValue + "Check to see if the unique index on the authors table "
- lRetValue = lRetValue + "has been dropped. That might be the problem."
- lRetValue = lRetValue + NEWLINE$ + NEWLINE$
- lRetValue = lRetValue + "This operation will not go through to SQL Server."
- EmptyQualString = lRetValue
- End Function