ADOxtra for Macromedia DirectorSeveral useful scripts for ADOxtra
See ADOxtra castlib in Downloads section for this handler and other useful Lingo for ADOxtra.
-- Handler outputs the current record of a recordset rst
on ShowRecord rst
if rst.state=0 then
put "Recordset is closed."
else if rst.bof or rst.eof then
put "Current record does not exist."
else
repeat with i=0 to rst.Fields.Count-1
desc=""
desc=desc&&GetTypeName(rst.Fields[i].type) &&"("&rst.Fields[i].type&")"
attributes=rst.Fields[i].Attributes
if CheckBit(attributes,rst.adFldIsNullable) then desc=desc&&"Nullable"
if CheckBit(attributes,rst.adFldMayBeNull) then desc=desc&&"MayBeNull"
if CheckBit(attributes,rst.adFldRowID) then desc=desc&&"RowId"
if CheckBit(attributes,rst.adFldUpdatable) then
desc=desc&&"Updatable"
else
desc=desc&&"Readonly"
end if
put rst.Fields[i].Name && "="&"E&rst.Fields[i]"E&desc
end repeat
end if
end
-- Handler outputs all dynamic properties of the recordset or connection object
-- Note that list of dynamic properties may very depending on whether object is opened or not
-- Also the most of properties are read only when object is opened
on ShowProperties ref
repeat with i = 0 to ref.Properties.count - 1
desc=""
desc=desc&&GetTypeName(ref.Properties[i].type)
attributes=ref.Properties[i].Attributes
if CheckBit(attributes,ref.adPropRequired) then desc=desc&&"Required"
if CheckBit(attributes,ref.adPropOptional) then desc=desc&&"Optional"
if CheckBit(attributes,ref.adPropRead) then desc=desc&&"Read"
if CheckBit(attributes,ref.adPropWrite) then desc=desc&&"Write"
put ref.Properties[i].Name & "=" "E&ref.Properties[i]"E&desc
end repeat
end
-- Handler returns the string description of the type returned by type property of ADO objects
on GetTypeName type
case type of
11: return "boolean"
8,129,203,202,200,130: return "string"
6: return "currency"
7: return "date"
14,131,139: return "numeric"
5,4: return "float"
0: return "empty"
3,2,16,19,18,17: return "integer"
72: return "GUID"
132: return "user-defined"
204: return "binary"
otherwise: return "unknown:"&type
end case
end
-- Handler returns true if all bits in bitMask are set in val
on CheckBit val, bitMask
return BitAnd(val,bitMask)=bitMask
end
|