621 |
|
end; |
622 |
|
|
623 |
|
{The ISQLParam interface is used to provide access to each parameter in a |
624 |
< |
parametised SQL Statement. It subclasses IColumnMetaData and this part of |
625 |
< |
the interface may be used to access information on the expected SQL Type, etc. |
626 |
< |
|
627 |
< |
It also subclasses ISQLData and this part of the interface may be used to access |
628 |
< |
current values for each parameter. |
629 |
< |
|
630 |
< |
Otherwise, the interface comprises the Setter Methods and properties used to |
624 |
> |
parametised SQL Statement. The interface comprises the Setter Methods and properties used to |
625 |
|
set the value of each parameter. |
626 |
|
|
627 |
|
Automatic conversion is provided to and from strings. That is GetAsString and |
628 |
|
SetAsString are safe to use for sql types other than boolean - provided automatic |
629 |
|
conversion is possible. |
630 |
+ |
|
631 |
+ |
ISQLParam is subclassed from the IParamMetaData interface. This interface provides |
632 |
+ |
access to the parameter metadata. This metadata is mutable and can change after |
633 |
+ |
a parameter is set to a given value. This is acceptable as long as the parameter |
634 |
+ |
metadata is type compatible with the underlying column metadata and hence the |
635 |
+ |
parameter value can be converted by Firebird into a value acceptable by the |
636 |
+ |
underlying column. The column metadata, which is unmutable, can be obtained |
637 |
+ |
by the ISQLParam.getColMetadata interface. When a statement is prepared, the |
638 |
+ |
parameter metadata is always initialised to the column metadata. |
639 |
|
} |
640 |
|
|
641 |
< |
ISQLParam = interface |
642 |
< |
['{b22b4578-6d41-4807-a9a9-d2ec8d1d5a14}'] |
640 |
< |
function GetIndex: integer; |
641 |
> |
IParamMetaData = interface |
642 |
> |
['{4e148c4e-2d48-4991-a263-f66eca05c6aa}'] |
643 |
|
function GetSQLType: cardinal; |
644 |
|
function GetSQLTypeName: AnsiString; |
645 |
|
function getSubtype: integer; |
644 |
– |
function getName: AnsiString; |
646 |
|
function getScale: integer; |
647 |
|
function getCharSetID: cardinal; |
648 |
|
function getCodePage: TSystemCodePage; |
649 |
|
function getIsNullable: boolean; |
650 |
|
function GetSize: cardinal; |
651 |
+ |
property SQLType: cardinal read GetSQLType; |
652 |
+ |
end; |
653 |
+ |
|
654 |
+ |
ISQLParam = interface(IParamMetaData) |
655 |
+ |
['{b22b4578-6d41-4807-a9a9-d2ec8d1d5a14}'] |
656 |
+ |
function getColMetadata: IParamMetaData; |
657 |
+ |
function GetIndex: integer; |
658 |
+ |
function getName: AnsiString; |
659 |
|
function GetAsBoolean: boolean; |
660 |
|
function GetAsCurrency: Currency; |
661 |
|
function GetAsInt64: Int64; |
732 |
|
property IsNullable: Boolean read GetIsNullable; |
733 |
|
property Modified: Boolean read getModified; |
734 |
|
property Name: AnsiString read GetName; |
726 |
– |
property SQLType: cardinal read GetSQLType; |
735 |
|
end; |
736 |
|
|
737 |
|
{ |