Short Description
|
ODBC call with parameter fails, hard coded call doesn't.
|
Entered
|
By:
MarkB@flynet.co.uk
When: 2000-11-30 11:36:16 Build: 2.0.6F
|
Categories
|
Type:
Problem
Department: Product
Category:
ODBC Support
|
Description
|
Hi.
I have the following sections and declarations in a
template:
---
<TEDECLARE DBSOURCE name="theList" datasource="SSurfer"
userid="SSurfer" password="tart">
<TEDECLARE DBSELECT
name="LISTOPTIONS" dbsource="theList"
SQL="SELECT * FROM tblListOptions WHERE fldListID=?I">
<TESECTION databasecheck
WHEN TranPath_1 is "databasecheck">
<TEACTION CONNECT "LU_GROUP_1:NULL">
<TEFETCH select="LISTOPTIONS" 10>
<TEACTION RELEASE>
</TESECTION>
---
When you run the transaction, and then look at the trace in
the dev centre, you can see that it has returned zero
records - although it has successfully managed to find the
fieldnames. It also says that it expected one parameter,
that it had received one, and that the value was indeed 10.
However, if I remove the parameter option from the TEFETCH,
and stick the value 10 directly into
|
|
Append
|
By: WindSurfer When: 2000-12-01 06:54:50 New Status:
Pending Customer
|
Comment
|
If the process was working and stopped--there may be a
version upgrade on one of these components that you don't
know about.
Early versions of Windows/2000 had some ODBC bugs that drove
us crazy with very similar circumstances (indexed columns in
rows missing in a WHERE).
Another cause could be a mismatch between the datatype you
are passing and the datatype of the column FldListID--and
that FldListID is an index.
Many databases mis-behave on selects if there isn't an exact
data match between the type of the index and the type of the
parameter...for example, a double float (?F) instead of
integer, or even perhaps its defined as a character field.
I've heard bad things about SP5; that SP6A was better, but
that's a shot in the dark.
Can you try an ODBC trace--I suspect you will see the value
"10" being properly passed to SQLServer...next step is a
SQLServer trace.
|
|
Append
|
By: MarkB@flynet.co.uk When: 2000-12-04 09:24:24 New Status:
Closed
|
Comment
|
Thanks for the help. Using ?F fixed the problem. However,
it doesn't explain why it stopped working in the first
place - as I am pretty sure no upgrades were done.
Oh well, aren't computers fantastic *grin*.
Reagrds,
Mark.
|