Defining a database record
Now, define a record that sends a request to the detabase row. To define a database record, do the following: 
1.	In the Organizer, add to MyDatabaseTCPIP a Smalltalk class named MyDatabaseRecord which inherits from AbtForeignOSObject. 
2.	Add a class method to MyDatabaseRecord: 
how 
initializeAfterLoad
   "Initialize the fixed size for this OSPtr subclass."
 
   self fixedSize: 2018
3.	In a Public Interface Editor, add the attribute hostVar and specify Integer for its data type. Next, add the attributes password, results, and userid; use the defaults with a String data type. Finally, generate the default scripts. 
On the Action tab, add the initializeWith: action. Do not specify any value for Action selector. 
4.	In a Script Editor, modify the generated scripts as needed so they resemble the following: 
how 
hostVar
   "Return the value of field hostVar."
 
   ^self int16At: 16
hostVar: obj
   "Set the value of field hostVar."
 
   self int16At: 16 put: obj abtAsNumber abrAsCLangShort
password
   "Return the value of field password."
 
   ^self abtCharArrayAt: 8
      length:  8
password: obj
   "Set the value of field password."
 
   self abtCharArrayAt: 8
      put: obj
      length:  8
      pad: 0
results
   "Return the value of field results."
 
   ^self abtCharArrayAt: 18
      length:  2000
results: obj
   "Set the value of field results."
 
   self abtCharArrayAt: 18
   put: obj
   length: 2000
   pad: 0
userid
   "Return the value of field userid."
 
   ^self abtCharArrayAt: 0
      length:  8
userid: obj
   "Set the value of field userid."
 
   self abtCharArrayAt: 0
      put: obj
      length: 8
      pad: 0
5.	Add the following instance methods to MyDatabaseRecord: 
how 
data
 
   ^(self memcpyFrom: 0 to: self class fixedSize - 1)
initializeWith: aString
   aString contents 
      memcpyFrom: 0
      to: (aString size min: self class fixedSize) -1 
      into: self startingAt: 0.
size
 
   ^self class fixedSize
Last modified date: 01/29/2015