- Page 1 and 2: Ingres OpenROAD ® 2006Programming
- Page 3 and 4: ContentsChapter 1: Introduction 13I
- Page 5 and 6: Using an Object-oriented Approach t
- Page 7 and 8: How You Can Retrieve Array Informat
- Page 9 and 10: Chapter 12: Managing Event Queues 3
- Page 11 and 12: Chapter 17: Preprocessing Your 4GL
- Page 13 and 14: Chapter 1: IntroductionThis section
- Page 15 and 16: ConventionsConventionsThe following
- Page 17: Your Support OptionsYour Support Op
- Page 21 and 22: OpenROAD Names• Although you can
- Page 23 and 24: OpenROAD NamesIf the component belo
- Page 25 and 26: VariablesVariablesOpenROAD variable
- Page 27 and 28: VariablesHow You Can Declare Simple
- Page 29 and 30: VariablesWhen you create a field on
- Page 31 and 32: VariablesHow You Can Create Objects
- Page 33 and 34: VariablesBy referencing a column, y
- Page 35 and 36: Data TypesData TypesWhen you explic
- Page 37 and 38: ExpressionsLiteralsThere are two ba
- Page 39 and 40: ExpressionsConstants let you substi
- Page 41 and 42: ExpressionsArithmetic OperatorsThe
- Page 43 and 44: ExpressionsThe order of precedence
- Page 45 and 46: ExpressionscharvarSpecifies a chara
- Page 47 and 48: ExpressionsVariables in Expressions
- Page 49 and 50: ExpressionsBecause methods can retu
- Page 51 and 52: System-defined FunctionsScalar Func
- Page 53 and 54: System-defined FunctionsNameOperand
- Page 55 and 56: System-defined FunctionsNameleft(c1
- Page 57 and 58: System-defined FunctionsString Conc
- Page 59 and 60: System-defined FunctionsNameinterva
- Page 61 and 62: System-defined FunctionsAggregate F
- Page 63 and 64: System-defined FunctionsFor example
- Page 65: CommentsField FunctionThe field fun
- Page 68 and 69:
Scripts• Include event blocks for
- Page 70 and 71:
ScriptsThe following rules apply wh
- Page 72 and 73:
Scripts{eventblock [;]}{localproced
- Page 74 and 75:
ProceduresStatements in ScriptsScri
- Page 76 and 77:
ProceduresGlobal ProceduresA global
- Page 78 and 79:
ProceduresLocal ProceduresYou can u
- Page 80 and 81:
ProceduresTo use a database procedu
- Page 82 and 83:
ProceduresGuidelines for Writing C
- Page 84 and 85:
Calling ProceduresYou usually call
- Page 86 and 87:
Calling ProceduresThe syntax for ca
- Page 88 and 89:
How Procedure Handles Work (ProcHan
- Page 90 and 91:
THow Procedure Handles Work (ProcHa
- Page 92 and 93:
Compiler LimitationsCompiler Limita
- Page 95 and 96:
Chapter 4: Programming FramesThis s
- Page 97 and 98:
How You Can Invoke FramesThe parent
- Page 99 and 100:
How You Can Invoke FramesThe exampl
- Page 101 and 102:
How You Can Invoke FramesHow You Ca
- Page 103 and 104:
How You Can Invoke FramesUsing the
- Page 105 and 106:
How You Can Invoke FramesBecause th
- Page 107 and 108:
How You Can Invoke FramesIf you set
- Page 109 and 110:
How You Can Invoke FramesHow You Ca
- Page 111 and 112:
How You Can Use Ghost FramesA Simpl
- Page 113 and 114:
Chapter 5: Working with ClassesThis
- Page 115 and 116:
How You Can Reference ObjectsThe fo
- Page 117 and 118:
How You Can Reference ObjectsField
- Page 119 and 120:
How You Can Reference ObjectsThe fo
- Page 121 and 122:
InheritanceTo build meaningful obje
- Page 123 and 124:
InheritanceAggregation (Containing)
- Page 125 and 126:
InheritanceHow Polymorphism WorksAl
- Page 127 and 128:
How You Can Create a User ClassYou
- Page 129 and 130:
How You Can Create a User ClassHow
- Page 131 and 132:
How You Can Create a User ClassThe
- Page 133 and 134:
How You Can Create a User Classbegi
- Page 135 and 136:
External ClassesThis script first s
- Page 137 and 138:
External ClassesThe following code
- Page 139 and 140:
How You Can Create Fields from User
- Page 141 and 142:
How You Can Manipulate Objects Gene
- Page 143 and 144:
Overview of the OpenROAD System Cla
- Page 145 and 146:
Overview of the OpenROAD System Cla
- Page 147 and 148:
Chapter 6: Working with a DatabaseT
- Page 149 and 150:
How You Can Access a Database with
- Page 151 and 152:
How You Can Access a Database with
- Page 153 and 154:
How You Can Access a Database with
- Page 155 and 156:
How You Can Access a Database with
- Page 157 and 158:
How You Can Access a Database with
- Page 159 and 160:
How You Can Access a Database with
- Page 161 and 162:
How You Can Access a Database with
- Page 163 and 164:
How You Can Access a Database with
- Page 165 and 166:
How You Can Access a Database with
- Page 167 and 168:
How You Can Access a Database with
- Page 169 and 170:
How You Can Access a Database with
- Page 171 and 172:
How You Can Access a Database with
- Page 173 and 174:
How You Can Access a Database with
- Page 175 and 176:
How You Can Access a Database with
- Page 177 and 178:
How You Can Access a Database with
- Page 179 and 180:
How You Can Access a Database with
- Page 181 and 182:
How You Can Access a Database with
- Page 183 and 184:
How You Can Manage TransactionsAlth
- Page 185 and 186:
How You Can Manage TransactionsHow
- Page 187 and 188:
How You Can Manage TransactionsSimi
- Page 189 and 190:
How Programming for Multiple Sessio
- Page 191 and 192:
How Programming for Multiple Sessio
- Page 193 and 194:
How Programming for Multiple Sessio
- Page 195 and 196:
How Programming for Multiple Sessio
- Page 197 and 198:
Handling Database ErrorsHow You Can
- Page 199 and 200:
Handling Database ErrorsAs an examp
- Page 201 and 202:
Handling Database ErrorsHow You Can
- Page 203 and 204:
Handling Database ErrorsThe if stat
- Page 205 and 206:
Chapter 7: Working with Arrays, Tab
- Page 207 and 208:
ArraysManipulating Arrays and Table
- Page 209 and 210:
ArraysThe following graphic illustr
- Page 211 and 212:
ArraysArrayComponentColumn fieldRef
- Page 213 and 214:
ArraysThere are five valid row stat
- Page 215 and 216:
ArraysWorking with Arrays, Table Fi
- Page 217 and 218:
ArraysThis method only allows rows
- Page 219 and 220:
ArraysHow You Can Change Values in
- Page 221 and 222:
ArraysHow You Can Delete Rows in an
- Page 223 and 224:
ArraysHowever, the following code i
- Page 225 and 226:
ArraysOther object types are permis
- Page 227 and 228:
Table FieldsTable FieldsA table fie
- Page 229 and 230:
Table FieldsJust as each table fiel
- Page 231 and 232:
Table FieldsFor example, the follow
- Page 233 and 234:
Table FieldsThe FormField object is
- Page 235 and 236:
Table FieldsScroll BarThe scroll ba
- Page 237 and 238:
Table Field Operations• Displayin
- Page 239 and 240:
Table Field OperationsThe Scroll ev
- Page 241 and 242:
Table Field OperationsHow You Can R
- Page 243 and 244:
Table Field OperationsHow You Can D
- Page 245 and 246:
Table Field OperationsColumn Operat
- Page 247 and 248:
Table Field Operations• Implicitl
- Page 249 and 250:
Table Field OperationsThis expressi
- Page 251 and 252:
Table Field Operations• Get infor
- Page 253 and 254:
Table Field OperationsThe following
- Page 255 and 256:
Collections// Index into the workbo
- Page 257 and 258:
Chapter 8: Working with List Views
- Page 259 and 260:
Listview_Treeview_DemoRun the Demon
- Page 261 and 262:
Listview FieldsIn the Frame Editor,
- Page 263 and 264:
Listview FieldsThe set_listview_ima
- Page 265 and 266:
Listview FieldsLVFS_SMALLICONSpecif
- Page 267 and 268:
TreeNode and Tree ClassesNode Relat
- Page 269 and 270:
Treeview FieldsThe AddNode method h
- Page 271 and 272:
Treeview FieldsIf you look at the s
- Page 273 and 274:
Treeview Fields3. Select a field in
- Page 275:
Treeview FieldsTreeview Field Event
- Page 278 and 279:
How You Can Work with ImagesImage F
- Page 280 and 281:
How You Can Work with ImagesPalette
- Page 282 and 283:
How You Can Work with ImagesFor exa
- Page 284 and 285:
How You Can Work with ImagesbmpicoS
- Page 286 and 287:
How You Can Work with ImagesIf you
- Page 288 and 289:
How You Can Work with Text StringsF
- Page 290 and 291:
How You Can Work with Text StringsT
- Page 292 and 293:
How You Can Work with Text StringsH
- Page 295 and 296:
Chapter 10: Using 3GL in Your Appli
- Page 297 and 298:
How You Can Call 3GL ProceduresThe
- Page 299 and 300:
How You Can Use Exec 4GL Statements
- Page 301 and 302:
How You Can Use Exec 4GL Statements
- Page 303 and 304:
How You Can Use Exec 4GL Statements
- Page 305 and 306:
How You Can Use Exec SQL Statements
- Page 307 and 308:
Sample 3GL ProceduresNote: Addresse
- Page 309 and 310:
Chapter 11: Data Entry Error Handli
- Page 311 and 312:
How You Can Use Data Entry Error Ha
- Page 313 and 314:
How You Can Use Data Entry Error Ha
- Page 315:
How You Can Use Data Entry Error Ha
- Page 318 and 319:
Event-based ProgrammingHow Events A
- Page 320 and 321:
Event-based ProgrammingBy default,
- Page 322 and 323:
Event-based ProgrammingFor example,
- Page 324 and 325:
Event-based ProgrammingEvent Chains
- Page 326 and 327:
Event-based ProgrammingIf there is
- Page 328 and 329:
Event-based ProgrammingNote: The fo
- Page 330 and 331:
Event-based ProgrammingHow You Can
- Page 333 and 334:
Chapter 13: Inter-Frame Communicati
- Page 335 and 336:
Communicating Between OpenROAD Fram
- Page 337 and 338:
Communicating Between OpenROAD Fram
- Page 339 and 340:
Communicating Between OpenROAD Fram
- Page 341 and 342:
Communicating Between OpenROAD Fram
- Page 343 and 344:
Communicating Between OpenROAD Fram
- Page 345 and 346:
Communicating Between OpenROAD Fram
- Page 347 and 348:
How You Can Communicate with an Ext
- Page 349 and 350:
How You Can Communicate with an Ext
- Page 351 and 352:
How You Can Communicate with an Ext
- Page 353 and 354:
How You Can Communicate with an Ext
- Page 355 and 356:
How You Can Communicate with an Ext
- Page 357 and 358:
How You Can Communicate Between Ope
- Page 359 and 360:
How You Can Communicate Between Ope
- Page 361:
How You Can Communicate Between Ope
- Page 364 and 365:
Conceptual BackgroundConceptual Bac
- Page 366 and 367:
How You Can Change Field and Frame
- Page 368 and 369:
How You Can Change Field and Frame
- Page 370 and 371:
How You Can Change Field and Frame
- Page 372 and 373:
How You Can Change Field and Frame
- Page 374 and 375:
How You Can Create and Modify Field
- Page 376 and 377:
How You Can Create and Modify Field
- Page 378 and 379:
How You Can Remove Fields Dynamical
- Page 380 and 381:
How You Can Declare a Composite Fie
- Page 382 and 383:
How You Can Manipulate Data in Dyna
- Page 384 and 385:
How You Can Manipulate Data in Dyna
- Page 386 and 387:
How You Can Manipulate Data in Dyna
- Page 388 and 389:
How You Can Manipulate Data in Dyna
- Page 391 and 392:
Chapter 15: Creating a Frame at Run
- Page 393 and 394:
How You Can Build a Frame Dynamical
- Page 395 and 396:
How You Can Build a Frame Dynamical
- Page 397 and 398:
How You Can Build a Frame Dynamical
- Page 399 and 400:
How You Can Build a Frame Dynamical
- Page 401 and 402:
How You Can Build a Frame Dynamical
- Page 403 and 404:
How You Can Build a Frame Dynamical
- Page 405 and 406:
How You Can Build a Frame Dynamical
- Page 407 and 408:
How You Can Build a Frame Dynamical
- Page 409 and 410:
How You Can Build a Frame Dynamical
- Page 411 and 412:
How You Can Build a Frame Dynamical
- Page 413 and 414:
How You Can Build a Frame Dynamical
- Page 415 and 416:
How You Can Build a Frame Dynamical
- Page 417 and 418:
How You Can Build a Frame Dynamical
- Page 419 and 420:
Chapter 16: Writing a Template Assi
- Page 421 and 422:
How You Can Write an Assistantbatch
- Page 423 and 424:
How You Can Write an AssistantThe f
- Page 425 and 426:
How You Can Ensure Compatibility Be
- Page 427 and 428:
How You Can Ensure Compatibility Be
- Page 429 and 430:
How You Can Ensure Compatibility Be
- Page 431:
How You Can Ensure Compatibility Be
- Page 434 and 435:
PreprocessorInclude ScriptsInclude
- Page 436 and 437:
PreprocessorFor frames that may hav
- Page 438 and 439:
PreprocessorThe #undef StatementThe
- Page 440 and 441:
Error ProcessingIf the compiler dis
- Page 442 and 443:
Start and Stop the Debugger• Debu
- Page 444 and 445:
How Running in the Debugger Environ
- Page 446 and 447:
How You Can Use Break ConditionsWhe
- Page 448 and 449:
How You Can Use Break ConditionsHow
- Page 450 and 451:
How You Can Use Break ConditionsDel
- Page 452 and 453:
How You Can Use Break ConditionsFor
- Page 454 and 455:
How You Can Use Break Conditions5.
- Page 456 and 457:
How You Can Log Trace InformationSe
- Page 458 and 459:
How You Can Log Trace InformationTr
- Page 460 and 461:
How You Can Monitor a Running Appli
- Page 462 and 463:
How You Can Monitor a Running Appli
- Page 464 and 465:
How You Can Debug Database QueriesH
- Page 466 and 467:
How Debugging an Application WorksI
- Page 468 and 469:
How Debugging an Application WorksW
- Page 470 and 471:
How Debugging an Application WorksH
- Page 472 and 473:
How Debugging an Application WorksS
- Page 474 and 475:
How Debugging an Application Works
- Page 476 and 477:
How Debugging an Application WorksA
- Page 478 and 479:
How Debugging an Application WorksH
- Page 480 and 481:
How Debugging an Application WorksH
- Page 482 and 483:
Debug an Imaged Application with th
- Page 484 and 485:
SQL Syntax SummarySQL Syntax Summar
- Page 486 and 487:
SQL Syntax SummaryKnowledge Managem
- Page 489 and 490:
Appendix B: Operating System Differ
- Page 491 and 492:
Glossary3GL procedureA 3GL procedur
- Page 493 and 494:
dereferencing colonA dereferencing
- Page 495 and 496:
global 4GL procedureglobal variable
- Page 497 and 498:
procedureprocedure handle (ProcHand
- Page 499:
user class scriptA user class scrip
- Page 502 and 503:
Aglobal • 76passing parameters
- Page 504 and 505:
field appearance at runtime • 365
- Page 506 and 507:
permissions required to register ev
- Page 508 and 509:
handling errors in inquire_4GL stat
- Page 510 and 511:
FrameExec system classBlocksFrames
- Page 512 and 513:
for QueryObjects • 200for StringO
- Page 514 and 515:
Performanceand database procedures
- Page 516 and 517:
SetValue event • 341WaitForm meth
- Page 518 and 519:
TableHeader attribute • 231Tables