ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/examples/dbcontrolgrid/unit1.lfm
Revision: 68
Committed: Tue Oct 17 10:07:58 2017 UTC (6 years, 6 months ago) by tony
File size: 20024 byte(s)
Log Message:
IBX: Editor Positioning tidy up
FBINTF: Trap uninitialised SQL parameters on SQL Exec. Avoids Unknown SQL Type errors.
Consistent setting of Modified (SQLParam).

File Contents

# Content
1 object Form1: TForm1
2 Left = 813
3 Height = 575
4 Top = 318
5 Width = 1026
6 Caption = 'Employee List'
7 ClientHeight = 575
8 ClientWidth = 1026
9 DefaultMonitor = dmPrimary
10 OnClose = FormClose
11 OnShow = FormShow
12 Position = poDefault
13 LCLVersion = '1.8.0.4'
14 object Button1: TButton
15 Left = 939
16 Height = 25
17 Top = 48
18 Width = 75
19 Action = AddEmployee
20 Anchors = [akTop, akRight]
21 TabOrder = 0
22 end
23 object Button3: TButton
24 Left = 939
25 Height = 25
26 Top = 80
27 Width = 75
28 Action = DeleteEmployee
29 Anchors = [akTop, akRight]
30 TabOrder = 1
31 end
32 object Label1: TLabel
33 Left = 17
34 Height = 14
35 Top = 14
36 Width = 87
37 Caption = 'Started Before'
38 ParentColor = False
39 end
40 object BeforeDate: TDateEdit
41 Left = 112
42 Height = 24
43 Top = 8
44 Width = 96
45 CalendarDisplaySettings = [dsShowHeadings, dsShowDayNames]
46 DateOrder = doNone
47 ButtonWidth = 23
48 NumGlyphs = 1
49 MaxLength = 0
50 OnChange = BeforeDateChange
51 TabOrder = 2
52 end
53 object Label2: TLabel
54 Left = 241
55 Height = 14
56 Top = 14
57 Width = 78
58 Caption = 'Started After'
59 ParentColor = False
60 end
61 object AfterDate: TDateEdit
62 Left = 333
63 Height = 24
64 Top = 8
65 Width = 91
66 CalendarDisplaySettings = [dsShowHeadings, dsShowDayNames]
67 DateOrder = doNone
68 ButtonWidth = 23
69 NumGlyphs = 1
70 MaxLength = 0
71 OnChange = BeforeDateChange
72 TabOrder = 3
73 end
74 object Panel1: TPanel
75 Left = 12
76 Height = 527
77 Top = 42
78 Width = 904
79 Anchors = [akTop, akLeft, akRight, akBottom]
80 BevelOuter = bvNone
81 ClientHeight = 527
82 ClientWidth = 904
83 ParentColor = False
84 TabOrder = 4
85 object DBControlGrid1: TDBControlGrid
86 Left = 0
87 Height = 477
88 Top = 0
89 Width = 904
90 Align = alClient
91 AlternateColor = clSkyBlue
92 AltColorStartNormal = True
93 Color = clWhite
94 DataSource = EmployeeSource
95 DefaultPositionAtEnd = False
96 DrawPanel = EmployeeEditorPanel
97 Options = [dgpIndicator]
98 TabOrder = 1
99 ColWidths = (
100 12
101 890
102 )
103 object EmployeeEditorPanel: TPanel
104 Left = 12
105 Height = 84
106 Top = 0
107 Width = 890
108 Anchors = []
109 BevelOuter = bvNone
110 BorderWidth = 2
111 BorderStyle = bsSingle
112 ClientHeight = 82
113 ClientWidth = 888
114 Color = clWhite
115 ParentColor = False
116 TabOrder = 0
117 Visible = False
118 object Label3: TLabel
119 Left = 0
120 Height = 14
121 Top = 7
122 Width = 83
123 Caption = 'Employee No.'
124 ParentColor = False
125 end
126 object DBEdit1: TDBEdit
127 Left = 90
128 Height = 24
129 Top = 2
130 Width = 120
131 DataField = 'EMP_NO'
132 DataSource = EmployeeSource
133 CharCase = ecNormal
134 MaxLength = 0
135 TabOrder = 0
136 end
137 object Label4: TLabel
138 Left = 12
139 Height = 14
140 Top = 32
141 Width = 64
142 Caption = 'First Name'
143 ParentColor = False
144 end
145 object DBEdit2: TDBEdit
146 Left = 90
147 Height = 24
148 Top = 28
149 Width = 120
150 DataField = 'FIRST_NAME'
151 DataSource = EmployeeSource
152 CharCase = ecNormal
153 MaxLength = 0
154 TabOrder = 1
155 end
156 object Label5: TLabel
157 Left = 12
158 Height = 14
159 Top = 56
160 Width = 64
161 Caption = 'Last Name'
162 ParentColor = False
163 end
164 object DBEdit3: TDBEdit
165 Left = 90
166 Height = 24
167 Top = 54
168 Width = 120
169 DataField = 'LAST_NAME'
170 DataSource = EmployeeSource
171 CharCase = ecNormal
172 MaxLength = 0
173 TabOrder = 2
174 end
175 object Label6: TLabel
176 Left = 216
177 Height = 14
178 Top = 7
179 Width = 77
180 Caption = 'Date Started'
181 ParentColor = False
182 end
183 object IBDateEdit1: TDBDateEdit
184 Left = 300
185 Height = 24
186 Top = 2
187 Width = 100
188 CalendarDisplaySettings = [dsShowHeadings, dsShowDayNames]
189 DateOrder = doNone
190 ButtonWidth = 23
191 AutoSelect = False
192 NumGlyphs = 1
193 MaxLength = 0
194 TabOrder = 3
195 DataField = 'HIRE_DATE'
196 DataSource = EmployeeSource
197 end
198 object Label7: TLabel
199 Left = 252
200 Height = 14
201 Top = 32
202 Width = 37
203 Caption = 'Salary'
204 ParentColor = False
205 end
206 object DBEdit4: TDBEdit
207 Left = 300
208 Height = 24
209 Top = 28
210 Width = 104
211 DataField = 'SALARY'
212 DataSource = EmployeeSource
213 CharCase = ecNormal
214 MaxLength = 0
215 TabOrder = 5
216 end
217 object Label8: TLabel
218 Left = 814
219 Height = 14
220 Top = 58
221 Width = 24
222 Anchors = [akTop, akRight]
223 Caption = 'Ext.'
224 ParentColor = False
225 end
226 object DBEdit5: TDBEdit
227 Left = 838
228 Height = 24
229 Top = 54
230 Width = 40
231 DataField = 'PHONE_EXT'
232 DataSource = EmployeeSource
233 Anchors = [akTop, akRight]
234 CharCase = ecNormal
235 MaxLength = 0
236 TabOrder = 4
237 end
238 object Label9: TLabel
239 Left = 536
240 Height = 14
241 Top = 7
242 Width = 51
243 Caption = 'Location'
244 ParentColor = False
245 end
246 object Label10: TLabel
247 Left = 413
248 Height = 14
249 Top = 9
250 Width = 59
251 Caption = 'Job Grade'
252 ParentColor = False
253 end
254 object JobGradeDBComboBox: TDBComboBox
255 Left = 480
256 Height = 23
257 Top = 0
258 Width = 48
259 AutoSize = False
260 DataField = 'JOB_GRADE'
261 DataSource = EmployeeSource
262 ItemHeight = 0
263 Items.Strings = (
264 '1'
265 '2'
266 '3'
267 '4'
268 '5'
269 )
270 MaxLength = 0
271 OnCloseUp = JobGradeDBComboBoxCloseUp
272 Style = csDropDownList
273 TabOrder = 6
274 end
275 object Label11: TLabel
276 Left = 536
277 Height = 14
278 Top = 32
279 Width = 48
280 Caption = 'Job Title'
281 ParentColor = False
282 end
283 object Label12: TLabel
284 Left = 256
285 Height = 14
286 Top = 58
287 Width = 33
288 Caption = 'Dept.'
289 ParentColor = False
290 end
291 object SpeedButton1: TSpeedButton
292 Left = 786
293 Height = 25
294 Top = 54
295 Width = 23
296 Action = SelectDept
297 Anchors = [akTop, akRight]
298 end
299 object DBEdit6: TDBEdit
300 Left = 300
301 Height = 24
302 Top = 54
303 Width = 478
304 DataField = 'DEPT_PATH'
305 DataSource = EmployeeSource
306 ReadOnly = True
307 Anchors = [akTop, akLeft, akRight]
308 CharCase = ecNormal
309 MaxLength = 0
310 TabOrder = 7
311 end
312 object DBEdit7: TDBEdit
313 Left = 592
314 Height = 24
315 Top = 0
316 Width = 246
317 DataField = 'JOB_COUNTRY'
318 DataSource = EmployeeSource
319 ReadOnly = True
320 CharCase = ecNormal
321 MaxLength = 0
322 TabOrder = 8
323 end
324 object DBEdit8: TDBEdit
325 Left = 592
326 Height = 24
327 Top = 28
328 Width = 246
329 DataField = 'JOB_TITLE'
330 DataSource = EmployeeSource
331 CharCase = ecNormal
332 MaxLength = 0
333 TabOrder = 9
334 end
335 object SpeedButton2: TSpeedButton
336 Left = 847
337 Height = 22
338 Top = 3
339 Width = 23
340 Action = EditLocationAction
341 end
342 object SpeedButton3: TSpeedButton
343 Left = 847
344 Height = 22
345 Top = 30
346 Width = 23
347 Action = EditJobCodeAction
348 end
349 end
350 end
351 object Panel2: TPanel
352 Left = 0
353 Height = 50
354 Top = 477
355 Width = 904
356 Align = alBottom
357 BevelOuter = bvNone
358 ClientHeight = 50
359 ClientWidth = 904
360 ParentColor = False
361 TabOrder = 0
362 object Button5: TButton
363 Left = 80
364 Height = 25
365 Top = 16
366 Width = 75
367 Action = CancelChanges
368 Anchors = [akLeft, akBottom]
369 TabOrder = 0
370 end
371 object Button4: TButton
372 Left = 1
373 Height = 25
374 Top = 16
375 Width = 75
376 Action = SaveChanges
377 Anchors = [akLeft, akBottom]
378 TabOrder = 1
379 end
380 object DBText1: TDBText
381 Left = 832
382 Height = 27
383 Top = 16
384 Width = 49
385 Alignment = taRightJustify
386 Anchors = [akTop, akRight, akBottom]
387 DataField = 'TOTALSALARIES'
388 DataSource = TotalsSource
389 ParentColor = False
390 end
391 end
392 end
393 object Label13: TLabel
394 Left = 456
395 Height = 14
396 Top = 14
397 Width = 79
398 Caption = 'Salary Range'
399 ParentColor = False
400 end
401 object SalaryRange: TComboBox
402 Left = 544
403 Height = 25
404 Top = 8
405 Width = 272
406 ItemHeight = 0
407 ItemIndex = 0
408 Items.Strings = (
409 'None Specified'
410 'Below $40,000'
411 'Between $40,000 and $100,000'
412 'Above $100,000'
413 )
414 OnCloseUp = BeforeDateChange
415 Style = csDropDownList
416 TabOrder = 5
417 Text = 'None Specified'
418 end
419 object IBDatabase1: TIBDatabase
420 Connected = False
421 CreateIfNotExists = False
422 AllowStreamedConnected = False
423 DatabaseName = 'localhost:employee'
424 Params.Strings = (
425 'user_name=SYSDBA'
426 'lc_ctype=UTF8'
427 'user_name=SYSDBA'
428 'user_name=SYSDBA'
429 )
430 DefaultTransaction = IBTransaction1
431 IdleTimer = 0
432 TraceFlags = []
433 UseDefaultSystemCodePage = False
434 left = 832
435 top = 168
436 end
437 object IBTransaction1: TIBTransaction
438 Active = False
439 DefaultDatabase = IBDatabase1
440 Params.Strings = (
441 'read_committed'
442 'rec_version'
443 'nowait'
444 )
445 left = 872
446 top = 168
447 end
448 object EmployeeSource: TDataSource
449 DataSet = Employees
450 left = 832
451 top = 336
452 end
453 object ActionList1: TActionList
454 left = 832
455 top = 416
456 object AddEmployee: TAction
457 Caption = 'Add'
458 OnExecute = AddEmployeeExecute
459 end
460 object EditEmployee: TAction
461 Caption = 'Edit'
462 OnUpdate = EditEmployeeUpdate
463 end
464 object DeleteEmployee: TAction
465 Caption = 'Delete'
466 OnExecute = DeleteEmployeeExecute
467 OnUpdate = EditEmployeeUpdate
468 end
469 object SaveChanges: TAction
470 Caption = 'Save'
471 OnExecute = SaveChangesExecute
472 OnUpdate = SaveChangesUpdate
473 end
474 object CancelChanges: TAction
475 Caption = 'Cancel'
476 OnExecute = CancelChangesExecute
477 OnUpdate = SaveChangesUpdate
478 end
479 object SelectDept: TAction
480 Caption = '...'
481 OnExecute = SelectDeptExecute
482 end
483 object EditJobCodeAction: TAction
484 Caption = '...'
485 OnExecute = EditJobCodeActionExecute
486 OnUpdate = EditJobCodeActionUpdate
487 end
488 object EditLocationAction: TAction
489 Caption = '...'
490 OnExecute = EditLocationActionExecute
491 OnUpdate = EditJobCodeActionUpdate
492 end
493 end
494 object TotalsQuery: TIBQuery
495 AllowAutoActivateTransaction = False
496 Database = IBDatabase1
497 Transaction = IBTransaction1
498 BeforeOpen = EmployeesBeforeOpen
499 BufferChunks = 1000
500 CachedUpdates = False
501 GenerateParamNames = False
502 GeneratorField.ApplyOnEvent = gaeOnNewRecord
503 SQL.Strings = (
504 'Select sum(Salary) as TotalSalaries'
505 'From EMPLOYEE'
506 )
507 Params = <>
508 DataSetCloseAction = dcDiscardChanges
509 left = 872
510 top = 376
511 object TotalsQueryTOTALSALARIES: TIBBCDField
512 DisplayWidth = 18
513 FieldKind = fkData
514 FieldName = 'TOTALSALARIES'
515 Index = 0
516 LookupCache = False
517 ProviderFlags = [pfInUpdate, pfInWhere]
518 ReadOnly = False
519 Required = False
520 OnGetText = TotalsQueryTOTALSALARIESGetText
521 Precision = 18
522 Currency = False
523 MaxValue = 0
524 MinValue = 0
525 Size = 2
526 end
527 end
528 object TotalsSource: TDataSource
529 DataSet = TotalsQuery
530 left = 832
531 top = 376
532 end
533 object Employees: TIBDataSet
534 AllowAutoActivateTransaction = False
535 Database = IBDatabase1
536 Transaction = IBTransaction1
537 AfterDelete = EmployeesAfterDelete
538 AfterEdit = EmployeesAfterDelete
539 AfterInsert = EmployeesAfterInsert
540 AfterOpen = EmployeesAfterOpen
541 AfterPost = EmployeesAfterPost
542 BeforeClose = EmployeesBeforeClose
543 BeforeOpen = EmployeesBeforeOpen
544 BufferChunks = 1000
545 CachedUpdates = False
546 DeleteSQL.Strings = (
547 'Delete From EMPLOYEE A'
548 'Where A.EMP_NO = :EMP_NO'
549 )
550 InsertSQL.Strings = (
551 'Insert Into EMPLOYEE(EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY)'
552 'Values(:EMP_NO, :FIRST_NAME, :LAST_NAME, :PHONE_EXT, :HIRE_DATE, :DEPT_NO, :JOB_CODE, :JOB_GRADE, :JOB_COUNTRY, :SALARY)'
553 )
554 RefreshSQL.Strings = (
555 'with recursive Depts As ('
556 'Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as '
557 'VarChar(256)) as DEPT_PATH,'
558 'cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH'
559 'From DEPARTMENT Where HEAD_DEPT is NULL '
560 'UNION ALL'
561 'Select D.DEPT_NO, D.DEPARTMENT,D. HEAD_DEPT, Depts.DEPT_PATH || '' / '' '
562 '|| D.DEPARTMENT as DEPT_PATH,'
563 'Depts.DEPT_KEY_PATH || '';'' || D.DEPT_NO as DEPT_KEY_PATH'
564 'From DEPARTMENT D'
565 'JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO'
566 ')'
567 ''
568 'Select A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, '
569 'A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, '
570 'A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, '
571 'D.DEPT_KEY_PATH, J.JOB_TITLE'
572 'From EMPLOYEE A'
573 'JOIN Depts D On D.DEPT_NO = A.DEPT_NO'
574 'JOIN JOB J on J.JOB_CODE = A.JOB_CODE'
575 ''
576 'Where A.EMP_NO = :EMP_NO'
577 )
578 SelectSQL.Strings = (
579 'with recursive Depts As ('
580 'Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as '
581 'VarChar(256)) as DEPT_PATH,'
582 'cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH'
583 'From DEPARTMENT Where HEAD_DEPT is NULL '
584 'UNION ALL'
585 'Select D.DEPT_NO, D.DEPARTMENT,D. HEAD_DEPT, Depts.DEPT_PATH || '' / '' '
586 '|| D.DEPARTMENT as DEPT_PATH,'
587 'Depts.DEPT_KEY_PATH || '';'' || D.DEPT_NO as DEPT_KEY_PATH'
588 'From DEPARTMENT D'
589 'JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO'
590 ')'
591 ''
592 'Select distinct A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, '
593 'A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, '
594 'A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, '
595 'D.DEPT_KEY_PATH, J.JOB_TITLE'
596 'From EMPLOYEE A'
597 'JOIN Depts D On D.DEPT_NO = A.DEPT_NO'
598 'JOIN JOB J on J.JOB_CODE = A.JOB_CODE'
599 ''
600 'Order by A.LAST_NAME'
601 )
602 ModifySQL.Strings = (
603 'Update EMPLOYEE A Set '#13#10' A.DEPT_NO = :DEPT_NO,'#13#10' A.FIRST_NAME = :FIRST_NAME,'#13#10' A.HIRE_DATE = :HIRE_DATE,'#13#10' A.JOB_CODE = :JOB_CODE,'#13#10' A.JOB_COUNTRY = :JOB_COUNTRY,'#13#10' A.JOB_GRADE = :JOB_GRADE,'#13#10' A.LAST_NAME = :LAST_NAME,'#13#10' A.PHONE_EXT = :PHONE_EXT,'#13#10' A.SALARY = :SALARY'
604 'Where A.EMP_NO = :OLD_EMP_NO'
605 )
606 GeneratorField.Generator = 'EMP_NO_GEN'
607 GeneratorField.Field = 'EMP_NO'
608 GeneratorField.ApplyOnEvent = gaeOnNewRecord
609 GenerateParamNames = False
610 DataSetCloseAction = dcSaveChanges
611 AfterTransactionEnd = EmployeesAfterTransactionEnd
612 left = 872
613 top = 336
614 object EmployeesEMP_NO: TSmallintField
615 DisplayWidth = 10
616 FieldKind = fkData
617 FieldName = 'EMP_NO'
618 Index = 0
619 LookupCache = False
620 ProviderFlags = [pfInUpdate, pfInWhere]
621 ReadOnly = False
622 Required = True
623 end
624 object EmployeesFIRST_NAME: TIBStringField
625 DisplayWidth = 15
626 FieldKind = fkData
627 FieldName = 'FIRST_NAME'
628 Index = 1
629 LookupCache = False
630 ProviderFlags = [pfInUpdate, pfInWhere]
631 ReadOnly = False
632 Required = True
633 Size = 15
634 end
635 object EmployeesLAST_NAME: TIBStringField
636 DisplayWidth = 20
637 FieldKind = fkData
638 FieldName = 'LAST_NAME'
639 Index = 2
640 LookupCache = False
641 ProviderFlags = [pfInUpdate, pfInWhere]
642 ReadOnly = False
643 Required = True
644 end
645 object EmployeesPHONE_EXT: TIBStringField
646 Alignment = taRightJustify
647 DisplayWidth = 4
648 FieldKind = fkData
649 FieldName = 'PHONE_EXT'
650 Index = 3
651 LookupCache = False
652 ProviderFlags = [pfInUpdate, pfInWhere]
653 ReadOnly = False
654 Required = False
655 Size = 4
656 end
657 object EmployeesHIRE_DATE: TDateTimeField
658 DisplayWidth = 10
659 FieldKind = fkData
660 FieldName = 'HIRE_DATE'
661 Index = 4
662 LookupCache = False
663 ProviderFlags = [pfInUpdate, pfInWhere]
664 ReadOnly = False
665 Required = True
666 end
667 object EmployeesDEPT_NO: TIBStringField
668 DisplayWidth = 3
669 FieldKind = fkData
670 FieldName = 'DEPT_NO'
671 Index = 5
672 LookupCache = False
673 ProviderFlags = [pfInUpdate, pfInWhere]
674 ReadOnly = False
675 Required = True
676 Size = 3
677 end
678 object EmployeesJOB_CODE: TIBStringField
679 DisplayWidth = 5
680 FieldKind = fkData
681 FieldName = 'JOB_CODE'
682 Index = 6
683 LookupCache = False
684 ProviderFlags = [pfInUpdate, pfInWhere]
685 ReadOnly = False
686 Required = True
687 Size = 5
688 end
689 object EmployeesJOB_GRADE: TSmallintField
690 DisplayWidth = 10
691 FieldKind = fkData
692 FieldName = 'JOB_GRADE'
693 Index = 7
694 LookupCache = False
695 ProviderFlags = [pfInUpdate, pfInWhere]
696 ReadOnly = False
697 Required = True
698 end
699 object EmployeesJOB_COUNTRY: TIBStringField
700 DisplayWidth = 15
701 FieldKind = fkData
702 FieldName = 'JOB_COUNTRY'
703 Index = 8
704 LookupCache = False
705 ProviderFlags = [pfInUpdate, pfInWhere]
706 ReadOnly = False
707 Required = True
708 Size = 15
709 end
710 object EmployeesSALARY: TIBBCDField
711 DisplayWidth = 18
712 FieldKind = fkData
713 FieldName = 'SALARY'
714 Index = 9
715 LookupCache = False
716 ProviderFlags = [pfInUpdate, pfInWhere]
717 ReadOnly = False
718 Required = True
719 OnGetText = EmployeesSALARYGetText
720 Precision = 18
721 Currency = False
722 MaxValue = 0
723 MinValue = 0
724 Size = 2
725 end
726 object EmployeesFULL_NAME: TIBStringField
727 DisplayWidth = 37
728 FieldKind = fkData
729 FieldName = 'FULL_NAME'
730 Index = 10
731 LookupCache = False
732 ProviderFlags = [pfInUpdate, pfInWhere]
733 ReadOnly = True
734 Required = False
735 Size = 37
736 end
737 object EmployeesDEPT_PATH: TIBStringField
738 DisplayWidth = 256
739 FieldKind = fkData
740 FieldName = 'DEPT_PATH'
741 Index = 11
742 LookupCache = False
743 ProviderFlags = [pfInUpdate, pfInWhere]
744 ReadOnly = False
745 Required = True
746 Size = 256
747 end
748 object EmployeesDEPT_KEY_PATH: TIBStringField
749 DisplayWidth = 64
750 FieldKind = fkData
751 FieldName = 'DEPT_KEY_PATH'
752 Index = 12
753 LookupCache = False
754 ProviderFlags = [pfInUpdate, pfInWhere]
755 ReadOnly = False
756 Required = True
757 Size = 64
758 end
759 object EmployeesJOB_TITLE: TIBStringField
760 DisplayWidth = 25
761 FieldKind = fkData
762 FieldName = 'JOB_TITLE'
763 Index = 13
764 LookupCache = False
765 ProviderFlags = [pfInUpdate, pfInWhere]
766 ReadOnly = False
767 Required = True
768 Size = 25
769 end
770 end
771 end