Subject | Re: [IBO] Parameter mismatch preparing TIBOStoredProc?? Bug?? |
---|---|
Author | G. Allen Casteran |
Post date | 2001-11-07T08:24:12Z |
G'day Helen!
Yes I compiled and committed the SP load. I tested it with an ISQL tool and
made sure that it worked. The TIBODatabase connection was indeed connected
to the SP and active.
I did some more testing and find that the TIB_StoredProc seems to pick up
the StoredProcs but TIBOStoredProc does not. It's like they don't exist.
The StoredProcName on the IBOStoredProc does not list the procs when you
drop down the list. Just empty. No matter whether I specify a DatabaseName
or an IB_Connection. Same failing results.
On the TIB_StoredProc after preparing it shows the param as an Int64 datatype.
This is to match the keycol of the table, which is a generated value.
According to the IB 6 docs the generators create and Int64 value so a large
NUMERIC is the only datatype in IB that will create such a field. I would
have expected them to create an INT64 datatype, but alas no such luck.
Passing the Value is the next question on my list. In my app I am handling
the value as an Int64 value. How do I pass that to the param if the param
does not have an AsInt64 or AsLargeInt property?
NUMERIC(10). Still AsInteger will pass a 32-bit value. How do I pass a
64-bit value??
the KeyCol (primary key).
Thanks,
Allen.
Yes I compiled and committed the SP load. I tested it with an ISQL tool and
made sure that it worked. The TIBODatabase connection was indeed connected
to the SP and active.
I did some more testing and find that the TIB_StoredProc seems to pick up
the StoredProcs but TIBOStoredProc does not. It's like they don't exist.
The StoredProcName on the IBOStoredProc does not list the procs when you
drop down the list. Just empty. No matter whether I specify a DatabaseName
or an IB_Connection. Same failing results.
On the TIB_StoredProc after preparing it shows the param as an Int64 datatype.
>>Where is the aKeyCol parameter value coming from? Is it of anappropriate data type?
>>Numeric(10,0) seems a bit odd... And how are you passing the value tothe component?
This is to match the keycol of the table, which is a generated value.
According to the IB 6 docs the generators create and Int64 value so a large
NUMERIC is the only datatype in IB that will create such a field. I would
have expected them to create an INT64 datatype, but alas no such luck.
Passing the Value is the next question on my list. In my app I am handling
the value as an Int64 value. How do I pass that to the param if the param
does not have an AsInt64 or AsLargeInt property?
> >Question 2: If I am passing an Int64 variable to this parameter, how shouldI should probably change my key definitions to NUMERIC(18) instead of
> >I do it? There is no .AsInt64 or .AsLargeInt on the Param object. The Param
> >is a NUMERIC(10) to match the Keycol which is set by a generator, hence the
> >Int64 datatype.
>
>Int64 is valid ONLY in a Dialect 3 database. It is NUMERIC(18,0). You
>can pass it either
>AsInteger or simply use the .Value property and let IBO cast it.
NUMERIC(10). Still AsInteger will pass a 32-bit value. How do I pass a
64-bit value??
>If you are passing 32-bit integers, they are also AsInteger; and yourIf I do that then I can't pass a 64-bit value that matches the datatype of
>Stored Procedure variable should be of type INTEGER, not a scaled numeric.
the KeyCol (primary key).
Thanks,
Allen.