|
Создание базы данных |
911End Sub29122913' звук нажатия кнопки2914Public Sub SoundClick() 2915 Call sndPlaySound("Data\Click. wav", SND_ASYNC + SND_FILENAME + SND_LOOP + SND_APPLICATION) 2916End Sub29172918Public Function IsInteger(ByVal str$) As Boolean2919 Dim Arr(1 To 4) As String * 12920 Arr(1) = "e": Arr(2) = "E": Arr(3) = ",": Arr(4) = ". "2921 IsInteger = True2922 If IsNumeric(str) Then2923 For i% = LBound(Arr) To UBound(Arr) 2924 If (InStr(1, str, Arr(i)) > 0) Then2925 IsInteger = False2926 Exit For2927 End If2928 Next i2929 Else2930 IsInteger = False2931 End If2932End Function29332934Public Sub ButEnabled(Pict As Image, Lbl As Label, enbl As Boolean) 2935 If enbl Then2936 Pict. Picture = MainForm. ButtonImageList. ListImages(1). Picture2937 Lbl. MousePointer = 12938 Else2939 Pict. Picture = MainForm. ButtonImageList. ListImages(2). Picture2940 Lbl. MousePointer = 122941 End If2942 Lbl. Tag = CInt(enbl) 2943End SubМодуль: QueryRunner. bas2944Public QRDBIndex%29452946'***********************************2947' Запросы чувствительны к регистру! 2948'***********************************29492950' константы видов запросов2951 ' ОБЯЗАТЕЛЬНО 3 ЗНАКА2952Public Const sAdd$ = "Add"2953Public Const sDel$ = "Del"2954Public Const sSort$ = "Srt"2955Public Const sOut$ = "Out"2956Public Const sSwap$ = "Swp"2957Public Const sChange$ = "Chg"29582959' константы подтипов запросов2960Public Const sCol$ = "Col"2961Public Const sRow$ = "Row"2962Public Const sTable$ = "Tbl" ' только для использования в запросе Вывод2963Public Const sAZ$ = "AZ"2964Public Const sZA$ = "ZA"2965Public Const sEqual$ = "? ="2966Public Const sAbove$ = "? >"2967Public Const sBelow$ = "? <"2968Public Const sCountEqual$ = "+="2969Public Const sCountAbove$ = "+>"2970Public Const sCountBelow$ = "+<"2971Public Const sI$ = "i"2972Public Const sS$ = "s"2973Public Const sYes$ = "yes"2974Public Const sNo$ = "no"2975Public Const sType$ = "Type"2976Public Const sName$ = "Name"29772978' остальные константы2979Public Const sSep$ = "; "29802981'************************ Формирует строку добавления 'What' ************************2982Public Function Generate_Add(ByVal what$) As String2983 If (what = sCol) Then2984 s$ = AddColForm. AddColDlg(QRDBIndex) 2985 If (s <> "") Then2986 Generate_Add = sAdd + sCol + "(" + s + ")"2987 Else2988 Generate_Add = ""2989 End If2990 Else2991 Generate_Add = sAdd + sRow + "()"2992 End If2993End Function29942995'************************ Формирует строку удаления 'What' ************************2996Public Function Generate_Del(ByVal what$) As String2997 With SelectForm. CheckConfirm2998. value = 12999. Visible = True3000 End With3001 Dim conf$3002 3003 If (what = sCol) Then3004 s$ = SelectForm. SelectDlg(QRDBIndex, "Выберите удаляемое поле", sCol) 3005 If (s <> - 1) Then3006 If (SelectForm. CheckConfirm. value = 1) Then3007 conf = sYes3008 Else3009 conf = sNo3010 End If3011 Generate_Del = sDel + sCol + "(" + s + ", " + conf + ")"3012 Else3013 Generate_Del = ""3014 End If3015 Else3016 s$ = SelectForm. SelectDlg(QRDBIndex, "Выберите удаляемую запись", sRow) 3017 If (s <> - 1) Then3018 If (SelectForm. CheckConfirm. value = 1) Then3019 conf = sYes3020 Else3021 conf = sNo3022 End If3023 Generate_Del = sDel + sRow + "(" + s + ", " + conf + ")"3024 Else3025 Generate_Del = ""3026 End If3027 End If3028End Function30293030'************************ Формирует строку сортировки по 'What' ************************3031Public Function Generate_Sort(ByVal what$) As String3032 SelectForm. CheckConfirm. Visible = False30333034 s$ = SelectForm. SelectDlg(QRDBIndex, "Выберите поле сортировки", sCol) 3035 If (s <> - 1) Then3036 Generate_Sort = sSort + "(" + s + ", " + what + ")"3037 Else3038 Generate_Sort = ""3039 End If3040End Function30413042'************************ Формирует строку вывода по 'What' ************************3043Public Function Generate_Out(ByVal what$) As String3044 Generate_Out = ""3045 SelectForm. CheckConfirm. Visible = False3046 Dim str$3047 3048 s$ = SelectForm. SelectDlg(QRDBIndex, "Выберите поле", sCol) 3049 If (s <> "-1") Then3050 str = Trim(InputForm. InputVal("Введите относительное значение")) 3051 If (str <> "") Then3052 Dim CreateNewTab As Boolean3053 CreateNewTab = (MsgForm. QuestMsg("Выводить в новую таблицу? Нет для вывода в уже существующую. ") = resOk) 3054 If (Not CreateNewTab) Then3055 Table$ = SelectForm. SelectDlg(QRDBIndex, "Выберите таблицу", sTable) 3056 If (Table = "-1") Then Exit Function3057 Generate_Out = sOut + "(" + s + ", " + what + str + ", " + Table + ")"3058 Else3059 Generate_Out = sOut + "(" + s + ", " + what + str + ")"3060 End If3061 Else3062 Call MsgForm. ErrorMsg("Не задано относительное значение! ") 3063 End If3064 End If3065End Function30663067'************************ Формирует строку обмена по 'What' ************************3068Public Function Generate_Swap(ByVal what$) As String3069 If (what = sCol) Then3070 s$ = SelectForm. MultiSelectDlg(QRDBIndex, "Выберите 2 обмениваемых поля", sCol) 3071 If (s <> "") Then3072 p% = InStr(1, s, ",") 3073 Generate_Swap = sSwap + sCol + "(" + Left(s, p - 1) + ", " + Mid(s, p + 1) + ")"3074 Else3075 Generate_Swap = ""3076 End If3077 Else3078 s$ = SelectForm. MultiSelectDlg(QRDBIndex, "Выберите 2 обмениваемые записи", sRow) 3079 If (s <> "") Then3080 p% = InStr(1, s, ",") 3081 Generate_Swap = sSwap + sRow + "(" + Left(s, p - 1) + ", " + Mid(s, p + 1) + ")"3082 Else3083 Generate_Swap = ""3084 End If3085 End If3086End Function30873088'************************ Формирует строку изменения 'What' ************************3089Public Function Generate_Change(ByVal what$) As String3090 Generate_Change = ""3091 SelectForm. CheckConfirm. Visible = False3092 3093 s$ = SelectForm. SelectDlg(QRDBIndex, "Выберите изменяемое поле", sCol) 3094 If (s = "-1") Then Exit Function3095 Select Case what3096 Case sType ' Изменение типа поля3097 Generate_Change = sChange + sType + "(" + s + ")"3098 Case sName ' Изменение названия столбца3099 Name$ = InputForm. InputVal("Введите новое название поля") 3100 If (Name = "") Then Exit Function3101 Generate_Change = sChange + sName + "(" + s + ", " + Name + ")"3102 End Select3103End Function31043105Sub ErrorInQuery() 3106 Call MsgForm. ErrorMsg("Ошибка в запросе! ") 3107End Sub31083109Function TestZero(i%) 3110 If (i = 0) Then3111 Call ErrorInQuery3112 TestZero = True3113 Else3114 TestZero = False3115 End If3116End Function31173118Sub AddRun(what$, str$) 3119 Select Case what3120 Case sCol3121 ' заголовок3122 p% = InStr(1, str, ",") 3123 If TestZero(p) Then Exit Sub3124 title$ = Trim(Left(str, p - 1)) 3125 str = Mid(str, p + 1) 3126 ' тип3127 p = InStr(1, str, ",") 3128 If TestZero(p) Then Exit Sub3129 ColType$ = Trim(Left(str, p - 1)) 3130 str = Mid(str, p + 1) 31313132 ' начальное значение3133 p = InStr(1, str, ",") 3134 If TestZero(p) Then Exit Sub3135 StValStr$ = Trim(Left(str, p - 1)) 3136 str = Mid(str, p + 1) 3137 3138 ' позиция3139 ColPosStr$ = str3140 If (Not IsNumeric(ColPosStr)) Then3141 Call ErrorInQuery3142 Exit Sub3143 End If3144 ColPos% = CInt(ColPosStr) 3145 3146 If ItColAlreadyCreate(QRDBIndex, title) Then3147 Call MsgForm. ErrorMsg("Добавляемое поле уже существует! ") 3148 Exit Sub3149 End If3150 3151 ' в зависимости от типа определяю значение3152 Select Case ColType3153 Case sI3154 If (Not IsInteger(StValStr)) Then3155 Call ErrorInQuery3156 Exit Sub3157 End If3158 stval = CInt(StValStr) 3159 Call AddCol(QRDBIndex, ccInteger, title, stval, ColPos) 3160 Case sS3161 stval = CStr(StValStr) 3162 Call AddCol(QRDBIndex, ccString, title, stval, ColPos) 3163 Case Default3164 Call ErrorInQuery3165 Exit Sub3166 End Select31673168 Case sRow3169 If (DB(QRDBIndex). Header. ColCount > 0) Then3170 Dim row() As Variant3171 ReDim row(DB(QRDBIndex). Header. ColCount - 1) 3172 For i = 0 To DB(QRDBIndex). Header. ColCount - 13173 row(i) = DB(QRDBIndex). Cols(i). DefValue3174 Next i3175 If (Not FindRow(QRDBIndex, row)) Then3176 Call AddField(QRDBIndex, row) 3177 Else3178 Call MsgForm. ErrorMsg("Добавляемый столбец дублируется! ") 3179 End If3180 Else3181 Call MsgForm. ErrorMsg("Нельзя добавлять записи в БД без полей! ") 3182 End If3183 End Select3184 3185End Sub31863187Sub DelRun(what$, str$) 3188 p% = InStr(1, str, ",") 3189 If TestZero(p) Then Exit Sub3190 IndexStr$ = Trim(Left(str, p - 1)) 3191 If (Not IsInteger(IndexStr)) Then3192 Call ErrorInQuery3193 Exit Sub3194 End If3195 Index% = CInt(IndexStr) 3196 str = Mid(str, p + 1) 3197 ConfirmStr$ = Trim(str) 3198 Dim Confirm As Boolean3199 Select Case ConfirmStr3200 Case sYes3201 Confirm = True3202 Case sNo3203 Confirm = False3204 Case Default3205 Call ErrorInQuery3206 Exit Sub3207 End Select3208 3209 Select Case what3210 Case sCol3211 If (DB(QRDBIndex). Header. ColCount > 0) Then3212 Call DelCol_(QRDBIndex, Index, Confirm) 3213 Else3214 Call MsgForm. ErrorMsg("В БД нет полей! ") 3215 Exit Sub3216 End If3217 Case sRow3218 If (DB(QRDBIndex). Header. RowCount > 0) Then3219 Call DelRow_(QRDBIndex, Index, Confirm) 3220 Else3221 Call MsgForm. ErrorMsg("В БД нет записей! ") 3222 Exit Sub3223 End If3224 End Select3225End Sub32263227Sub SortRun(str$) 3228 If (DB(QRDBIndex). Header. ColCount = 0) Or (DB(QRDBIndex). Header. RowCount = 0) Then3229 Call MsgForm. ErrorMsg("Нечего сортировать! ") 3230 Exit Sub3231 End If3232 3233 p% = InStr(1, str, ",") 3234 If TestZero(p) Then Exit Sub3235 what$ = Trim(Left(str, p - 1)) 3236 3237 If (Not IsInteger(what)) Then3238 Call ErrorInQuery3239 Exit Sub3240 End If3241 3242 whatint% = CInt(what) 3243 3244 If (whatint < 0) Or (whatint > DB(QRDBIndex). Header. ColCount - 1) Then3245 Call ErrorInQuery3246 Exit Sub3247 End If3248 3249 Mode$ = Trim(Mid(str, p + 1)) 3250 3251 Select Case Mode3252 Case sAZ3253 s$ = "А->Я"3254 Case sZA3255 s$ = "Я->А"3256 Case Default3257 Call ErrorInQuery3258 Exit Sub3259 End Select3260 3261 Count% = MainForm. TabStrip. Tabs. Count3262 ReDim Preserve DB(Count) 3263 3264 DB(Count) = DB(QRDBIndex) 3265 3266 MainForm. TabStrip. Tabs. Add pvCaption: =s, pvImage: =13267 3268 Dim find As Boolean, needswap As Boolean3269 Dim tmp As TDBElem3270 With DB(Count) 3271 Do3272 find = False3273 For R% = 1 To. Header. RowCount - 13274 If (Mode = sZA) Then3275 needswap = (. Rows(R). Fields(whatint) >. Rows(R - 1). Fields(whatint)) 3276 Else3277 needswap = (. Rows(R). Fields(whatint) <. Rows(R - 1). Fields(whatint)) 3278 End If3279 If (needswap) Then3280 tmp =. Rows(R) 3281. Rows(R) =. Rows(R - 1) 3282. Rows(R - 1) = tmp3283 find = True3284 End If3285 Next R3286 Loop While (find) 3287 End With3288End Sub32893290Function Equal(ByVal col%, ByVal row%, ByVal cmpstr$) As Long3291 If (DB(QRDBIndex). Cols(col). Class = ccInteger) Then3292 Rval = CLng(DB(QRDBIndex). Rows(row). Fields(col)) 3293 Equal = (Rval - CLng(cmpstr)) 3294 Else3295 Rval = CStr(DB(QRDBIndex). Rows(row). Fields(col)) 3296 If (Rval = cmpstr) Then3297 Equal = 03298 Else3299 If (Rval > cmpstr) Then3300 Equal = 13301 Else3302 Equal = - 13303 End If3304 End If3305 End If3306End Function33073308Function CalcCount(Index%, c%, value$) As Integer3309 Count% = 03310 For i% = 0 To (DB(Index). Header. RowCount - 1) 3311 If (CStr(DB(Index). Rows(i). Fields(c)) = value) Then Count = Count + 13312 Next i3313 CalcCount = Count3314End Function33153316Function EarlierDontFind(Index%, c%, R%, value$) As Boolean3317 For i% = 0 To (R - 1) 3318 If (CStr(DB(Index). Rows(i). Fields(c)) = value) Then3319 EarlierDontFind = False3320 Exit Function3321 End If3322 Next i3323 EarlierDontFind = True3324End Function33253326Public Function FindRow(Index%, row()) 3327 For R% = 0 To DB(Index). Header. RowCount - 13328 Sum% = 03329 For c% = 0 To DB(Index). Header. ColCount - 13330 If (CStr(DB(Index). Rows(R). Fields(c)) = row(c)) Then Sum = Sum + 13331 Next c3332 If (Sum = DB(Index). Header. ColCount) Then3333 FindRow = True3334 Exit Function3335 End If3336 Next R3337 FindRow = False3338End Function33393340Sub OutRun(str$) 3341 If (DB(QRDBIndex). Header. ColCount = 0) Or (DB(QRDBIndex). Header. RowCount = 0) Then3342 Call MsgForm. ErrorMsg("Не с чем сравнивать! ") 3343 Exit Sub3344 End If3345 3346 p% = InStr(1, str, ",") 3347 what$ = Trim(Left(str, p - 1)) 3348 3349 If (Not IsInteger(what)) Then3350 Call ErrorInQuery3351 Exit Sub3352 End If3353 3354 whatint% = CInt(what) 3355 3356 If (whatint < 0) Or (whatint > DB(QRDBIndex). Header. ColCount - 1) Then3357 Call ErrorInQuery3358 Exit Sub3359 End If3360 3361 pi% = p + 13362 Do3363 Mode$ = Trim(Mid(str, pi, 1)) 3364 pi = pi + 13365 Loop While (Mode = "") 3366 Mode = Mode + Mid(str, pi, 1) 3367 3368 If (Mode <> sEqual) And (Mode <> sAbove) And (Mode <> sBelow) And (Mode <> sCountEqual) And (Mode <> sCountAbove) And (Mode <> sCountBelow) Then3369 Call ErrorInQuery3370 Exit Sub3371 End If3372 3373 Dim CalcMode As Boolean3374 CalcMode = (Mode = sCountEqual) Or (Mode = sCountAbove) Or (Mode = sCountBelow) 3375 3376 str = Trim(Mid(str, pi + 1)) 3377 3378 If (str = "") Then3379 Call ErrorInQuery3380 Exit Sub3381 End If3382 3383 ' проверка на наличие индекса таблицы3384 p = InStr(1, str, ",") 3385 tableindex% = - 13386 If (p <> 0) Then3387 tableindexstr$ = Trim(Mid(str, p + 1)) 3388 If Not IsInteger(tableindexstr) Then3389 Call ErrorInQuery3390 Exit Sub3391 End If3392 tableindex% = CLng(tableindexstr) 3393 If (tableindex < 0) Or (tableindex > MainForm. TabStrip. Tabs. Count - 1) Then3394 Call ErrorInQuery3395 Exit Sub3396 End If3397 str = Trim(Left(str, p - 1)) 3398 End If3399 3400 Dim GlobEqual As Boolean3401 If (Not IsInteger(str)) And (DB(QRDBIndex). Cols(whatint). Class = ccInteger) Then3402 Call MsgForm. ErrorMsg("Эквивалентом вывода целочисленного столбца не является целое число! " + vbCrLf + _3403 "Условие всегда истинно! ") 3404 GlobEqual = True3405 Else3406 GlobEqual = False3407 End If3408 3409 Count% = MainForm. TabStrip. Tabs. Count3410 If (tableindex = - 1) Then3411 ReDim Preserve DB(Count) 3412 3413 DB(Count). Header = DB(QRDBIndex). Header3414 DB(Count). Header. RowCount = 03415 DB(Count). Cols = DB(QRDBIndex). Cols3416 3417 MainForm. TabStrip. Tabs. Add pvCaption: ="Вывод " + Mode + str, pvImage: =13418 Else3419 Count = tableindex3420 End If3421 3422 Dim NeedAdd As Boolean3423 With DB(Count) 3424 Dim Rval3425 For R% = 0 To DB(QRDBIndex). Header. RowCount - 13426 If (Not GlobEqual) Then3427 Select Case Mode3428 Case sEqual3429 NeedAdd = (Equal(whatint, R, str) = 0) 3430 Case sAbove3431 NeedAdd = (Equal(whatint, R, str) > 0) 3432 Case sBelow3433 NeedAdd = (Equal(whatint, R, str) < 0) 3434 Case sCountEqual3435 value$ = CStr(DB(QRDBIndex). Rows(R). Fields(whatint)) 3436 NeedAdd = ((CStr(CalcCount(QRDBIndex, whatint, value)) = str) And (EarlierDontFind(QRDBIndex, whatint, R, value))) 3437 Case sCountAbove3438 value$ = CStr(DB(QRDBIndex). Rows(R). Fields(whatint)) 3439 NeedAdd = ((CStr(CalcCount(QRDBIndex, whatint, value)) > str) And (EarlierDontFind(QRDBIndex, whatint, R, value))) 3440 Case sCountBelow3441 value$ = CStr(DB(QRDBIndex). Rows(R). Fields(whatint)) 3442 NeedAdd = ((CStr(CalcCount(QRDBIndex, whatint, value)) < str) And (EarlierDontFind(QRDBIndex, whatint, R, value))) 3443 End Select3444 Else3445 NeedAdd = True3446 End If3447 If (NeedAdd) Then3448 ReDim tmparr(DB(QRDBIndex). Header. ColCount) 3449 tmparr = DB(QRDBIndex). Rows(R). Fields3450 If (Not FindRow(Count, tmparr)) Then3451 addindex% = DB(Count). Header. RowCount3452 ReDim Preserve DB(Count). Rows(addindex) 3453 ReDim DB(Count). Rows(addindex). Fields(DB(Count). Header. ColCount - 1) 3454 DB(Count). Rows(addindex). Fields = DB(QRDBIndex). Rows(R). Fields3455 DB(Count). Header. RowCount = DB(Count). Header. RowCount + 13456 Else3457 Call MsgForm. ErrorMsg("Добавляемая запись уже существует! ") 3458 End If3459 End If3460 Next R3461 End With3462End Sub34633464Sub SwapRun(what$, str$) 3465 p% = InStr(1, str, ",") 3466 If TestZero(p) Then Exit Sub3467 index1str$ = Trim(Left(str, p - 1)) 3468 index2str$ = Trim(Mid(str, p + 1)) 3469 3470 If (Not IsInteger(index1str)) Then3471 Call ErrorInQuery3472 Exit Sub3473 End If3474 3475 index1% = CInt(index1str) 3476 index2% = CInt(index2str) 3477 3478 If (index1 < 0) Or (index2 < 0) Or (index1 = index2) Then3479 Call ErrorInQuery3480 Exit Sub3481 End If3482 3483 Select Case what3484 Case sCol3485 With DB(QRDBIndex) 3486 If (index1 >. Header. ColCount - 1) Or (index2 >. Header. ColCount - 1) Then3487 Call ErrorInQuery3488 Exit Sub3489 End If3490 ' обмен полей3491 Dim tmpcol As TDBElemData3492 tmpcol =. Cols(index1) 3493. Cols(index1) =. Cols(index2) 3494. Cols(index2) = tmpcol3495 ' обмен полей записей3496 Dim tmpcell As Variant3497 For R% = 0 To. Header. RowCount - 13498 tmpcell =. Rows(R). Fields(index1) 3499. Rows(R). Fields(index1) =. Rows(R). Fields(index2) 3500. Rows(R). Fields(index2) = tmpcell3501 Next R3502 3503 End With3504 Case sRow3505 With DB(QRDBIndex) 3506 If (index1 >. Header. RowCount - 1) Or (index2 >. Header. RowCount - 1) Then3507 Call ErrorInQuery3508 Exit Sub3509 End If3510 Dim tmprow As TDBElem3511 tmprow =. Rows(index1) 3512. Rows(index1) =. Rows(index2) 3513. Rows(index2) = tmprow3514 End With3515 End Select3516End Sub35173518Sub ChangeRun(what$, param$) 3519 Select Case what3520 Case sType ' **************...::: Type:::... ***************3521 If Not IsInteger(param) Then3522 Call ErrorInQuery3523 Exit Sub3524 End If3525 colindex% = CLng(param) 3526 If (colindex < 0) Or (colindex > DB(QRDBIndex). Header. ColCount - 1) Then3527 Call ErrorInQuery3528 Exit Sub3529 End If3530 If (DB(QRDBIndex). Cols(colindex). Class = ccString) Then3531 If (MsgForm. QuestMsg("Поле строкового типа преобразуется в числовой тип. " + _3532 "Все нечисловые значения будут преобразованы в 0. " + _3533 "Продолжить? ") <> resOk) Then Exit Sub3534 3535 End If3536 For i% = 0 To (DB(QRDBIndex). Header. RowCount - 1) 3537 Select Case DB(QRDBIndex). Cols(colindex). Class3538 Case ccInteger3539 DB(QRDBIndex). Rows(i). Fields(colindex) = CStr(DB(QRDBIndex). Rows(i). Fields(colindex)) 3540 Case ccString3541 If Not IsInteger(DB(QRDBIndex). Rows(i). Fields(colindex)) Then3542 DB(QRDBIndex). Rows(i). Fields(colindex) = 03543 Else3544 DB(QRDBIndex). Rows(i). Fields(colindex) = CLng(DB(QRDBIndex). Rows(i). Fields(colindex)) 3545 End If3546 End Select3547 Next i3548 Select Case DB(QRDBIndex). Cols(colindex). Class3549 Case ccInteger3550 DB(QRDBIndex). Cols(colindex). Class = ccString3551 Case ccString3552 DB(QRDBIndex). Cols(colindex). Class = ccInteger3553 End Select3554 3555 Case sName ' **************...::: Name:::... ***************3556 p% = InStr(1, param, ",") 3557 If TestZero(p) Then Exit Sub3558 colindexstr$ = Trim(Left(param, p - 1)) 3559 If Not IsInteger(colindexstr) Then3560 Call ErrorInQuery3561 Exit Sub3562 End If3563 colindex% = CLng(colindexstr) 3564 param = Trim(Mid(param, p + 1)) 3565 If (param = "") Then3566 Call ErrorInQuery3567 Exit Sub3568 End If3569 ' поиск на дубликат3570 For i% = 0 To DB(QRDBIndex). Header. ColCount - 13571 If (DB(QRDBIndex). Cols(i). title = param) And (i <> colindex) Then3572 Call MsgForm. ErrorMsg("Поле с названием " + param + " уже существует! ") 3573 Exit Sub3574 End If3575 Next i3576 DB(QRDBIndex). Cols(colindex). title = param3577 DB(QRDBIndex). Cols(colindex). TitleLen = Len(param) 3578 Case Default ' **************!! ***************3579 Call ErrorInQuery3580 End Select3581End Sub35823583Public Sub RunQuery(DBIndex_%, query$) 3584 Dim s1$, p%35853586 s1 = Mid(query, 4) 3587 query = Left(query, 3) 3588 3589 QRDBIndex = DBIndex_3590 3591 Select Case query3592 Case sAdd3593 query = Left(s1, 3) 3594 s1 = Mid(s1, InStr(1, s1, "(")) 3595 If (Left(s1, 1) <> "(") Or (Right(s1, 1) <> ")") Or ((Len(s1) < 8) And (query = sCol)) Then3596 Call ErrorInQuery3597 Else3598 Call AddRun(query, Trim(Mid(s1, 2, Len(s1) - 2))) 3599 End If3600 Case sDel3601 query = Left(s1, 3) 3602 s1 = Mid(s1, InStr(1, s1, "(")) 3603 If (Left(s1, 1) <> "(") Or (Right(s1, 1) <> ")") Or (Len(s1) < 5) Then3604 Call ErrorInQuery3605 Else3606 Call DelRun(query, Trim(Mid(s1, 2, Len(s1) - 2))) 3607 End If3608 Case sSort3609 If (Left(s1, 1) <> "(") Or (Right(s1, 1) <> ")") Or (Len(s1) < 5) Then3610 Call ErrorInQuery3611 Else3612 Call SortRun(Trim(Mid(s1, 2, Len(s1) - 2))) 3613 End If3614 Case sOut3615 If (Left(s1, 1) <> "(") Or (Right(s1, 1) <> ")") Or (Len(s1) < 5) Then3616 Call ErrorInQuery3617 Else3618 Call OutRun(Trim(Mid(s1, 2, Len(s1) - 2))) 3619 End If3620 Case sSwap3621 query = Left(s1, 3) 3622 s1 = Mid(s1, InStr(1, s1, "(")) 3623 If (Left(s1, 1) <> "(") Or (Right(s1, 1) <> ")") Or ((Len(s1) < 5) And (query = sCol)) Then3624 Call ErrorInQuery3625 Else3626 Call SwapRun(query, Trim(Mid(s1, 2, Len(s1) - 2))) 3627 End If3628 Case sChange3629 query = Left(s1, 4) 3630 s1 = Mid(s1, InStr(1, s1, "(")) 3631 If (Left(s1, 1) <> "(") Or (Right(s1, 1) <> ")") Or (Len(s1) < 3) Then3632 Call ErrorInQuery3633 Else3634 Call ChangeRun(query, Trim(Mid(s1, 2, Len(s1) - 2))) 3635 End If3636 End Select3637 3638End Sub
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
|
|
|
© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент. |
|
|